diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c4e21d6b..da4ea5142 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -187,6 +187,9 @@ jobs: shared-key: ci-test-all-schedules-drift add-job-id-key: false cache-on-failure: true + - name: Committed catalog coverage guard + run: | + cargo test --release -p akita-config --features all-schedules generated_catalogs_cover_emitted_keys - name: Generate schedule tables run: scripts/generate-schedule-tables.sh - name: Committed schedule tables match the generator diff --git a/.github/workflows/jolt-verifier-profile-smoke.yml b/.github/workflows/jolt-verifier-profile-smoke.yml index 3abd65db8..3938bd6bb 100644 --- a/.github/workflows/jolt-verifier-profile-smoke.yml +++ b/.github/workflows/jolt-verifier-profile-smoke.yml @@ -53,7 +53,10 @@ jobs: uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: profile/akita-recursion - shared-key: ci-jolt-verifier-profile-smoke + # The recursion workspace depends on Akita crates outside its own + # workspace root. Never restore their target artifacts across source + # revisions, or Cargo can combine stale types with current schedules. + shared-key: ci-jolt-verifier-profile-smoke-${{ github.sha }} cache-on-failure: true - name: Test AkitaJoltInputs blob encode/decode (akita-recursion-glue) run: cargo test --release -p akita-recursion-glue diff --git a/.github/workflows/profile-bench.yml b/.github/workflows/profile-bench.yml index 13f698921..e17ac192a 100644 --- a/.github/workflows/profile-bench.yml +++ b/.github/workflows/profile-bench.yml @@ -53,24 +53,25 @@ jobs: # deterministically, fixing case order in the comment. `cases` is a # newline-separated list of MODE:NUM_VARS:NUM_POLYS[:SETUP_MODE] specs. # - # The small-field (fp32/fp64) D128 one-hot cells run at nv=28, not nv=32. - # Their ext-degree-4 challenge schedule keeps a much larger un-folded witness - # than the fp128 cells (the fp32 nv=32 setup vector is ~2.6 GiB vs ~270 MiB - # for fp128), so at nv>=30 the prover's eq-evaluation table exceeds the - # 1 GiB `MAX_MATERIALIZED_EQ_TABLE_BYTES` ceiling and the run aborts. nv=28 - # is the largest validated size that both fits that budget and still folds - # through multiple recursive levels. The fp128 cells fold aggressively enough - # to stay at nv=32. + # Keep each base field in its own feature graph. This avoids compiling + # all three fields and their schedule catalogs into every base-profile + # runner. The small-field one-hot cells use the largest rows shipped by + # this stack; the adaptive-dimension follow-up raises them to nv=30. group: - - name: 1-fp128-dense - profile_feature: profile-ci-fp128-dense - cases: | - dense_fp128:24:1 - - name: 3-flat-onehot-suite - profile_feature: profile-ci-flat-onehot + - name: 1-fp32-base + profile_feature: profile-ci-fp32 cases: | + dense_fp32_d128:26:1 onehot_fp32_d128:28:1 + - name: 2-fp64-base + profile_feature: profile-ci-fp64 + cases: | + dense_fp64_d128:26:1 onehot_fp64_d128:28:1 + - name: 3-fp128-base + profile_feature: profile-ci-fp128-base + cases: | + dense_fp128:26:1 onehot_fp128:32:1 - name: 4-multi-group-direct profile_feature: profile-ci-multi-group-direct diff --git a/Cargo.lock b/Cargo.lock index 7133c4598..20bffb2d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -195,6 +195,7 @@ dependencies = [ "num-bigint", "num-traits", "rayon", + "sha3 0.10.9", "thiserror", ] diff --git a/book/src/how/security.md b/book/src/how/security.md index c286bfa58..4cfcc3f02 100644 --- a/book/src/how/security.md +++ b/book/src/how/security.md @@ -22,20 +22,24 @@ Module-SIS projection: where `width[r - 1] = cutoff_m(B, n = r * d) / d`. The shipped policy is `Quantum128BitADPS16`. It accepts a row only when the -exhaustive ADPS16 quantum certificate reports a finite score or a classified -above-target lower bound of at least 128 bits. A lookup for an unsupported -policy, exact modulus profile, role, or scalar cell fails closed. +complete ADPS16 quantum certificate reports a finite score or a classified +above-target lower bound of at least 128 bits. The beta search checks values +from 40 through the capped Euclidean baseline and stops once the monotone +ADPS16 lower bound exceeds the best complete candidate. For each visited beta, +the LGSA profile transition proves that the checked zeta endpoints cover the +full zeta domain. A lookup for an unsupported policy, exact modulus profile, +role, or scalar cell fails closed. The checked-in policy table may use `local-minimum` only to discover a candidate boundary. Every emitted boundary and its immediate rejected successor are -certified by exhaustive search over the configured beta and zeta domain. -Parallel generation parallelizes independent rows and does not change the -certificate domain or output ordering. +certified under the proven-pruned beta and zeta domain. Parallel generation +parallelizes independent rows and does not change the certificate domain or +output ordering. CSV table-generation artifacts include the certified accepted and rejected successor witnesses, cutoff kind, cap provenance, and role provenance. These -are audit inputs, not verifier-visible state, and are committed separately from -the runtime table digest. +are audit inputs, not verifier-visible state. The shared table digest commits +to the compact runtime table and its policy audit files together. The planner derives role bounds as coefficient-`L∞` values because those are the values enforced by the protocol. It does not convert production role bounds @@ -61,8 +65,8 @@ implementation acceptance criteria live in - `crates/akita-types/src/sis/mod.rs`, `ajtai_key.rs`, `generated_sis_table/`, `norm_bound.rs`. - Paper §2.2 `def:msis`, §3.12 `sec:batched-soundness` ("MSIS targets", "Two norm models"). - `docs/security-posture.md`, `specs/sis-quantum128-scalar-n-table.md`. -- `scripts/sis_golden/infinity_width_table.csv` (generation provenance for the - infinity-width golden grid). +- `crates/akita-types/src/sis/generated_sis_table/policy_audit.csv` (canonical + production table certificate). ## Norm bounds and weak binding diff --git a/book/src/usage/profiling.md b/book/src/usage/profiling.md index c60e717d2..ee9156d20 100644 --- a/book/src/usage/profiling.md +++ b/book/src/usage/profiling.md @@ -32,8 +32,8 @@ the same adaptive policy. Recursive and multi-chunk companion presets remain D64. Shipped direct tables are `fp128_onehot` and `fp128_dense`. **fp128 D=32** is not a valid A-role fold degree (`d_a ≥ 64`); there is no `D32OneHot` preset. -**fp32/fp64** D32/D64 are not securable; smallest secure choice is **D128 -one-hot** (CI benches at `nv=28`). +**fp32/fp64** D32/D64 are not securable; the smallest secure shipped choice is +**D128 one-hot**. This stack's generated CI rows cover `nv=28`. The direct configs are `akita_config::proof_optimized::fp128::OneHot` and `akita_config::proof_optimized::fp128::Dense`. @@ -81,9 +81,11 @@ Committed-fold A-role pricing (every cell folds securely): | Case | nv | np | Setup mode | |------|----|----|------------| +| `dense_fp32_d128` | 26 | 1 | `direct` | | `onehot_fp32_d128` | 28 | 1 | `direct` | +| `dense_fp64_d128` | 26 | 1 | `direct` | | `onehot_fp64_d128` | 28 | 1 | `direct` | -| `dense_fp128` | 24 | 1 | `direct` | +| `dense_fp128` | 26 | 1 | `direct` | | `onehot_fp128` | 32 | 1 | `direct` | | `onehot_fp128_multi_group` | 32 | 4 | `direct` | | `onehot_fp128_multi_group_recursive` | 32 | 4 | `recursive` | @@ -92,8 +94,10 @@ Committed-fold A-role pricing (every cell folds securely): | `onehot_fp128_multi_chunk_w4r2` | 32 | 1 | `direct` | | `onehot_fp128_multi_chunk_w8r2` | 32 | 1 | `direct` | -fp32/fp64 use `nv=28` because the ext-degree-4 challenge schedule exceeds the 1 -GiB `MAX_MATERIALIZED_EQ_TABLE_BYTES` budget at higher `num_vars`. +The base profiles are separated by field into `profile-ci-fp32`, +`profile-ci-fp64`, and `profile-ci-fp128-base`. Each job compiles only its +dense and one-hot schedule catalogs. The adaptive-dimension follow-up expands +the small-field one-hot rows beyond this stack's current `nv=28` coverage. The long multi-group recursive rows run in separate parallel CI groups so each task keeps one benchmark case. The distributed rows also run in their own group and are compared against the merge base like the other rows. @@ -107,7 +111,7 @@ Every row measures a complete PCS opening proof. | Profile family | Public opening statement | |----------------|--------------------------| -| Dense `nv24` | One committed 24 variable multilinear polynomial with `2^24` coefficients, opened at one 24 coordinate point. | +| Dense `nv26` | One committed 26 variable multilinear polynomial with `2^26` coefficients, opened at one 26 coordinate point. | | One hot `nv28` | One committed 28 variable multilinear polynomial with `2^28` coefficients, opened at one 28 coordinate point. | | One hot `nv32` | One committed 32 variable multilinear polynomial with `2^32` coefficients, opened at one 32 coordinate point. | | Multi group | Four polynomials in three groups. Two precommitted groups each contain one 16 variable polynomial and use independent 16 coordinate points. The final group contains two 32 variable polynomials that share one 32 coordinate point. | @@ -144,7 +148,8 @@ test suite owns those checks. compact pull request comment, and the full `report.md` artifact. The compact comment shows the public statements first. It then uses separate tables for phase time, memory and setup size, and proof size. This keeps each table narrow -enough to read in a pull request. +enough to read in a pull request. Every compact row also shows the resolved +`A/B/D` dimension sequence, with consecutive repeated tuples collapsed. The full artifact keeps each fold in one side-by-side table. Each detailed cell uses named blocks for matrix geometry, decomposition, challenge parameters, @@ -176,10 +181,10 @@ a setup matrix or prefix registry from an earlier sample. `Setup and preparation` includes exact NTT prewarming for the resolved profile execution on its uniform CPU stack. This is an execution prewarm, not part of -public setup identity or `ComputeBackendSetup::prepare_setup`: it joins the root -commitment requirements with `NttExecutionRequirements::from_prove_schedule` -and materializes the resulting per-dimension, per-domain prefixes before the -online timers begin. The CPU retention policy skips large ring switch +public setup identity or `ComputeBackendSetup::prepare_setup`: the canonical +`NttExecutionRequirements::from_commit_and_prove_schedule` constructor derives +all root-commit and prove requirements before materializing the retained +per-dimension, per-domain prefixes. The CPU retention policy skips large ring switch requirements that runtime streams. The harness rejects growth of retained cache entries during commit or prove. Consequently, `Commit` and `Prove` measure hot-cache work plus intentional streamed work, while `Prepared NTT diff --git a/book/src/usage/quickstart.md b/book/src/usage/quickstart.md index 221f7e7ba..80d28c55b 100644 --- a/book/src/usage/quickstart.md +++ b/book/src/usage/quickstart.md @@ -33,7 +33,7 @@ one-hot preset now chooses dimensions per fold from generated adaptive tables; | Field | Typical production choice | Notes | |-------|---------------------------|--------| | **fp128** | **One-hot** (`fp128::OneHot`) | **Default direct one-hot preset.** The generated schedule chooses dimensions for the first two fold levels and uses D64 afterward. Direct dense uses `fp128::Dense`; recursive/tensor/multi-chunk companions remain pinned to D64. | -| **fp32 / fp64** | **D128 one-hot** | D32/D64 are **not securable** under the reprice and unsupported schedules fail fast. CI benches at **nv=28** (eq-table memory budget). Shipped: fp32 D128/D256 onehot; fp64 D128 dense/onehot and D256 onehot. | +| **fp32 / fp64** | **D128 one-hot** | D32/D64 are **not securable** under the reprice and unsupported schedules fail fast. This stack ships CI rows through **nv=28**; the adaptive-dimension follow-up extends them. Shipped: fp32 D128/D256 onehot; fp64 D128 dense/onehot and D256 onehot. | Use `fp128::OneHot` for direct one-hot and `fp128::Dense` for direct dense. diff --git a/crates/akita-algebra/src/lib.rs b/crates/akita-algebra/src/lib.rs index 00d3d2f95..12217c53a 100644 --- a/crates/akita-algebra/src/lib.rs +++ b/crates/akita-algebra/src/lib.rs @@ -38,9 +38,10 @@ pub use ntt::{ CrtCapacity, GarnerData, LimbQ, MontCoeff, NttKernelPlan, NttPrime, PrimeWidth, RADIX_BITS, }; pub use ring::{ - balanced_decompose_coefficients_pow2_i8_into, mat_vec_i16_with_tail, CenteredMontLut, - CrtNttConvertibleField, CrtNttParamSet, CyclotomicCrtNtt, CyclotomicRing, DigitMontLut, - I16TailParams, Ifma52NttMatrix, Ifma52Params, + balanced_decompose_coefficients_pow2_i8_into, cyclic_ntt_with_i16_tail_to_ring, + mat_vec_i16_with_tail, ntt_with_i16_tail_to_ring, CenteredMontLut, CrtNttConvertibleField, + CrtNttParamSet, CyclotomicCrtNtt, CyclotomicRing, DigitMontLut, I16TailParams, Ifma52NttMatrix, + Ifma52Params, }; pub use split_eq::GruenSplitEq; pub use uni_poly::{CompressedUniPoly, UniPoly}; diff --git a/crates/akita-algebra/src/ntt/crt.rs b/crates/akita-algebra/src/ntt/crt.rs index 5078ef52d..354235196 100644 --- a/crates/akita-algebra/src/ntt/crt.rs +++ b/crates/akita-algebra/src/ntt/crt.rs @@ -106,11 +106,22 @@ impl CrtCapacity { width: usize, rhs_abs_bound: u64, ) -> bool { - let modulus = (-F::one()).to_canonical_u128() + 1; + self.supports_modulus(width, D, (-F::one()).to_canonical_u128() + 1, rhs_abs_bound) + } + + /// Whether this CRT product can reconstruct an accumulation for an + /// explicitly identified field modulus and runtime ring dimension. + pub fn supports_modulus( + &self, + width: usize, + ring_dimension: usize, + modulus: u128, + rhs_abs_bound: u64, + ) -> bool { let mut required = SmallNat::one(); required.mul_u128(2); required.mul_u128(width as u128); - required.mul_u128(D as u128); + required.mul_u128(ring_dimension as u128); required.mul_u128(modulus / 2); required.mul_u128(u128::from(rhs_abs_bound)); required < self.product @@ -120,20 +131,33 @@ impl CrtCapacity { pub fn max_safe_width( &self, rhs_abs_bound: u64, + ) -> Option { + self.max_safe_width_for_modulus(D, (-F::one()).to_canonical_u128() + 1, rhs_abs_bound) + } + + /// Conservative maximum matrix width for an explicitly identified field + /// modulus and runtime ring dimension. + pub fn max_safe_width_for_modulus( + &self, + ring_dimension: usize, + modulus: u128, + rhs_abs_bound: u64, ) -> Option { if rhs_abs_bound == 0 { return Some(usize::MAX); } - let modulus = (-F::one()).to_canonical_u128() + 1; - if modulus <= 1 || D == 0 || !self.supports::(1, rhs_abs_bound) { + if modulus <= 1 + || ring_dimension == 0 + || !self.supports_modulus(1, ring_dimension, modulus, rhs_abs_bound) + { return None; } let mut low = 1usize; let mut high = 2usize; - while self.supports::(high, rhs_abs_bound) { + while self.supports_modulus(high, ring_dimension, modulus, rhs_abs_bound) { low = high; let Some(next) = high.checked_mul(2) else { - if self.supports::(usize::MAX, rhs_abs_bound) { + if self.supports_modulus(usize::MAX, ring_dimension, modulus, rhs_abs_bound) { return Some(usize::MAX); } high = usize::MAX; @@ -143,7 +167,7 @@ impl CrtCapacity { } while low + 1 < high { let mid = low + (high - low) / 2; - if self.supports::(mid, rhs_abs_bound) { + if self.supports_modulus(mid, ring_dimension, modulus, rhs_abs_bound) { low = mid; } else { high = mid; diff --git a/crates/akita-algebra/src/ring/crt_ntt_repr.rs b/crates/akita-algebra/src/ring/crt_ntt_repr.rs index fc436008d..1e26f56b8 100644 --- a/crates/akita-algebra/src/ring/crt_ntt_repr.rs +++ b/crates/akita-algebra/src/ring/crt_ntt_repr.rs @@ -49,7 +49,10 @@ mod ops; mod tests; pub use lut::{CenteredMontLut, DigitMontLut}; -pub use mixed::{mat_vec_i16_with_tail, I16TailParams}; +pub use mixed::{ + cyclic_ntt_with_i16_tail_to_ring, mat_vec_i16_with_tail, ntt_with_i16_tail_to_ring, + I16TailParams, +}; fn reconstruct( primes: &[NttPrime; K], diff --git a/crates/akita-algebra/src/ring/crt_ntt_repr/convert.rs b/crates/akita-algebra/src/ring/crt_ntt_repr/convert.rs index 292abcebf..dc8c71c8c 100644 --- a/crates/akita-algebra/src/ring/crt_ntt_repr/convert.rs +++ b/crates/akita-algebra/src/ring/crt_ntt_repr/convert.rs @@ -143,6 +143,26 @@ impl CyclotomicCrtNtt { canonical } + pub(crate) fn centered_cyclic_coefficients_with_params( + &self, + params: &CrtNttParamSet, + ) -> [[W; D]; K] { + let mut canonical = [[W::default(); D]; K]; + for (k, ((coefficients, prime), twiddles)) in canonical + .iter_mut() + .zip(params.primes.iter()) + .zip(params.twiddles.iter()) + .enumerate() + { + let mut limb = self.limbs[k]; + inverse_ntt_cyclic(&mut limb, *prime, twiddles, params.kernel_plan); + for (dst, src) in coefficients.iter_mut().zip(limb.iter()) { + *dst = prime.center(prime.to_canonical(*src)); + } + } + canonical + } + /// Convert a coefficient-form ring element into CRT+NTT domain. pub fn from_ring( ring: &CyclotomicRing, diff --git a/crates/akita-algebra/src/ring/crt_ntt_repr/mixed.rs b/crates/akita-algebra/src/ring/crt_ntt_repr/mixed.rs index f9efb566a..da9438b33 100644 --- a/crates/akita-algebra/src/ring/crt_ntt_repr/mixed.rs +++ b/crates/akita-algebra/src/ring/crt_ntt_repr/mixed.rs @@ -67,17 +67,43 @@ pub fn mat_vec_i16_with_tail( +/// Reconstruct one negacyclic NTT accumulator from a wide CRT prefix and its +/// exactness-only i16 tail. +pub fn ntt_with_i16_tail_to_ring( wide_ntt: &CyclotomicCrtNtt, tail_ntt: &CyclotomicCrtNtt, params: &I16TailParams, ) -> CyclotomicRing { let wide = wide_ntt.centered_coefficients_with_params(¶ms.wide); let tail = tail_ntt.centered_coefficients_with_params(¶ms.tail); + mixed_coefficients_to_ring(&wide, &tail, params) +} + +/// Reconstruct one cyclic NTT accumulator from a wide CRT prefix and its +/// exactness-only i16 tail. +pub fn cyclic_ntt_with_i16_tail_to_ring< + F: FieldCore + CanonicalField, + const K: usize, + const D: usize, +>( + wide_ntt: &CyclotomicCrtNtt, + tail_ntt: &CyclotomicCrtNtt, + params: &I16TailParams, +) -> CyclotomicRing { + let wide = wide_ntt.centered_cyclic_coefficients_with_params(¶ms.wide); + let tail = tail_ntt.centered_cyclic_coefficients_with_params(¶ms.tail); + mixed_coefficients_to_ring(&wide, &tail, params) +} + +fn mixed_coefficients_to_ring( + wide: &[[i32; D]; K], + tail: &[[i16; D]; 1], + params: &I16TailParams, +) -> CyclotomicRing { let tail_modulus = i64::from(params.tail.primes[0].p); let mut field_product = F::one(); let field_weights: [F; K] = from_fn(|i| { diff --git a/crates/akita-algebra/src/ring/mod.rs b/crates/akita-algebra/src/ring/mod.rs index d830a64fd..3b87f1373 100644 --- a/crates/akita-algebra/src/ring/mod.rs +++ b/crates/akita-algebra/src/ring/mod.rs @@ -6,8 +6,9 @@ pub mod eval; mod ifma52; pub use crt_ntt_repr::{ - mat_vec_i16_with_tail, CenteredMontLut, CrtNttConvertibleField, CrtNttParamSet, - CyclotomicCrtNtt, DigitMontLut, I16TailParams, + cyclic_ntt_with_i16_tail_to_ring, mat_vec_i16_with_tail, ntt_with_i16_tail_to_ring, + CenteredMontLut, CrtNttConvertibleField, CrtNttParamSet, CyclotomicCrtNtt, DigitMontLut, + I16TailParams, }; pub use cyclotomic::{ balanced_decompose_coefficients_pow2_i8_into, CyclotomicRing, WideCyclotomicRing, diff --git a/crates/akita-challenges/src/config.rs b/crates/akita-challenges/src/config.rs index 12ea3663b..0f4eb3c19 100644 --- a/crates/akita-challenges/src/config.rs +++ b/crates/akita-challenges/src/config.rs @@ -35,13 +35,17 @@ macro_rules! production_fold_challenge_ring_dims { production_fold_challenge_ring_dims!(64, 128, 256, 512, 1024, 2048); -const PRODUCTION_FOLD_CHALLENGE_LADDER: &[(usize, usize, usize)] = &[ - (64, D64_PRODUCTION_PM1_COUNT, D64_PRODUCTION_PM2_COUNT), - (128, 31, 0), - (256, 23, 0), - (512, 19, 0), - (1024, 16, 0), - (2048, 14, 0), +// The last coordinate is floor(log2(support)). It lets the verifier and the +// offline planner validate the fixed production families without repeatedly +// evaluating dozens of floating-point logarithms. The tests below recompute +// every value from the canonical support formula. +const PRODUCTION_FOLD_CHALLENGE_LADDER: &[(usize, usize, usize, u32)] = &[ + (64, D64_PRODUCTION_PM1_COUNT, D64_PRODUCTION_PM2_COUNT, 128), + (128, 31, 0, 129), + (256, 23, 0, 131), + (512, 19, 0, 132), + (1024, 16, 0, 131), + (2048, 14, 0, 131), ]; /// Fixed-weight sparse ring fold challenge family. @@ -70,8 +74,8 @@ impl SparseChallengeConfig { pub fn production_for_ring_dim(ring_d: usize) -> Option { PRODUCTION_FOLD_CHALLENGE_LADDER .iter() - .find(|(d, _, _)| *d == ring_d) - .map(|(_, pm1, pm2)| Self { + .find(|(d, _, _, _)| *d == ring_d) + .map(|(_, pm1, pm2, _)| Self { count_pm1: *pm1, count_pm2: *pm2, }) @@ -160,6 +164,19 @@ impl SparseChallengeConfig { ring_dim: usize, required_bits: u32, ) -> Result<(), &'static str> { + if let Some((_, _, _, support_floor_bits)) = + PRODUCTION_FOLD_CHALLENGE_LADDER + .iter() + .find(|(d, pm1, pm2, _)| { + *d == ring_dim && *pm1 == self.count_pm1 && *pm2 == self.count_pm2 + }) + { + return if required_bits <= *support_floor_bits { + Ok(()) + } else { + Err("sparse challenge family has insufficient min-entropy for security floor") + }; + } __dispatch_fold_challenge_ring_dim!(self, ring_dim, required_bits) } @@ -203,9 +220,43 @@ mod entropy_tests { #[test] fn production_ladder_matches_proof_optimized_dims() { - for &d in PRODUCTION_FOLD_CHALLENGE_RING_DIMS { + assert_eq!( + PRODUCTION_FOLD_CHALLENGE_RING_DIMS.len(), + PRODUCTION_FOLD_CHALLENGE_LADDER.len(), + "the production dimension and challenge ladders must have identical coverage" + ); + for (&d, &(_, _, _, support_floor_bits)) in PRODUCTION_FOLD_CHALLENGE_RING_DIMS + .iter() + .zip(PRODUCTION_FOLD_CHALLENGE_LADDER) + { let cfg = SparseChallengeConfig::production_for_ring_dim(d).expect("ladder entry"); assert!(cfg.validate_for_ring_dim(d).is_ok(), "d={d}"); + let computed_floor = match d { + 64 => cfg.log2_support_bits::<64>().floor() as u32, + 128 => cfg.log2_support_bits::<128>().floor() as u32, + 256 => cfg.log2_support_bits::<256>().floor() as u32, + 512 => cfg.log2_support_bits::<512>().floor() as u32, + 1024 => cfg.log2_support_bits::<1024>().floor() as u32, + 2048 => cfg.log2_support_bits::<2048>().floor() as u32, + _ => unreachable!("production dimension list is exhaustive"), + }; + assert_eq!(computed_floor, support_floor_bits, "d={d}"); + for required_bits in 0..=support_floor_bits + 2 { + let generic = match d { + 64 => cfg.validate_min_entropy::<64>(required_bits), + 128 => cfg.validate_min_entropy::<128>(required_bits), + 256 => cfg.validate_min_entropy::<256>(required_bits), + 512 => cfg.validate_min_entropy::<512>(required_bits), + 1024 => cfg.validate_min_entropy::<1024>(required_bits), + 2048 => cfg.validate_min_entropy::<2048>(required_bits), + _ => unreachable!("production dimension list is exhaustive"), + }; + assert_eq!( + cfg.validate_min_entropy_for_ring_dim(d, required_bits), + generic, + "fast and generic entropy checks disagree for d={d}, required={required_bits}" + ); + } } } @@ -260,7 +311,7 @@ mod entropy_tests { assert_eq!(uni256.challenge_l2_sq_max(), 23); assert_eq!(uni256.nonzero_count_max(), 23); - for (d, pm1, pm2) in PRODUCTION_FOLD_CHALLENGE_LADDER { + for (d, pm1, pm2, _) in PRODUCTION_FOLD_CHALLENGE_LADDER { if *d >= 512 { let cfg = SparseChallengeConfig { count_pm1: *pm1, diff --git a/crates/akita-config/Cargo.toml b/crates/akita-config/Cargo.toml index 8afc23608..ec564a2b5 100644 --- a/crates/akita-config/Cargo.toml +++ b/crates/akita-config/Cargo.toml @@ -23,6 +23,7 @@ schedules-default = [ "schedules-fp128-onehot", "schedules-fp128-dense", "schedules-fp32-d128-onehot", + "schedules-fp32-d128-dense", "schedules-fp32-d256-onehot", "schedules-fp64-d128-dense", "schedules-fp64-d128-onehot", @@ -59,6 +60,7 @@ schedules-fp128-onehot-multi-chunk-w4r2 = [ schedules-fp128-dense-multi-chunk = ["akita-schedules/fp128-dense-multi-chunk"] schedules-fp32-d128-onehot = ["akita-schedules/fp32-d128-onehot"] +schedules-fp32-d128-dense = ["akita-schedules/fp32-d128-dense"] schedules-fp32-d256-onehot = ["akita-schedules/fp32-d256-onehot"] schedules-fp64-d128-dense = ["akita-schedules/fp64-d128-dense"] schedules-fp64-d128-onehot = ["akita-schedules/fp64-d128-onehot"] @@ -88,5 +90,10 @@ name = "generated_tables" path = "tests/generated_tables.rs" required-features = ["all-schedules"] +[[test]] +name = "dense_inner_basis" +path = "tests/dense_inner_basis.rs" +required-features = ["all-schedules"] + [lints] workspace = true diff --git a/crates/akita-config/src/lib.rs b/crates/akita-config/src/lib.rs index 83fe7bf72..0f2cb0000 100644 --- a/crates/akita-config/src/lib.rs +++ b/crates/akita-config/src/lib.rs @@ -64,8 +64,11 @@ macro_rules! impl_multi_chunk_companion { max_num_batched_polys, ) } - fn basis_range() -> (u32, u32) { - <$base as $crate::CommitmentConfig>::basis_range() + fn opening_basis_range() -> (u32, u32) { + <$base as $crate::CommitmentConfig>::opening_basis_range() + } + fn inner_basis_range() -> (u32, u32) { + <$base as $crate::CommitmentConfig>::inner_basis_range() } fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { <$base as $crate::CommitmentConfig>::root_honest_fold_policy() @@ -104,9 +107,7 @@ pub mod setup_prefix_slots; pub mod test_support; mod transcript_binding; pub use akita_schedules::ResolvedScheduleRow; -pub use precommitted_commitment::{ - committed_group_params, committed_group_profile, PrecommittedCommitmentConfig, -}; +pub use precommitted_commitment::committed_group_profile; pub use proof_optimized::{ ensure_prover_schedule_fits_setup, ensure_verifier_schedule_fits_setup, setup_level_params_from_schedule, @@ -126,6 +127,8 @@ pub fn policy_of() -> PlannerPolicy { PlannerPolicy { cost_model: akita_schedules::PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: Cfg::selection_policy(), + recursive_split_search_policy: + akita_schedules::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, uniform_ring_dimension: Cfg::D, @@ -138,7 +141,8 @@ pub fn policy_of() -> PlannerPolicy { ring_subfield_norm_bound: Cfg::ring_subfield_embedding_norm_bound(), claim_ext_degree: Cfg::EXT_DEGREE, chal_ext_degree: Cfg::EXT_DEGREE, - basis_range: Cfg::basis_range(), + inner_basis_range: Cfg::inner_basis_range(), + opening_basis_range: Cfg::opening_basis_range(), witness_chunk: Cfg::chunked_witness_cfg(), recursive_setup_planning, } @@ -276,9 +280,15 @@ pub trait CommitmentConfig: Clone + Send + Sync + 'static { Self::D } - /// Inclusive `(min, max)` log-basis search range. + /// Inclusive `(min, max)` B/D opening and folded-response basis range. #[doc(hidden)] - fn basis_range() -> (u32, u32); + fn opening_basis_range() -> (u32, u32); + + /// Inclusive `(min, max)` A/source decomposition basis range. + #[doc(hidden)] + fn inner_basis_range() -> (u32, u32) { + Self::opening_basis_range() + } /// Group-owned honest sizing rule used only during offline planning. fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec; @@ -325,14 +335,6 @@ pub trait CommitmentConfig: Clone + Send + Sync + 'static { None } - /// Whether multi-group `commit_final_group` may run under this config adapter. - /// - /// Precommit adapters return `false`; multi-group final commits - /// require the regular preset config. - fn supports_multi_group_final_commit() -> bool { - true - } - /// Build the runtime [`FoldSchedule`] for `key`. /// /// Scalar openings use `AkitaScheduleLookupKey::single(group_key)` with an @@ -471,7 +473,7 @@ mod tests { Ok(SetupMatrixCapacity::minimum()) } - fn basis_range() -> (u32, u32) { + fn opening_basis_range() -> (u32, u32) { (3, 3) } @@ -738,14 +740,8 @@ mod precommit_tests { fn exact_precommit_params_freeze_standalone_metadata() { let group = PolynomialGroupLayout::new(16, 1); group.validate().expect("group layout"); - let singleton = - OpeningClaimsLayout::new(group.num_vars(), group.num_polynomials()).expect("singleton"); - let params = - as CommitmentConfig>::get_params_for_batched_commitment( - &singleton, - ) - .expect("precommitted group params"); - let precommitted = akita_types::CommittedGroupProfile::from_params(group, ¶ms); + let precommitted = + committed_group_profile::(&group).expect("precommitted group profile"); assert_eq!( precommitted.inner_commit_matrix.ring_dimension(), 64, @@ -756,21 +752,10 @@ mod precommit_tests { 64, "adaptive precommits use the uniform suffix dimension for B" ); - let root_basis = fp128::OneHot::basis_range().0; + let root_basis = fp128::OneHot::opening_basis_range().0; assert_eq!(precommitted.log_basis_inner, root_basis); assert_eq!(precommitted.log_basis_outer, root_basis); assert_ne!(precommitted.inner_commit_matrix.output_rank(), 0); assert_ne!(precommitted.outer_commit_matrix.output_rank(), 0); } - - #[test] - fn precommit_config_rejects_prove_schedule() { - let layout = OpeningClaimsLayout::new(2, 1).expect("opening layout"); - let err = - as CommitmentConfig>::get_params_for_prove( - &layout, - ) - .expect_err("precommit config must not prove"); - assert!(matches!(err, AkitaError::InvalidSetup(_))); - } } diff --git a/crates/akita-config/src/precommitted_commitment.rs b/crates/akita-config/src/precommitted_commitment.rs index 8fd3161f3..4b993f5de 100644 --- a/crates/akita-config/src/precommitted_commitment.rs +++ b/crates/akita-config/src/precommitted_commitment.rs @@ -1,128 +1,8 @@ -//! Exact precommitment config adapter. -//! -//! This adapter is for staggered workflows that need ordinary commit calls to -//! freeze the A/source and B/outer commitment layout before the final multi-group -//! root is known. The root basis is deterministic from the base config's runtime -//! catalog policy. Adaptive base configurations use their uniform suffix -//! dimension so a precommit recipe does not depend on a hypothetical future -//! final-group schedule. +//! Generated standalone commitment profiles. use crate::{policy_of, CommitmentConfig}; -use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; -use akita_types::{ - accumulate_matrix_field_elements_for_level, CommittedGroupParams, CommittedGroupProfile, - DecompositionParams, FoldSchedule, OpenCommitMatrixParams, OpeningClaimsLayout, - PolynomialGroupLayout, SetupMatrixCapacity, SisModulusProfileId, -}; -use std::marker::PhantomData; - -/// Config adapter that routes ordinary commit selection through the exact -/// precommit layout. -#[derive(Clone, Copy, Debug, Default)] -pub struct PrecommittedCommitmentConfig(PhantomData); - -impl CommitmentConfig for PrecommittedCommitmentConfig { - type Field = Cfg::Field; - type ExtField = Cfg::ExtField; - - const D: usize = Cfg::D; - const RING_DIMENSION_SCHEDULE_MODE: akita_schedules::RingDimensionScheduleMode = - Cfg::RING_DIMENSION_SCHEDULE_MODE; - - fn decomposition() -> DecompositionParams { - Cfg::decomposition() - } - - fn ring_challenge_config(d: usize) -> Result { - Cfg::ring_challenge_config(d) - } - - fn sis_modulus_profile() -> SisModulusProfileId { - Cfg::sis_modulus_profile() - } - - fn ring_subfield_embedding_norm_bound() -> u32 { - Cfg::ring_subfield_embedding_norm_bound() - } - - fn selection_policy() -> akita_schedules::SelectionPolicyId { - Cfg::selection_policy() - } - - fn setup_matrix_capacity( - max_num_vars: usize, - max_num_batched_polys: usize, - ) -> Result { - if max_num_batched_polys == 0 { - return Err(AkitaError::InvalidSetup( - "max_num_batched_polys must be at least 1".to_string(), - )); - } - let mut max_field_elements = 1usize; - for num_polys in 1..=max_num_batched_polys { - let opening_batch = OpeningClaimsLayout::new(max_num_vars, num_polys)?; - let params = Self::get_params_for_batched_commitment(&opening_batch)?; - accumulate_matrix_field_elements_for_level(¶ms, &mut max_field_elements)?; - } - Ok(SetupMatrixCapacity { - num_field_elements: max_field_elements, - }) - } - - fn basis_range() -> (u32, u32) { - Cfg::basis_range() - } - - fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { - Cfg::root_honest_fold_policy() - } - - fn schedule_catalog() -> Option { - Cfg::schedule_catalog() - } - - fn supports_multi_group_final_commit() -> bool { - false - } - - fn get_params_for_prove( - _opening_batch: &OpeningClaimsLayout, - ) -> Result { - Err(AkitaError::InvalidSetup( - "PrecommittedCommitmentConfig is only for precommit layouts; proving must use the regular config" - .to_string(), - )) - } - - fn get_params_for_batched_commitment( - opening_batch: &OpeningClaimsLayout, - ) -> Result { - opening_batch.check()?; - if opening_batch.num_groups() != 1 { - return Err(AkitaError::InvalidSetup( - "PrecommittedCommitmentConfig only commits standalone precommitted groups" - .to_string(), - )); - } - let key = opening_batch.root_final_group_layout()?; - committed_group_params::(&key) - } -} - -/// Resolve standalone A/B commitment parameters for one group using the base -/// config's generated precommit profile. -/// -/// This legacy adapter exists for callers still shaped around -/// [`CommittedGroupParams`]. The generated source of truth is the -/// descriptor-only [`committed_group_profile`]; final grouped-root expansion -/// derives opening metadata later from the selected schedule row. -pub fn committed_group_params( - key: &PolynomialGroupLayout, -) -> Result { - let profile = committed_group_profile::(key)?; - precommit_profile_as_commit_params::(profile) -} +use akita_types::{CommittedGroupProfile, PolynomialGroupLayout}; /// Resolve the generated standalone precommit profile for one group. pub fn committed_group_profile( @@ -137,70 +17,32 @@ pub fn committed_group_profile( ) } -fn precommit_profile_as_commit_params( - profile: CommittedGroupProfile, -) -> Result { - let policy = policy_of::(); - let d_open = profile.outer_commit_matrix.ring_dimension(); - let open_commit_matrix = OpenCommitMatrixParams::new_unchecked( - policy.sis_security_policy, - policy.sis_table_digest, - policy.sis_modulus_profile, - 1, - 1, - profile.outer_commit_matrix.coeff_linf_bound(), - d_open, - ); - Ok(CommittedGroupParams { - payload_mode: akita_types::CommitmentPayloadMode::Compressed, - log_basis_inner: profile.log_basis_inner, - log_basis_outer: profile.log_basis_outer, - log_basis_open: profile.log_basis_outer, - inner_commit_matrix: profile.inner_commit_matrix, - outer_commit_matrix: profile.outer_commit_matrix, - open_commit_matrix, - num_live_ring_elements_per_claim: profile.num_live_ring_elements_per_claim, - num_positions_per_block: profile.num_positions_per_block, - num_live_blocks: profile.num_live_blocks, - fold_challenge_config: Cfg::ring_challenge_config( - profile.inner_commit_matrix.ring_dimension(), - )?, - num_digits_inner: profile.num_digits_inner, - num_digits_outer: profile.num_digits_outer, - num_digits_open: profile.num_digits_outer, - num_digits_fold: 1, - witness_chunk: policy.witness_chunk_for_level(0), - precommitted_groups: Vec::new(), - setup_prefix: None, - }) -} - #[cfg(test)] mod tests { use super::*; use crate::proof_optimized::fp128; - use akita_types::CommittedGroupProfile; #[test] fn same_layout_can_resolve_config_specific_profiles() { let key = PolynomialGroupLayout::new(16, 1); - let dense = committed_group_params::(&key).expect("dense params"); - let one_hot = committed_group_params::(&key).expect("one-hot params"); + let dense = committed_group_profile::(&key).expect("dense profile"); + let one_hot = committed_group_profile::(&key).expect("one-hot profile"); assert_ne!( - CommittedGroupProfile::from_params(key, &dense), - CommittedGroupProfile::from_params(key, &one_hot), + dense, one_hot, "commitment config must affect standalone commitment parameters" ); } #[test] - fn dense_precommit_profile_uses_dense_config() { + fn dense_precommit_profile_uses_independent_basis() { let key = PolynomialGroupLayout::new(15, 2); - let params = committed_group_params::(&key).expect("dense params"); - assert_eq!(params.inner_commit_matrix.ring_dimension(), 64); - assert_eq!(params.outer_commit_matrix.ring_dimension(), 64); - assert_eq!(params.log_basis_inner, 3); - assert_eq!(params.log_basis_outer, 3); - assert_eq!(params.num_digits_inner, 43); + let profile = committed_group_profile::(&key).expect("dense profile"); + assert_eq!(profile.inner_commit_matrix.ring_dimension(), 64); + assert_eq!(profile.outer_commit_matrix.ring_dimension(), 64); + assert_eq!(profile.log_basis_inner, 8); + assert_eq!(profile.log_basis_outer, 3); + assert_eq!(profile.num_digits_inner, 16); + assert_eq!(profile.inner_commit_matrix.output_rank(), 6); + assert_eq!(profile.outer_commit_matrix.output_rank(), 1); } } diff --git a/crates/akita-config/src/proof_optimized.rs b/crates/akita-config/src/proof_optimized.rs index 9338f3542..588b6e42b 100644 --- a/crates/akita-config/src/proof_optimized.rs +++ b/crates/akita-config/src/proof_optimized.rs @@ -19,13 +19,29 @@ use std::sync::{LazyLock, Mutex}; /// Minimum proof-optimized log-basis. /// /// This is also the fixed **root-fold** basis: `log_basis_search_range_at_level(0)` -/// collapses the root to `basis_range.0`. Pinning the root to `3` (rather than the +/// collapses the root to `opening_basis_range.0`. Pinning the root to `3` (rather than the /// smallest reachable `2`) keeps the shrink strong enough that every preset — dense /// and small-field included — supports the full `nv` range, and matches the value /// the unpinned planner already favored at the root. pub(crate) const PROOF_OPTIMIZED_LOG_BASIS_MIN: u32 = 3; /// Maximum proof-optimized log-basis. pub(crate) const PROOF_OPTIMIZED_LOG_BASIS_MAX: u32 = 6; +/// Maximum A/source log basis searched by proof-optimized presets. +/// +/// The signed-i16 commitment path supports larger values, but exhaustive +/// sweeps select 10 or 11 throughout the current dense/full-field domain. +pub(crate) const PROOF_OPTIMIZED_INNER_LOG_BASIS_MAX: u32 = 11; + +const fn proof_optimized_inner_basis_range( + profile: akita_types::SisModulusProfileId, +) -> (u32, u32) { + let max = match profile { + akita_types::SisModulusProfileId::Q32Offset99 => 10, + akita_types::SisModulusProfileId::Q64Offset59 + | akita_types::SisModulusProfileId::Q128OffsetA7F7 => PROOF_OPTIMIZED_INNER_LOG_BASIS_MAX, + }; + (PROOF_OPTIMIZED_LOG_BASIS_MIN, max) +} /// Explicit sparse-binary chunk size used by standard one-hot presets. /// /// Smaller/nonstandard chunking is represented by a separately named preset @@ -529,13 +545,19 @@ macro_rules! impl_proof_optimized_preset { ) } - fn basis_range() -> (u32, u32) { + fn opening_basis_range() -> (u32, u32) { ( $crate::proof_optimized::PROOF_OPTIMIZED_LOG_BASIS_MIN, $crate::proof_optimized::PROOF_OPTIMIZED_LOG_BASIS_MAX, ) } + fn inner_basis_range() -> (u32, u32) { + $crate::proof_optimized::proof_optimized_inner_basis_range( + Self::sis_modulus_profile(), + ) + } + fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { let legacy_witness = $fold_norms; if $log_commit_bound == 1 { @@ -606,13 +628,19 @@ macro_rules! impl_proof_optimized_preset { ) } - fn basis_range() -> (u32, u32) { + fn opening_basis_range() -> (u32, u32) { ( $crate::proof_optimized::PROOF_OPTIMIZED_LOG_BASIS_MIN, $crate::proof_optimized::PROOF_OPTIMIZED_LOG_BASIS_MAX, ) } + fn inner_basis_range() -> (u32, u32) { + $crate::proof_optimized::proof_optimized_inner_basis_range( + Self::sis_modulus_profile(), + ) + } + fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { let legacy_witness = $fold_norms; if $log_commit_bound == 1 { @@ -645,7 +673,7 @@ macro_rules! impl_proof_optimized_preset { }; } -#[cfg(test)] +#[cfg(all(test, feature = "schedules-default"))] mod tests; // --------------------------------------------------------------------------- diff --git a/crates/akita-config/src/proof_optimized/fp32.rs b/crates/akita-config/src/proof_optimized/fp32.rs index 09c5c7957..7a09b6e9c 100644 --- a/crates/akita-config/src/proof_optimized/fp32.rs +++ b/crates/akita-config/src/proof_optimized/fp32.rs @@ -59,7 +59,12 @@ impl_proof_optimized_preset!( 128, 32, 32, - fold_norms = akita_types::sis::FoldWitnessNorms::bounded(3, 128) + fold_norms = akita_types::sis::FoldWitnessNorms::bounded(3, 128), + schedules = ( + "schedules-fp32-d128-dense", + "fp32_d128_dense", + fp32_d128_dense_table + ) ); impl_proof_optimized_preset!( D128OneHot, diff --git a/crates/akita-config/src/recursive_commitment.rs b/crates/akita-config/src/recursive_commitment.rs index 5dbc91d30..47f60fc65 100644 --- a/crates/akita-config/src/recursive_commitment.rs +++ b/crates/akita-config/src/recursive_commitment.rs @@ -52,8 +52,12 @@ impl CommitmentConfig for RecursiveCommitmentConfig ) } - fn basis_range() -> (u32, u32) { - Cfg::basis_range() + fn opening_basis_range() -> (u32, u32) { + Cfg::opening_basis_range() + } + + fn inner_basis_range() -> (u32, u32) { + Cfg::inner_basis_range() } fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { @@ -117,14 +121,13 @@ impl CommitmentConfig for RecursiveCommitmentConfig mod adaptive_precommit_tests { use super::*; use crate::proof_optimized::fp128; - use crate::PrecommittedCommitmentConfig; - use akita_types::OpeningClaimsLayout; + use akita_types::PolynomialGroupLayout; fn assert_nv16_precommit() { - let layout = OpeningClaimsLayout::new(16, 1).expect("precommit layout"); - PrecommittedCommitmentConfig::>:: - get_params_for_batched_commitment(&layout) - .expect("adaptive recursive catalog must expose its base precommit profile"); + crate::committed_group_profile::>( + &PolynomialGroupLayout::new(16, 1), + ) + .expect("adaptive recursive catalog must expose its base precommit profile"); } #[cfg(feature = "schedules-fp128-onehot-recursive")] @@ -144,8 +147,7 @@ mod adaptive_precommit_tests { mod tests { use super::*; use crate::proof_optimized::fp128; - use crate::PrecommittedCommitmentConfig; - use akita_types::{AkitaScheduleLookupKey, CommittedGroupProfile, PolynomialGroupLayout}; + use akita_types::{AkitaScheduleLookupKey, PolynomialGroupLayout}; #[test] fn prove_layout_uses_the_recursive_catalogs_frozen_precommit_params() { @@ -153,11 +155,8 @@ mod tests { let precommitted = PolynomialGroupLayout::new(16, 1); let final_group = PolynomialGroupLayout::new(32, 2); - let singleton = OpeningClaimsLayout::new(16, 1).expect("singleton precommit layout"); - let params = - PrecommittedCommitmentConfig::::get_params_for_batched_commitment(&singleton) - .expect("recursive-catalog precommit params"); - let expected = CommittedGroupProfile::from_params(precommitted, ¶ms); + let expected = crate::committed_group_profile::(&precommitted) + .expect("recursive-catalog precommit profile"); let schedule = Cfg::runtime_schedule(AkitaScheduleLookupKey { final_group, precommitteds: vec![expected, expected], diff --git a/crates/akita-config/src/setup_prefix_slots.rs b/crates/akita-config/src/setup_prefix_slots.rs index 30ec48c44..3b566909c 100644 --- a/crates/akita-config/src/setup_prefix_slots.rs +++ b/crates/akita-config/src/setup_prefix_slots.rs @@ -153,23 +153,15 @@ pub(crate) fn recursive_group_batch_candidates_for_capacity; fn profiling_recursive_key() -> AkitaScheduleLookupKey { let pre = PolynomialGroupLayout::new(16, 1); - let singleton = - OpeningClaimsLayout::new(pre.num_vars(), pre.num_polynomials()).expect("singleton"); - let pre_params = - as CommitmentConfig>::get_params_for_batched_commitment( - &singleton, - ) - .expect("precommit params"); - let precommitted = CommittedGroupProfile::from_params(pre, &pre_params); + let precommitted = + crate::committed_group_profile::(&pre).expect("precommit profile"); AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), precommitteds: vec![precommitted, precommitted], @@ -273,7 +265,7 @@ mod tests { .iter() .map(SetupPrefixSlotId::d_setup) .collect::>(); - assert_eq!(dimensions, BTreeSet::from([64, 256])); + assert_eq!(dimensions, BTreeSet::from([256])); let unique: BTreeSet<_> = ids.iter().cloned().collect(); assert_eq!(unique.len(), ids.len()); } diff --git a/crates/akita-config/tests/basis_envelope.rs b/crates/akita-config/tests/basis_envelope.rs index 427e95c99..996e26d41 100644 --- a/crates/akita-config/tests/basis_envelope.rs +++ b/crates/akita-config/tests/basis_envelope.rs @@ -3,6 +3,7 @@ use akita_config::proof_optimized::fp128; use akita_config::CommitmentConfig; +use akita_types::sis::{HonestFoldPolicy, HonestFoldSizingQuery}; use akita_types::{AkitaScheduleLookupKey, PolynomialGroupLayout}; /// Sparse singleton keys covering small, production, stress, and table-max nv. @@ -11,6 +12,9 @@ const BASIS_ENVELOPE_NUM_VARS: &[usize] = &[10, 16, 28, 30, 64, 120]; #[test] fn adaptive_onehot_schedule_stays_within_basis_envelope() { type Cfg = fp128::OneHot; + let inner_basis_max = Cfg::inner_basis_range().1; + let opening_basis_max = Cfg::opening_basis_range().1; + let mut covered = 0usize; for &nv in BASIS_ENVELOPE_NUM_VARS { let schedule = match Cfg::runtime_schedule(AkitaScheduleLookupKey::single( @@ -19,19 +23,66 @@ fn adaptive_onehot_schedule_stays_within_basis_envelope() { Ok(schedule) => schedule, Err(_) => continue, }; + covered += 1; let root = &schedule.root.params.final_group.commitment; - let within_window = root.log_basis_inner <= 6 - && root.log_basis_outer <= 6 - && root.log_basis_open <= 6 + assert_eq!( + root.log_basis_inner, + Cfg::inner_basis_range().0, + "one-hot root must keep its canonical single-digit basis at nv={nv}" + ); + assert_eq!( + root.num_digits_inner, 1, + "one-hot root must remain a single digit at nv={nv}" + ); + let honest_policy = Cfg::root_honest_fold_policy(); + let num_fold_coeffs = root + .num_positions_per_block + .checked_mul(root.num_digits_inner) + .and_then(|width| width.checked_mul(root.d_a())) + .and_then(|width| width.checked_mul(root.witness_chunk.num_chunks)) + .expect("one-hot fold width"); + let expected_fold_digits = honest_policy + .num_digits_fold(HonestFoldSizingQuery { + ring_dimension: root.d_a(), + num_claims: 1, + num_live_blocks: root.num_live_blocks, + num_chunks: root.witness_chunk.num_chunks, + num_fold_coeffs, + witness_norms: honest_policy + .witness_norms_for_inner_basis(root.log_basis_inner, root.d_a()), + log_basis_response: root.log_basis_open, + challenge_config: &root.fold_challenge_config, + }) + .expect("one-hot fold policy"); + assert_eq!( + root.num_digits_fold, expected_fold_digits, + "one-hot root must retain its tight honest-fold estimate at nv={nv}" + ); + let mut source_basis = root.log_basis_open; + for fold in &schedule.recursive_folds { + assert_eq!( + fold.params.witness.log_basis_inner, source_basis, + "recursive fold redecomposes its balanced-digit input at nv={nv}" + ); + source_basis = fold.params.witness.log_basis_open; + } + assert_eq!( + schedule.terminal.params.witness.log_basis_inner, source_basis, + "terminal fold redecomposes its balanced-digit input at nv={nv}" + ); + let within_window = root.log_basis_inner <= inner_basis_max + && root.log_basis_outer <= opening_basis_max + && root.log_basis_open <= opening_basis_max && schedule.recursive_folds.iter().all(|fold| { - fold.params.witness.log_basis_inner <= 6 - && fold.params.witness.log_basis_outer <= 6 - && fold.params.witness.log_basis_open <= 6 + fold.params.witness.log_basis_inner <= opening_basis_max + && fold.params.witness.log_basis_outer <= opening_basis_max + && fold.params.witness.log_basis_open <= opening_basis_max }) - && schedule.terminal.params.witness.log_basis_inner <= 6; + && schedule.terminal.params.witness.log_basis_inner <= opening_basis_max; assert!( within_window, - "adaptive onehot schedule selected log_basis > 6 at nv={nv}: {schedule:?}" + "adaptive onehot schedule exceeded its configured basis range at nv={nv}: {schedule:?}" ); } + assert!(covered > 0, "basis-envelope test resolved no catalog rows"); } diff --git a/crates/akita-config/tests/dense_inner_basis.rs b/crates/akita-config/tests/dense_inner_basis.rs new file mode 100644 index 000000000..7474b9043 --- /dev/null +++ b/crates/akita-config/tests/dense_inner_basis.rs @@ -0,0 +1,121 @@ +#![allow(missing_docs)] + +use akita_config::proof_optimized::{fp128, fp32, fp64}; +use akita_config::CommitmentConfig; +use akita_types::{AkitaScheduleLookupKey, PolynomialGroupLayout}; + +#[derive(Debug, PartialEq, Eq)] +struct Snapshot { + inner_basis: u32, + opening_basis: u32, + positions: usize, + blocks: usize, + inner_digits: usize, + n_a: usize, + n_b: usize, + n_d: usize, + a_input_raw: usize, + a_output_raw: usize, + b_input_raw: usize, + b_output_raw: usize, + d_input_raw: usize, + d_output_raw: usize, + next_witness: usize, +} + +fn snapshot() -> Snapshot { + let schedule = Cfg::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(26), + )) + .expect("generated dense nv=26 schedule"); + let root = &schedule.root.params.final_group.commitment; + Snapshot { + inner_basis: root.log_basis_inner, + opening_basis: root.log_basis_open, + positions: root.num_positions_per_block, + blocks: root.num_live_blocks, + inner_digits: root.num_digits_inner, + n_a: root.inner_commit_matrix.output_rank(), + n_b: root.outer_commit_matrix.output_rank(), + n_d: root.open_commit_matrix.output_rank(), + a_input_raw: root.inner_commit_matrix.raw_input_dimension().unwrap(), + a_output_raw: root.inner_commit_matrix.raw_output_dimension().unwrap(), + b_input_raw: root.outer_commit_matrix.raw_input_dimension().unwrap(), + b_output_raw: root.outer_commit_matrix.raw_output_dimension().unwrap(), + d_input_raw: root.open_commit_matrix.raw_input_dimension().unwrap(), + d_output_raw: root.open_commit_matrix.raw_output_dimension().unwrap(), + next_witness: schedule.root.output_witness_len, + } +} + +#[test] +fn dense_nv26_proof_first_winners_keep_inner_basis_independent() { + let fp32 = snapshot::(); + assert_ne!(fp32.inner_basis, fp32.opening_basis); + assert_eq!( + fp32, + Snapshot { + inner_basis: 6, + opening_basis: 3, + positions: 2048, + blocks: 256, + inner_digits: 6, + n_a: 11, + n_b: 2, + n_d: 2, + a_input_raw: 1_572_864, + a_output_raw: 1_408, + b_input_raw: 3_964_928, + b_output_raw: 256, + d_input_raw: 360_448, + d_output_raw: 256, + next_witness: 12_234_880, + } + ); + + let fp64 = snapshot::(); + assert_ne!(fp64.inner_basis, fp64.opening_basis); + assert_eq!( + fp64, + Snapshot { + inner_basis: 6, + opening_basis: 3, + positions: 1024, + blocks: 512, + inner_digits: 11, + n_a: 7, + n_b: 1, + n_d: 1, + a_input_raw: 1_441_792, + a_output_raw: 896, + b_input_raw: 10_092_544, + b_output_raw: 128, + d_input_raw: 1_441_792, + d_output_raw: 128, + next_witness: 18_794_112, + } + ); + + let fp128 = snapshot::(); + assert_ne!(fp128.inner_basis, fp128.opening_basis); + assert_eq!( + fp128, + Snapshot { + inner_basis: 9, + opening_basis: 3, + positions: 1024, + blocks: 256, + inner_digits: 15, + n_a: 2, + n_b: 1, + n_d: 1, + a_input_raw: 3_932_160, + a_output_raw: 512, + b_input_raw: 5_636_096, + b_output_raw: 64, + d_input_raw: 2_818_048, + d_output_raw: 64, + next_witness: 32_108_224, + } + ); +} diff --git a/crates/akita-config/tests/generated_tables.rs b/crates/akita-config/tests/generated_tables.rs index e3d917444..9a6cb3141 100644 --- a/crates/akita-config/tests/generated_tables.rs +++ b/crates/akita-config/tests/generated_tables.rs @@ -57,14 +57,13 @@ use akita_schedules::{ }; #[test] -fn group_batch_emission_matches_supported_policy_shape() { +fn group_batch_requests_are_canonically_ordered() { for family in ALL_GENERATED_FAMILIES { - let policy = (family.policy)(); - assert!( - !family.emit_group_batch || policy.decomposition.log_commit_bound == 1, - "family {} opted into the current one-hot-only grouped catalog enumeration", - family.module_name - ); + let requests = (family.group_batch_keys)().expect("grouped request enumeration"); + assert!(requests.windows(2).all(|pair| { + akita_planner::runtime_schedule_key_cmp(&pair[0].0, &pair[1].0) + == std::cmp::Ordering::Less + })); } } @@ -91,6 +90,7 @@ fn family_catalog_is_linked(family: &GeneratedFamily) -> bool { "fp64_d128_dense" => fp64::D128Dense::schedule_catalog().is_some(), "fp64_d128_onehot" => fp64::D128OneHot::schedule_catalog().is_some(), "fp64_d256_onehot" => fp64::D256OneHot::schedule_catalog().is_some(), + "fp32_d128_dense" => fp32::D128Dense::schedule_catalog().is_some(), "fp32_d128_onehot" => fp32::D128OneHot::schedule_catalog().is_some(), "fp32_d256_onehot" => fp32::D256OneHot::schedule_catalog().is_some(), other => panic!("unknown generated family for catalog guard: {other}"), @@ -106,13 +106,12 @@ fn assert_table_hit( if keys.is_empty() { return; } - let hit = keys - .iter() - .any(|&key| table_entry(*catalog, &AkitaScheduleLookupKey::single(key)).is_some()); - assert!( - hit, - "family {module_name} must have at least one generated-table key hit (non-vacuous catalog guard)" - ); + for &key in keys { + assert!( + table_entry(*catalog, &AkitaScheduleLookupKey::single(key)).is_some(), + "family {module_name} is missing emitted scalar key {key:?}" + ); + } } #[cfg(feature = "all-schedules")] @@ -335,12 +334,32 @@ fn family_catalog( "fp64_d128_dense" => prepare_family_catalog::(family, keys), "fp64_d128_onehot" => prepare_family_catalog::(family, keys), "fp64_d256_onehot" => prepare_family_catalog::(family, keys), + "fp32_d128_dense" => prepare_family_catalog::(family, keys), "fp32_d128_onehot" => prepare_family_catalog::(family, keys), "fp32_d256_onehot" => prepare_family_catalog::(family, keys), other => panic!("unknown generated family for catalog guard: {other}"), } } +#[cfg(feature = "all-schedules")] +#[test] +fn generated_catalogs_cover_emitted_keys() { + for family in ALL_GENERATED_FAMILIES { + assert!( + family_catalog_is_linked(family), + "family {} is not linked under all-schedules", + family.module_name + ); + let keys = emitted_scalar_keys(family).unwrap_or_else(|error| { + panic!( + "family {} key enumeration failed: {error}", + family.module_name + ) + }); + let _ = family_catalog(family, &keys); + } +} + fn assert_group_batch_table_hits( module_name: &str, requests: &[GroupBatchCandidate], @@ -398,6 +417,9 @@ fn assert_family_group_batch_table_hit(family: &GeneratedFamily, requests: &[Gro "fp64_d256_onehot" => { assert_group_batch_table_hits::(family.module_name, requests) } + "fp32_d128_dense" => { + assert_group_batch_table_hits::(family.module_name, requests) + } "fp32_d128_onehot" => { assert_group_batch_table_hits::(family.module_name, requests) } @@ -470,6 +492,7 @@ fn resolve_family_group_batch_schedule( "fp64_d128_dense" => table_backed_group_batch_schedule::(request), "fp64_d128_onehot" => table_backed_group_batch_schedule::(request), "fp64_d256_onehot" => table_backed_group_batch_schedule::(request), + "fp32_d128_dense" => table_backed_group_batch_schedule::(request), "fp32_d128_onehot" => table_backed_group_batch_schedule::(request), "fp32_d256_onehot" => table_backed_group_batch_schedule::(request), other => panic!("unknown generated family for multi-group schedule guard: {other}"), @@ -483,15 +506,18 @@ fn table_backed_expanded( key: PolynomialGroupLayout, ) -> Result { let lookup_key = AkitaScheduleLookupKey::single(key); - if let Some(entry) = table_entry(catalog, &lookup_key) { - return schedule_from_entry( - entry, - &lookup_key, - &(family.policy)(), - family.ring_challenge_config, - ); - } - (family.regen)(key) + let entry = table_entry(catalog, &lookup_key).ok_or_else(|| { + AkitaError::UnsupportedSchedule(format!( + "generated family {} is missing scalar key {key:?}", + family.module_name + )) + })?; + schedule_from_entry( + entry, + &lookup_key, + &(family.policy)(), + family.ring_challenge_config, + ) } /// One `(family, key)` whose table-hit expansion disagrees with the DP. @@ -817,33 +843,27 @@ fn check_family(family: &GeneratedFamily, into: &mut Vec) { #[cfg(feature = "all-schedules")] { let catalog = family_catalog(family, &keys); - let group_batch_keys = (family.group_batch_keys)(family).unwrap_or_else(|e| { + let group_batch_keys = (family.group_batch_keys)().unwrap_or_else(|e| { panic!( "family {} multi-group key enumeration failed: {e}", family.module_name ) }); check_scalar_keys(family, &keys, catalog, into); - if family.emit_group_batch { - assert_family_group_batch_table_hit(family, &group_batch_keys); - check_group_batch_keys(family, catalog, &group_batch_keys, into); - } + assert_family_group_batch_table_hit(family, &group_batch_keys); + check_group_batch_keys(family, catalog, &group_batch_keys, into); } #[cfg(not(feature = "all-schedules"))] { - let group_batch_keys = (family.group_batch_keys)(family).unwrap_or_else(|e| { + let group_batch_keys = (family.group_batch_keys)().unwrap_or_else(|e| { panic!( "family {} multi-group key enumeration failed: {e}", family.module_name ) }); - if family.emit_group_batch { - assert_family_group_batch_table_hit(family, &group_batch_keys); - } + assert_family_group_batch_table_hit(family, &group_batch_keys); check_scalar_keys(family, &keys, into); - if family.emit_group_batch { - check_group_batch_keys(family, &group_batch_keys, into); - } + check_group_batch_keys(family, &group_batch_keys, into); } } diff --git a/crates/akita-config/tests/runtime_fallback.rs b/crates/akita-config/tests/runtime_fallback.rs index fdd9cf21a..f9bbc5279 100644 --- a/crates/akita-config/tests/runtime_fallback.rs +++ b/crates/akita-config/tests/runtime_fallback.rs @@ -12,9 +12,12 @@ #![allow(missing_docs)] use akita_config::proof_optimized::{fp128, fp32}; -use akita_config::{ - policy_of, CommitmentConfig, PrecommittedCommitmentConfig, RecursiveCommitmentConfig, -}; +#[cfg(all( + feature = "schedules-fp128-onehot", + not(feature = "schedules-fp128-onehot-recursive") +))] +use akita_config::RecursiveCommitmentConfig; +use akita_config::{policy_of, CommitmentConfig}; use akita_planner::find_schedule; use akita_schedules::resolve_schedule; use akita_schedules::{ @@ -22,8 +25,7 @@ use akita_schedules::{ PlannerPolicy, ResolvedScheduleRow, }; use akita_types::{ - AkitaScheduleLookupKey, CommitmentRingDims, CommittedGroupProfile, OpeningClaimsLayout, - PolynomialGroupLayout, + AkitaScheduleLookupKey, CommitmentRingDims, CommittedGroupProfile, PolynomialGroupLayout, }; /// A one-point 3-poly key that no generated table carries (generated tables only @@ -288,17 +290,15 @@ fn resolved_row_audit_rejects_each_noncanonical_terminal_shape_field() { } } +#[cfg(all( + feature = "schedules-fp128-onehot", + not(feature = "schedules-fp128-onehot-recursive") +))] #[test] fn grouped_recursive_catalog_rejects_without_recursive_feature() { let precommitted_group = PolynomialGroupLayout::singleton(16); - let precommitted_params = - fp128::OneHot::runtime_schedule(AkitaScheduleLookupKey::single(precommitted_group)) - .expect("base OneHot precommit schedule") - .root - .params - .final_group - .commitment; - let descriptor = CommittedGroupProfile::from_params(precommitted_group, &precommitted_params); + let descriptor = akita_config::committed_group_profile::(&precommitted_group) + .expect("base OneHot precommit profile"); let key = AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), precommitteds: vec![descriptor, descriptor], @@ -309,32 +309,13 @@ fn grouped_recursive_catalog_rejects_without_recursive_feature() { )); } -#[test] -fn adapters_forward_mixed_dimension_policy() { - type Base = fp128::OneHot; - assert_eq!( - as CommitmentConfig>::RING_DIMENSION_SCHEDULE_MODE, - Base::RING_DIMENSION_SCHEDULE_MODE, - ); - assert_eq!( - as CommitmentConfig>::RING_DIMENSION_SCHEDULE_MODE, - Base::RING_DIMENSION_SCHEDULE_MODE, - ); - assert_eq!( - as CommitmentConfig>::selection_policy(), - Base::selection_policy(), - ); - akita_schedules::planner_support::validate_policy(&policy_of::< - PrecommittedCommitmentConfig, - >()) - .expect("precommitted mixed-dimension policy must remain valid"); -} - fn assert_policy_matches_cfg() { let policy = policy_of::(); let expected = PlannerPolicy { cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: Cfg::selection_policy(), + recursive_split_search_policy: + akita_schedules::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, uniform_ring_dimension: Cfg::D, @@ -347,7 +328,8 @@ fn assert_policy_matches_cfg() { ring_subfield_norm_bound: Cfg::ring_subfield_embedding_norm_bound(), claim_ext_degree: Cfg::EXT_DEGREE, chal_ext_degree: Cfg::EXT_DEGREE, - basis_range: Cfg::basis_range(), + inner_basis_range: Cfg::inner_basis_range(), + opening_basis_range: Cfg::opening_basis_range(), witness_chunk: Cfg::chunked_witness_cfg(), recursive_setup_planning: Cfg::recursive_setup_planning(), }; @@ -398,15 +380,11 @@ fn adaptive_dense_plans_multi_group_roots_at_uniform_suffix_dimension() { const FINAL_NV: usize = 20; let pre_group = PolynomialGroupLayout::singleton(PRE_NV); - let pre_layout = OpeningClaimsLayout::new(PRE_NV, 1).expect("precommit opening layout"); - let pre_params = - as CommitmentConfig>::get_params_for_batched_commitment( - &pre_layout, - ) - .expect("dense precommit params"); + let pre_profile = + akita_config::committed_group_profile::(&pre_group).expect("dense precommit profile"); let key = AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::singleton(FINAL_NV), - precommitteds: vec![CommittedGroupProfile::from_params(pre_group, &pre_params)], + precommitteds: vec![pre_profile], }; let precommitted_honest_fold_policies = vec![Cfg::root_honest_fold_policy()]; let planned = find_schedule( @@ -440,16 +418,12 @@ fn adaptive_dense_plans_multi_group_roots_at_uniform_suffix_dimension() { #[test] fn root_basis_is_derived_from_existing_policy_inputs() { let fp128 = policy_of::(); - assert_eq!(fp128.basis_range, (3, 6)); + assert_eq!(fp128.opening_basis_range, (3, 6)); assert_eq!(fp128.decomposition.log_basis, 3); - assert_eq!(fp128.log_basis_search_range_at_level(0), (3, 3)); - assert_eq!(fp128.log_basis_search_range_at_level(1), (3, 6)); let fp32 = policy_of::(); - assert_eq!(fp32.basis_range, (3, 6)); + assert_eq!(fp32.opening_basis_range, (3, 6)); assert_eq!(fp32.decomposition.log_basis, 3); - assert_eq!(fp32.log_basis_search_range_at_level(0), (3, 3)); - assert_eq!(fp32.log_basis_search_range_at_level(1), (3, 6)); } #[test] @@ -470,9 +444,7 @@ fn runtime_schedule_never_panics_on_bounded_adversarial_keys() { fn committed_descriptor( group: PolynomialGroupLayout, ) -> CommittedGroupProfile { - let params = akita_config::committed_group_params::(&group) - .expect("heterogeneous group must resolve"); - CommittedGroupProfile::from_params(group, ¶ms) + akita_config::committed_group_profile::(&group).expect("heterogeneous group must resolve") } #[test] diff --git a/crates/akita-pcs/Cargo.toml b/crates/akita-pcs/Cargo.toml index ace5f3dd9..55403c406 100644 --- a/crates/akita-pcs/Cargo.toml +++ b/crates/akita-pcs/Cargo.toml @@ -46,8 +46,9 @@ parallel = [ ] schedules-default = ["akita-config/schedules-default"] profile-ci = [ - "profile-ci-fp128-dense", - "profile-ci-flat-onehot", + "profile-ci-fp32", + "profile-ci-fp64", + "profile-ci-fp128-base", "profile-ci-multi-group-direct", "profile-ci-multi-group-recursive", "profile-ci-multi-group-recursive-w8r2", @@ -58,14 +59,19 @@ profile-ci = [ # compatibility union for local use and older merge-base checkouts. It is the # transitive union of the narrow features above, so those lists cannot drift. profile-bench-selected = [] -profile-ci-fp128-dense = [ +profile-ci-fp32 = [ "profile-bench-selected", - "akita-config/schedules-fp128-dense", + "akita-config/schedules-fp32-d128-dense", + "akita-config/schedules-fp32-d128-onehot", ] -profile-ci-flat-onehot = [ +profile-ci-fp64 = [ "profile-bench-selected", - "akita-config/schedules-fp32-d128-onehot", + "akita-config/schedules-fp64-d128-dense", "akita-config/schedules-fp64-d128-onehot", +] +profile-ci-fp128-base = [ + "profile-bench-selected", + "akita-config/schedules-fp128-dense", "akita-config/schedules-fp128-onehot", ] profile-ci-multi-group-direct = [ diff --git a/crates/akita-pcs/examples/profile/main.rs b/crates/akita-pcs/examples/profile/main.rs index b48658739..0aa2fc35a 100644 --- a/crates/akita-pcs/examples/profile/main.rs +++ b/crates/akita-pcs/examples/profile/main.rs @@ -3,8 +3,9 @@ #[cfg(all( feature = "profile-bench-selected", not(any( - feature = "profile-ci-fp128-dense", - feature = "profile-ci-flat-onehot", + feature = "profile-ci-fp32", + feature = "profile-ci-fp64", + feature = "profile-ci-fp128-base", feature = "profile-ci-multi-group-direct", feature = "profile-ci-multi-group-recursive", feature = "profile-ci-multi-group-recursive-w8r2", diff --git a/crates/akita-pcs/examples/profile/modes.rs b/crates/akita-pcs/examples/profile/modes.rs index aaa24dba4..3bd3c587a 100644 --- a/crates/akita-pcs/examples/profile/modes.rs +++ b/crates/akita-pcs/examples/profile/modes.rs @@ -54,7 +54,6 @@ fn run_dense_mode run_dense_for::(label, nv, &layout, Some(&plan), true); } -#[cfg(not(feature = "profile-bench-selected"))] fn run_dense_mode_for>( label: &str, title: &str, @@ -188,12 +187,12 @@ struct ProfileMode { feature = "profile-bench-selected" ))] const PROFILE_SELECTED_MODES: &[ProfileMode] = &[ - #[cfg(feature = "profile-ci-fp128-dense")] + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp128-base"))] ProfileMode { name: "dense_fp128", run: run_profile_dense_fp128, }, - #[cfg(feature = "profile-ci-flat-onehot")] + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp128-base"))] ProfileMode { name: "onehot_fp128", run: run_profile_onehot_fp128, @@ -228,12 +227,22 @@ const PROFILE_SELECTED_MODES: &[ProfileMode] = &[ name: "onehot_fp128_multi_chunk_w8r2", run: run_profile_onehot_fp128_multi_chunk_w8r2, }, - #[cfg(feature = "profile-ci-flat-onehot")] + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp32"))] + ProfileMode { + name: "dense_fp32_d128", + run: run_profile_dense_fp32_d128, + }, + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp32"))] ProfileMode { name: "onehot_fp32_d128", run: run_profile_onehot_fp32_d128, }, - #[cfg(feature = "profile-ci-flat-onehot")] + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp64"))] + ProfileMode { + name: "dense_fp64_d128", + run: run_profile_dense_fp64_d128, + }, + #[cfg(any(feature = "profile-ci", feature = "profile-ci-fp64"))] ProfileMode { name: "onehot_fp64_d128", run: run_profile_onehot_fp64_d128, @@ -297,6 +306,10 @@ const PROFILE_ALL_MODES: &[ProfileMode] = &[ name: "dense_fp64_d64", run: run_profile_dense_fp64_d64, }, + ProfileMode { + name: "dense_fp64_d128", + run: run_profile_dense_fp64_d128, + }, ProfileMode { name: "onehot_fp64_d64", run: run_profile_onehot_fp64_d64, @@ -333,6 +346,7 @@ const EXCLUDED_FROM_ALL_SWEEP: &[&str] = &[ // `AKITA_MODE=` and drive the profile-bench matrix). "dense_fp32_d128", "onehot_fp32_d128", + "dense_fp64_d128", "onehot_fp64_d128", ]; @@ -365,7 +379,6 @@ fn small_field_onehot_title(field_label: &str, d: usize, nv: usize, num_polys: u } } -#[cfg(not(feature = "profile-bench-selected"))] fn small_field_dense_title(field_label: &str, d: usize) -> String { let schedule = small_field_schedule_source(d); format!("=== dense_{field_label}_d{d} ({field_label}, D={d}, {schedule}) ===") @@ -543,7 +556,6 @@ fn run_profile_dense_fp32_d64(nv: usize, num_polys: usize) { run_dense_mode_for::("dense_fp32_d64", &title, nv); } -#[cfg(not(feature = "profile-bench-selected"))] fn run_profile_dense_fp32_d128(nv: usize, num_polys: usize) { type Cfg = fp32::D128Dense; assert_singleton_mode("dense_fp32_d128", num_polys); @@ -570,6 +582,13 @@ fn run_profile_onehot_fp64_d128(nv: usize, num_polys: usize) { run_onehot_mode_for::("onehot_fp64_d128", &title, nv, num_polys); } +fn run_profile_dense_fp64_d128(nv: usize, num_polys: usize) { + type Cfg = fp64::D128Dense; + assert_singleton_mode("dense_fp64_d128", num_polys); + let title = small_field_dense_title("fp64", Cfg::D); + run_dense_mode_for::("dense_fp64_d128", &title, nv); +} + #[cfg(not(feature = "profile-bench-selected"))] fn run_profile_dense_fp64_d64(nv: usize, num_polys: usize) { type Cfg = fp64::D64Dense; diff --git a/crates/akita-pcs/examples/profile/ntt_prewarm.rs b/crates/akita-pcs/examples/profile/ntt_prewarm.rs index fa1e744b3..9496f60bc 100644 --- a/crates/akita-pcs/examples/profile/ntt_prewarm.rs +++ b/crates/akita-pcs/examples/profile/ntt_prewarm.rs @@ -1,9 +1,8 @@ use akita_field::{AkitaError, CanonicalField, FieldCore}; use akita_prover::{ - prewarm_ntt_requirements, CpuBackend, NttExecutionRequirements, NttOperationCluster, - UniformProverStack, + prewarm_ntt_requirements, CpuBackend, NttExecutionRequirements, UniformProverStack, }; -use akita_types::{FoldSchedule, NttCacheKey, NttTransformDomain}; +use akita_types::FoldSchedule; /// Prewarm the exact cache union for the profile's shared CPU owner. /// @@ -20,59 +19,6 @@ pub(crate) fn prewarm_uniform_profile_execution( where F: FieldCore + CanonicalField, { - let mut requirements = NttExecutionRequirements::from_prove_schedule(schedule)?; - let root = &schedule.root.params; - let final_layout = &root.final_group.commitment; - let final_inner_key = NttCacheKey::from_matrix_shape( - final_layout.inner_commit_matrix.ring_dimension(), - final_layout.inner_commit_matrix.output_rank(), - final_layout.inner_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?; - requirements.add_matrix( - 0, - NttOperationCluster::Commit, - final_inner_key, - final_inner_key.num_ring_elements, - )?; - let final_outer_key = NttCacheKey::from_matrix_shape( - final_layout.outer_commit_matrix.ring_dimension(), - final_layout.outer_commit_matrix.output_rank(), - final_layout.outer_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?; - requirements.add_matrix( - 0, - NttOperationCluster::Commit, - final_outer_key, - final_outer_key.num_ring_elements, - )?; - for precommitted in &root.precommitted_groups { - let layout = &precommitted.commitment.layout; - let inner_key = NttCacheKey::from_matrix_shape( - layout.inner_commit_matrix.ring_dimension(), - layout.inner_commit_matrix.output_rank(), - layout.inner_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?; - requirements.add_matrix( - 0, - NttOperationCluster::Commit, - inner_key, - inner_key.num_ring_elements, - )?; - let outer_key = NttCacheKey::from_matrix_shape( - layout.outer_commit_matrix.ring_dimension(), - layout.outer_commit_matrix.output_rank(), - layout.outer_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?; - requirements.add_matrix( - 0, - NttOperationCluster::Commit, - outer_key, - outer_key.num_ring_elements, - )?; - } + let requirements = NttExecutionRequirements::from_commit_and_prove_schedule(schedule)?; prewarm_ntt_requirements::(stack, &requirements) } diff --git a/crates/akita-pcs/examples/profile/report.rs b/crates/akita-pcs/examples/profile/report.rs index 36cd073e7..7e9c530e7 100644 --- a/crates/akita-pcs/examples/profile/report.rs +++ b/crates/akita-pcs/examples/profile/report.rs @@ -283,6 +283,8 @@ pub(crate) fn report_setup_sizes( let domain = match metric.key.domain { NttTransformDomain::Negacyclic => "negacyclic", NttTransformDomain::Cyclic => "cyclic", + NttTransformDomain::I16TailBothTransforms => "i16_tail_both", + NttTransformDomain::ExactNegacyclicI16 { .. } => "exact_negacyclic_i16", }; tracing::info!( label, @@ -605,6 +607,12 @@ pub(crate) fn emit_runtime_schedule_summary( setup_prefix.map_or(0, |prefix| prefix.natural_len); let setup_prefix_padded_field_elements = setup_prefix.map_or(0, |prefix| prefix.n_prefix().unwrap_or(0)); + let a_input_raw_dimension = lp.inner_commit_matrix.raw_input_dimension(); + let a_output_raw_dimension = lp.inner_commit_matrix.raw_output_dimension(); + let b_input_raw_dimension = lp.outer_commit_matrix.raw_input_dimension(); + let b_output_raw_dimension = lp.outer_commit_matrix.raw_output_dimension(); + let d_input_raw_dimension = lp.open_commit_matrix.raw_input_dimension(); + let d_output_raw_dimension = lp.open_commit_matrix.raw_output_dimension(); tracing::info!( label, level = level_idx, @@ -615,6 +623,12 @@ pub(crate) fn emit_runtime_schedule_summary( n_a = lp.inner_commit_matrix.output_rank(), n_b = lp.outer_commit_matrix.output_rank(), n_d = lp.open_commit_matrix.output_rank(), + ?a_input_raw_dimension, + ?a_output_raw_dimension, + ?b_input_raw_dimension, + ?b_output_raw_dimension, + ?d_input_raw_dimension, + ?d_output_raw_dimension, challenge_l1_mass = lp.challenge_l1_mass(), log_basis_inner = lp.log_basis_inner, log_basis_outer = lp.log_basis_outer, @@ -643,11 +657,22 @@ pub(crate) fn emit_runtime_schedule_summary( // current parser uses the setup-offload group emitted above. for (index, fold) in schedule.recursive_folds.iter().enumerate() { if let Some(prefix) = &fold.params.incoming_setup_prefix { + let layout = &prefix.commitment_params.layout; tracing::info!( label, successor_level = index + 1, setup_prefix_natural_field_elements = prefix.natural_len, setup_prefix_padded_field_elements = prefix.n_prefix().unwrap_or(0), + log_basis_inner = layout.log_basis_inner, + log_basis_open = prefix.commitment_params.log_basis_open, + num_live_blocks = layout.num_live_blocks, + num_positions_per_block = layout.num_positions_per_block, + n_a = layout.inner_commit_matrix.output_rank(), + n_b = layout.outer_commit_matrix.output_rank(), + a_input_raw_dimension = ?layout.inner_commit_matrix.raw_input_dimension(), + a_output_raw_dimension = ?layout.inner_commit_matrix.raw_output_dimension(), + b_input_raw_dimension = ?layout.outer_commit_matrix.raw_input_dimension(), + b_output_raw_dimension = ?layout.outer_commit_matrix.raw_output_dimension(), "planned recursive setup edge" ); } @@ -658,6 +683,24 @@ pub(crate) fn emit_runtime_schedule_summary( terminal_response_len = schedule.terminal.input_witness_len, final_inner_log_basis = schedule.terminal.params.witness.log_basis_inner, final_inner_ring_dimension = schedule.terminal.params.witness.d_a(), + final_inner_module_rank = schedule + .terminal + .params + .witness + .inner_commit_matrix + .output_rank(), + final_inner_input_raw_dimension = ?schedule + .terminal + .params + .witness + .inner_commit_matrix + .raw_input_dimension(), + final_inner_output_raw_dimension = ?schedule + .terminal + .params + .witness + .inner_commit_matrix + .raw_output_dimension(), "planned terminal state" ); } @@ -996,6 +1039,9 @@ pub(crate) fn print_layout(layout: &CommittedGroupParams, _num_claims: usize, _f log_basis_inner = layout.log_basis_inner, log_basis_outer = layout.log_basis_outer, log_basis_open = layout.log_basis_open, + n_a = layout.inner_commit_matrix.output_rank(), + n_b = layout.outer_commit_matrix.output_rank(), + n_d = layout.open_commit_matrix.output_rank(), "layout" ); } diff --git a/crates/akita-pcs/examples/profile/workload/batched_onehot.rs b/crates/akita-pcs/examples/profile/workload/batched_onehot.rs index 5f4bf9e6d..111d6c25d 100644 --- a/crates/akita-pcs/examples/profile/workload/batched_onehot.rs +++ b/crates/akita-pcs/examples/profile/workload/batched_onehot.rs @@ -56,7 +56,11 @@ pub(crate) fn run_batched_onehot> = (0..num_polys) .map(|poly_idx| { - make_profile_onehot_poly::(layout, 0xbeef_cafe ^ ((poly_idx as u64 + 1) << 32)) + make_profile_onehot_poly::( + nv, + layout.d_a(), + 0xbeef_cafe ^ ((poly_idx as u64 + 1) << 32), + ) }) .collect(); let mut point_rng = StdRng::seed_from_u64(0xfeed_face); diff --git a/crates/akita-pcs/examples/profile/workload/multi_group.rs b/crates/akita-pcs/examples/profile/workload/multi_group.rs index a7bcab81b..4d50b80fd 100644 --- a/crates/akita-pcs/examples/profile/workload/multi_group.rs +++ b/crates/akita-pcs/examples/profile/workload/multi_group.rs @@ -9,7 +9,7 @@ use crate::report::{ emit_proof_tail_report, emit_runtime_schedule_summary, print_batched_proof_summary, report_crt_profile, report_setup_sizes, report_timing, report_verifier_ntt_cache_size, }; -use akita_config::{CommitmentConfig, PrecommittedCommitmentConfig, RecursiveCommitmentConfig}; +use akita_config::{CommitmentConfig, RecursiveCommitmentConfig}; use akita_field::unreduced::{HasCommitAccum, HasOptimizedFold, HasUnreducedOps, HasWide}; use akita_field::{ CanonicalBytes, CanonicalField, FieldCore, FrobeniusExtField, FromPrimitiveInt, HalvingField, @@ -24,9 +24,9 @@ use akita_prover::{ use akita_serialization::{AkitaSerialize, Valid}; use akita_transcript::AkitaTranscript; use akita_types::{ - dispatch_for_field, BasisMode, CommittedGroupBatchProfile, CommittedGroupProfile, FoldSchedule, - FpExtEncoding, GroupBatchStatement, OpeningClaims, OpeningClaimsLayout, PolynomialGroupClaims, - PolynomialGroupLayout, SetupContributionMode, + dispatch_for_field, BasisMode, CommittedGroupBatchProfile, FoldSchedule, FpExtEncoding, + GroupBatchStatement, OpeningClaims, PolynomialGroupClaims, PolynomialGroupLayout, + SetupContributionMode, }; use rand::rngs::StdRng; use rand::SeedableRng; @@ -179,13 +179,8 @@ fn run_recursive_multi_group_onehot_with_proof_cfg::get_params_for_batched_commitment( - &pre_opening_batch, - ) - .expect("precommit layout"); - let pre_descriptor = CommittedGroupProfile::from_params(pre_key, &pre_params); + let pre_descriptor = + akita_config::committed_group_profile::(&pre_key).expect("precommit profile"); let final_group = PolynomialGroupLayout::new(final_num_vars, final_num_polys); let multi_group_key = akita_types::AkitaScheduleLookupKey { final_group, @@ -259,7 +254,8 @@ fn run_recursive_multi_group_onehot_with_proof_cfg( - &pre_params, + pre_num_vars, + pre_descriptor.inner_commit_matrix.ring_dimension(), 0x0bee_fcaf_2100_0000 + group_idx as u64, )]; let openings = polys @@ -267,10 +263,8 @@ fn run_recursive_multi_group_onehot_with_proof_cfg(poly, pre_point)) .collect::>(); let (commitment, hint) = - AkitaCommitmentScheme::>::batched_commit( - &setup, &polys, &stack, - ) - .expect("precommit"); + AkitaCommitmentScheme::::commit_group(&setup, &polys, &stack) + .expect("precommit"); pre_keys.push(pre_key); pre_commitments.push(commitment); pre_hints.push(hint); @@ -282,7 +276,8 @@ fn run_recursive_multi_group_onehot_with_proof_cfg( - &main_params, + final_num_vars, + main_params.d_a(), 0x0bee_fcaf_2800_0000 + poly_idx as u64, ) }) diff --git a/crates/akita-pcs/examples/profile/workload/profile_data.rs b/crates/akita-pcs/examples/profile/workload/profile_data.rs index 4cf00c1cf..bb1046312 100644 --- a/crates/akita-pcs/examples/profile/workload/profile_data.rs +++ b/crates/akita-pcs/examples/profile/workload/profile_data.rs @@ -12,24 +12,14 @@ use rand::{Rng, SeedableRng}; const ONEHOT_K: usize = 256; pub(super) fn make_profile_onehot_poly( - layout: &CommittedGroupParams, + num_vars: usize, + ring_dimension: usize, seed: u64, ) -> OneHotPoly where FF: CanonicalField + FromPrimitiveInt, { - let d = layout.d_a(); - let total_field = layout - .num_live_blocks - .checked_mul(layout.num_positions_per_block) - .and_then(|n| n.checked_mul(d)) - .expect("onehot total field size overflow"); - let num_vars = layout - .position_index_bits() - .checked_add(layout.block_index_bits()) - .and_then(|n| n.checked_add(d.trailing_zeros() as usize)) - .expect("onehot variable count overflow"); - assert_eq!(total_field, 1usize << num_vars); + let total_field = 1usize << num_vars; let onehot_k = onehot_k_for_num_vars(num_vars); let total_chunks = total_field / onehot_k; assert_eq!(total_chunks * onehot_k, total_field); @@ -38,7 +28,7 @@ where let indices = (0..total_chunks) .map(|_| Some(rng.gen_range(0..onehot_k) as u8)) .collect(); - OneHotPoly::::new(onehot_k, d, indices).expect("profile onehot poly") + OneHotPoly::::new(onehot_k, ring_dimension, indices).expect("profile onehot poly") } pub(crate) fn onehot_k_for_num_vars(nv: usize) -> usize { diff --git a/crates/akita-pcs/examples/profile/workload/single_group.rs b/crates/akita-pcs/examples/profile/workload/single_group.rs index 3fb83f548..8eea182c8 100644 --- a/crates/akita-pcs/examples/profile/workload/single_group.rs +++ b/crates/akita-pcs/examples/profile/workload/single_group.rs @@ -346,7 +346,7 @@ pub(crate) fn run_onehot>( + AkitaSerialize + Valid, { - let onehot_poly = make_profile_onehot_poly::(layout, 0xbeef_cafe); + let onehot_poly = make_profile_onehot_poly::(nv, layout.d_a(), 0xbeef_cafe); let mut rng = StdRng::seed_from_u64(0xfeed_face); let pt = random_claim_point::(nv, &mut rng); let opening = onehot_lagrange_opening::(&onehot_poly, &pt); diff --git a/crates/akita-pcs/src/scheme/tests/heterogeneous_group.rs b/crates/akita-pcs/src/scheme/tests/heterogeneous_group.rs index 9155bf032..c464c3376 100644 --- a/crates/akita-pcs/src/scheme/tests/heterogeneous_group.rs +++ b/crates/akita-pcs/src/scheme/tests/heterogeneous_group.rs @@ -1,6 +1,5 @@ use super::*; use akita_prover::MultilinearPolynomial; -use akita_types::PolynomialGroupLayout; #[test] fn heterogeneous_polynomial_groups_round_trip_with_group_local_points() { @@ -73,10 +72,7 @@ fn heterogeneous_polynomial_groups_round_trip_with_group_local_points() { .expect("curated heterogeneous schedule") .schedule() .clone(); - let onehot_pre_params = akita_config::committed_group_params::( - &PolynomialGroupLayout::new(ONEHOT_PRE_NV, 1), - ) - .expect("K=16 precommit params"); + let onehot_pre_profile = onehot_pre_commitment.profile; let final_params = &schedule.root.params.final_group.commitment; let onehot_pre_point = (0..ONEHOT_PRE_NV) @@ -88,12 +84,24 @@ fn heterogeneous_polynomial_groups_round_trip_with_group_local_points() { let final_point = (0..FINAL_NV) .map(|index| OneHotF::from_u64((index + 71) as u64)) .collect::>(); - let onehot_pre_opening = opening_from_poly(&onehot_pre, &onehot_pre_point, &onehot_pre_params); + let onehot_pre_opening = opening_from_poly( + &onehot_pre, + &onehot_pre_point, + onehot_pre_profile.inner_commit_matrix.ring_dimension(), + onehot_pre_profile.num_positions_per_block, + onehot_pre_profile.num_live_blocks, + ); let dense_openings = vec![ dense_opening(&dense_evals_a, &dense_point), dense_opening(&dense_evals_b, &dense_point), ]; - let final_opening = opening_from_poly(&final_onehot, &final_point, final_params); + let final_opening = opening_from_poly( + &final_onehot, + &final_point, + final_params.d_a(), + final_params.num_positions_per_block, + final_params.num_live_blocks, + ); let prover_claims = OpeningClaims::from_groups(vec![ PolynomialGroupClaims::new( diff --git a/crates/akita-pcs/src/scheme/tests/mod.rs b/crates/akita-pcs/src/scheme/tests/mod.rs index 2500ec905..9e4531566 100644 --- a/crates/akita-pcs/src/scheme/tests/mod.rs +++ b/crates/akita-pcs/src/scheme/tests/mod.rs @@ -3,7 +3,7 @@ use super::*; use akita_config::proof_optimized::fp128; use akita_config::test_support::akita_batched_root_layout; -use akita_config::{CommitmentConfig, PrecommittedCommitmentConfig}; +use akita_config::CommitmentConfig; use akita_prover::compute::{OpeningFoldKernel, OpeningFoldPlan, RootOpeningSource}; use akita_prover::{ComputeBackendSetup, CpuBackend}; use akita_prover::{ @@ -35,12 +35,10 @@ type Scheme = AkitaCommitmentScheme; type OneHotF = fp128::Field; type OneHotCfg = fp128::OneHot; -type PrecommittedOneHotCfg = PrecommittedCommitmentConfig; const ONEHOT_D: usize = OneHotCfg::D; // `fp128::OneHot` uses K=256 one-hot chunks at its root ring dimension. const BENCH_ONEHOT_K: usize = 256; type OneHotScheme = AkitaCommitmentScheme; -type PrecommittedOneHotScheme = AkitaCommitmentScheme; type HomogeneousSelectedProverData<'a, C, P> = SelectedProverOpeningData< 'a, ::ExtField, @@ -349,16 +347,12 @@ fn debug_random_point(nv: usize) -> Vec { .collect() } -fn debug_make_onehot_poly(layout: &CommittedGroupParams, seed: u64) -> OneHotPoly { - let total_ring = layout.num_live_blocks * layout.num_positions_per_block; - let ring_dimension = layout.d_a(); - let num_vars = layout.position_index_bits() - + layout.block_index_bits() - + ring_dimension.trailing_zeros() as usize; - // `total_ring` ring elements of degree D cover `2^num_vars` field elements, - // grouped into `2^num_vars / K` one-hot chunks. - let total_field = total_ring * ring_dimension; - assert_eq!(total_field, 1usize << num_vars); +fn debug_make_onehot_poly( + num_vars: usize, + ring_dimension: usize, + seed: u64, +) -> OneHotPoly { + let total_field = 1usize << num_vars; let total_chunks = total_field / BENCH_ONEHOT_K; let mut rng = StdRng::seed_from_u64(seed); @@ -373,20 +367,17 @@ fn debug_make_onehot_poly(layout: &CommittedGroupParams, seed: u64) -> OneHotPol fn opening_from_poly_at( poly: &OneHotPoly, point: &[OneHotF], - layout: &CommittedGroupParams, + num_positions_per_block: usize, + num_live_blocks: usize, ) -> OneHotF { let alpha_bits = D_OPEN.trailing_zeros() as usize; - assert_eq!( - point.len(), - alpha_bits + layout.position_index_bits() + layout.block_index_bits() - ); let inner_point = &point[..alpha_bits]; let reduced_point = &point[alpha_bits..]; let ring_opening_point = ring_opening_point_from_field( reduced_point, - layout.num_positions_per_block, - layout.num_live_blocks, + num_positions_per_block, + num_live_blocks, BasisMode::Lagrange, ) .expect("opening point shape should match layout"); @@ -398,7 +389,7 @@ fn opening_from_poly_at( OpeningFoldPlan::Base { live_block_weights: &ring_opening_point.live_block_weights, position_weights: &ring_opening_point.position_weights, - num_positions_per_block: layout.num_positions_per_block, + num_positions_per_block, }, ) .expect("evaluate_and_fold"); @@ -412,13 +403,20 @@ fn opening_from_poly_at( fn opening_from_poly( poly: &OneHotPoly, point: &[OneHotF], - layout: &CommittedGroupParams, + ring_dimension: usize, + num_positions_per_block: usize, + num_live_blocks: usize, ) -> OneHotF { akita_types::dispatch_for_field!( akita_types::ProtocolDispatchSlot::Role(akita_types::RingRole::Inner), OneHotF, - layout.d_a(), - |D_OPEN| Ok(opening_from_poly_at::(poly, point, layout)) + ring_dimension, + |D_OPEN| Ok(opening_from_poly_at::( + poly, + point, + num_positions_per_block, + num_live_blocks, + )) ) .expect("supported one-hot opening ring dimension") } diff --git a/crates/akita-pcs/src/scheme/tests/onehot.rs b/crates/akita-pcs/src/scheme/tests/onehot.rs index f3d13c1ce..072e3873e 100644 --- a/crates/akita-pcs/src/scheme/tests/onehot.rs +++ b/crates/akita-pcs/src/scheme/tests/onehot.rs @@ -1,23 +1,20 @@ use super::*; -type PrecommitCommitter = PrecommittedOneHotScheme; - #[test] -fn precommit_config_commit_returns_exact_frozen_layout() { +fn profile_native_commit_group_returns_exact_frozen_layout() { const NV: usize = 16; const GROUP_SIZE: usize = 1; let key = akita_types::PolynomialGroupLayout::new(NV, GROUP_SIZE); - let opening_batch = OpeningClaimsLayout::new(NV, GROUP_SIZE).expect("opening batch"); - let layout = PrecommittedOneHotCfg::get_params_for_batched_commitment(&opening_batch) - .expect("precommit layout"); - let total_field = (layout.num_live_blocks * layout.num_positions_per_block) + let profile = + akita_config::committed_group_profile::(&key).expect("precommit profile"); + let total_field = (profile.num_live_blocks * profile.num_positions_per_block) .checked_mul(ONEHOT_D) .expect("total field size overflow"); assert_eq!(total_field % BENCH_ONEHOT_K, 0); - let polys = [debug_make_onehot_poly(&layout, 0x0bee_fcaf_9a77_0001)]; + let polys = [debug_make_onehot_poly(NV, ONEHOT_D, 0x0bee_fcaf_9a77_0001)]; - let setup = PrecommitCommitter::setup_prover(NV, GROUP_SIZE).expect("setup"); + let setup = OneHotScheme::setup_prover(NV, GROUP_SIZE).expect("setup"); let prepared = CpuBackend::DEFAULT .prepare_setup(&setup) .expect("prepared setup"); @@ -28,23 +25,26 @@ fn precommit_config_commit_returns_exact_frozen_layout() { ) .expect("stack"); let (commitment, _hint) = - PrecommitCommitter::commit(&setup, &polys, &stack).expect("precommit"); - let frozen_layout = akita_types::CommittedGroupProfile::from_params(key, &layout); + OneHotScheme::commit_group(&setup, &polys, &stack).expect("precommit"); + let frozen_layout = commitment.profile; assert_eq!(frozen_layout.group, key); assert_eq!( frozen_layout.num_positions_per_block, - layout.num_positions_per_block + profile.num_positions_per_block + ); + assert_eq!(frozen_layout.num_live_blocks, profile.num_live_blocks); + assert_eq!( + frozen_layout.log_basis_outer, + OneHotCfg::opening_basis_range().0 ); - assert_eq!(frozen_layout.num_live_blocks, layout.num_live_blocks); - assert_eq!(frozen_layout.log_basis_outer, OneHotCfg::basis_range().0); assert_eq!( frozen_layout.inner_commit_matrix.output_rank(), - layout.inner_commit_matrix.output_rank() + profile.inner_commit_matrix.output_rank() ); assert_eq!( frozen_layout.outer_commit_matrix.output_rank(), - layout.outer_commit_matrix.output_rank() + profile.outer_commit_matrix.output_rank() ); assert_eq!( commitment.rows().count(), @@ -64,7 +64,7 @@ fn with_precommit_stack( &akita_prover::UniformProverStack<'_, OneHotF, CpuBackend>, ) -> R, ) -> R { - let setup = PrecommitCommitter::setup_prover(max_num_vars, max_num_polys).expect("setup"); + let setup = OneHotScheme::setup_prover(max_num_vars, max_num_polys).expect("setup"); let prepared = CpuBackend::DEFAULT .prepare_setup(&setup) .expect("prepared setup"); @@ -78,7 +78,7 @@ fn with_precommit_stack( } #[test] -fn precommit_config_allows_independent_precommitted_groups() { +fn profile_native_commit_group_allows_independent_groups() { const NV: usize = 16; const PRE_A_SIZE: usize = 1; const PRE_B_SIZE: usize = 2; @@ -88,29 +88,23 @@ fn precommit_config_allows_independent_precommitted_groups() { let pre_a_key = akita_types::PolynomialGroupLayout::new(NV, PRE_A_SIZE); let pre_b_key = akita_types::PolynomialGroupLayout::new(NV, PRE_B_SIZE); - let pre_a_opening_batch = OpeningClaimsLayout::new(NV, PRE_A_SIZE).expect("precommit A batch"); - let pre_b_opening_batch = OpeningClaimsLayout::new(NV, PRE_B_SIZE).expect("precommit B batch"); - let pre_a_layout = - PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_a_opening_batch) - .expect("precommit A layout"); - let pre_b_layout = - PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_b_opening_batch) - .expect("precommit B layout"); - let pre_a_polys = [debug_make_onehot_poly(&pre_a_layout, 0x0bee_fcaf_9a77_1001)]; + let pre_a_profile = akita_config::committed_group_profile::(&pre_a_key) + .expect("precommit A profile"); + let pre_b_profile = akita_config::committed_group_profile::(&pre_b_key) + .expect("precommit B profile"); + let pre_a_polys = [debug_make_onehot_poly(NV, ONEHOT_D, 0x0bee_fcaf_9a77_1001)]; let pre_b_polys = [ - debug_make_onehot_poly(&pre_b_layout, 0x0bee_fcaf_9a77_2001), - debug_make_onehot_poly(&pre_b_layout, 0x0bee_fcaf_9a77_2002), + debug_make_onehot_poly(NV, ONEHOT_D, 0x0bee_fcaf_9a77_2001), + debug_make_onehot_poly(NV, ONEHOT_D, 0x0bee_fcaf_9a77_2002), ]; with_precommit_stack(NV, SETUP_CAPACITY_SIZE, |setup, stack| { let (pre_a_commitment, _pre_a_hint) = - PrecommitCommitter::commit(setup, &pre_a_polys, stack).expect("precommit A"); + OneHotScheme::commit_group(setup, &pre_a_polys, stack).expect("precommit A"); let (pre_b_commitment, _pre_b_hint) = - PrecommitCommitter::commit(setup, &pre_b_polys, stack).expect("precommit B"); - let pre_a_frozen = - akita_types::CommittedGroupProfile::from_params(pre_a_key, &pre_a_layout); - let pre_b_frozen = - akita_types::CommittedGroupProfile::from_params(pre_b_key, &pre_b_layout); + OneHotScheme::commit_group(setup, &pre_b_polys, stack).expect("precommit B"); + let pre_a_frozen = pre_a_commitment.profile; + let pre_b_frozen = pre_b_commitment.profile; assert_eq!(pre_a_frozen.group, pre_a_key); assert_eq!(pre_b_frozen.group, pre_b_key); @@ -123,6 +117,8 @@ fn precommit_config_allows_independent_precommitted_groups() { pre_b_frozen.outer_commit_matrix.output_rank() ); assert_ne!(pre_a_frozen.group, pre_b_frozen.group); + assert_eq!(pre_a_frozen, pre_a_profile); + assert_eq!(pre_b_frozen, pre_b_profile); }); } @@ -138,24 +134,12 @@ fn group_batch_schedule_preserves_precommitted_order() { let pre_a_key = akita_types::PolynomialGroupLayout::new(PRE_NV, PRE_A_SIZE); let pre_b_key = akita_types::PolynomialGroupLayout::new(PRE_NV, PRE_B_SIZE); let pre_c_key = akita_types::PolynomialGroupLayout::new(PRE_NV, PRE_C_SIZE); - let pre_a_opening_batch = - OpeningClaimsLayout::new(PRE_NV, PRE_A_SIZE).expect("precommit A batch"); - let pre_b_opening_batch = - OpeningClaimsLayout::new(PRE_NV, PRE_B_SIZE).expect("precommit B batch"); - let pre_c_opening_batch = - OpeningClaimsLayout::new(PRE_NV, PRE_C_SIZE).expect("precommit C batch"); - let pre_a_layout = - PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_a_opening_batch) - .expect("precommit A layout"); - let pre_b_layout = - PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_b_opening_batch) - .expect("precommit B layout"); - let pre_c_layout = - PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_c_opening_batch) - .expect("precommit C layout"); - let pre_a_frozen = akita_types::CommittedGroupProfile::from_params(pre_a_key, &pre_a_layout); - let pre_b_frozen = akita_types::CommittedGroupProfile::from_params(pre_b_key, &pre_b_layout); - let pre_c_frozen = akita_types::CommittedGroupProfile::from_params(pre_c_key, &pre_c_layout); + let pre_a_frozen = akita_config::committed_group_profile::(&pre_a_key) + .expect("precommit A profile"); + let pre_b_frozen = akita_config::committed_group_profile::(&pre_b_key) + .expect("precommit B profile"); + let pre_c_frozen = akita_config::committed_group_profile::(&pre_c_key) + .expect("precommit C profile"); let multi_group_key = akita_types::AkitaScheduleLookupKey { final_group: akita_types::PolynomialGroupLayout::new(FINAL_NV, MAIN_SIZE), precommitteds: vec![pre_a_frozen, pre_b_frozen, pre_c_frozen], @@ -199,13 +183,20 @@ fn group_batch_commits_independent_arity_precommitteds() { let pre_a_key = akita_types::PolynomialGroupLayout::new(PRE_NV, GROUP_SIZE); let pre_b_key = akita_types::PolynomialGroupLayout::new(PRE_NV, GROUP_SIZE); - let pre_opening_batch = OpeningClaimsLayout::new(PRE_NV, GROUP_SIZE).expect("precommit batch"); - let pre_a_layout = PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_opening_batch) - .expect("precommit A layout"); - let pre_b_layout = PrecommittedOneHotCfg::get_params_for_batched_commitment(&pre_opening_batch) - .expect("precommit B layout"); - let pre_a_polys = [debug_make_onehot_poly(&pre_a_layout, 0x0bee_fcaf_9a77_5001)]; - let pre_b_polys = [debug_make_onehot_poly(&pre_b_layout, 0x0bee_fcaf_9a77_6001)]; + let pre_a_frozen = akita_config::committed_group_profile::(&pre_a_key) + .expect("precommit A profile"); + let pre_b_frozen = akita_config::committed_group_profile::(&pre_b_key) + .expect("precommit B profile"); + let pre_a_polys = [debug_make_onehot_poly( + PRE_NV, + ONEHOT_D, + 0x0bee_fcaf_9a77_5001, + )]; + let pre_b_polys = [debug_make_onehot_poly( + PRE_NV, + ONEHOT_D, + 0x0bee_fcaf_9a77_6001, + )]; let setup = OneHotScheme::setup_prover(FINAL_NV, SETUP_CAPACITY_SIZE).expect("protocol setup"); let prepared = CpuBackend::DEFAULT @@ -218,11 +209,9 @@ fn group_batch_commits_independent_arity_precommitteds() { ) .expect("protocol stack"); let (pre_a_commitment, _pre_a_hint) = - PrecommitCommitter::commit::<_, _>(&setup, &pre_a_polys, &stack).expect("precommit A"); + OneHotScheme::commit_group::<_, _>(&setup, &pre_a_polys, &stack).expect("precommit A"); let (pre_b_commitment, _pre_b_hint) = - PrecommitCommitter::commit::<_, _>(&setup, &pre_b_polys, &stack).expect("precommit B"); - let pre_a_frozen = akita_types::CommittedGroupProfile::from_params(pre_a_key, &pre_a_layout); - let pre_b_frozen = akita_types::CommittedGroupProfile::from_params(pre_b_key, &pre_b_layout); + OneHotScheme::commit_group::<_, _>(&setup, &pre_b_polys, &stack).expect("precommit B"); let multi_group_key = akita_types::AkitaScheduleLookupKey { final_group: akita_types::PolynomialGroupLayout::new(FINAL_NV, FINAL_SIZE), precommitteds: vec![pre_a_frozen, pre_b_frozen], @@ -235,10 +224,10 @@ fn group_batch_commits_independent_arity_precommitteds() { OneHotCfg::runtime_schedule(multi_group_key).expect("multi-group runtime schedule"); let main_params = multi_group_root_params(&multi_group_schedule); let final_polys = [ - debug_make_onehot_poly(main_params, 0x0bee_fcaf_9a77_7001), - debug_make_onehot_poly(main_params, 0x0bee_fcaf_9a77_7002), - debug_make_onehot_poly(main_params, 0x0bee_fcaf_9a77_7003), - debug_make_onehot_poly(main_params, 0x0bee_fcaf_9a77_7004), + debug_make_onehot_poly(FINAL_NV, main_params.d_a(), 0x0bee_fcaf_9a77_7001), + debug_make_onehot_poly(FINAL_NV, main_params.d_a(), 0x0bee_fcaf_9a77_7002), + debug_make_onehot_poly(FINAL_NV, main_params.d_a(), 0x0bee_fcaf_9a77_7003), + debug_make_onehot_poly(FINAL_NV, main_params.d_a(), 0x0bee_fcaf_9a77_7004), ]; let (final_commitment, final_hint, _selection) = OneHotScheme::commit_final_group( &setup, @@ -286,20 +275,15 @@ fn commit_group_returns_frozen_exact_layout() { const GROUP_SIZE: usize = 1; let key = akita_types::PolynomialGroupLayout::new(NV, GROUP_SIZE); - let opening_batch = - akita_types::OpeningClaimsLayout::new(NV, GROUP_SIZE).expect("opening batch"); - // `commit_group` freezes the standalone precommit layout (root basis pinned), - // so size the setup and expected layout with the precommit config, not the - // main runtime config (which resolves a different, single-group root split). - let layout = PrecommittedOneHotCfg::get_params_for_batched_commitment(&opening_batch) - .expect("group commit layout"); - let total_field = (layout.num_live_blocks * layout.num_positions_per_block) + let profile = + akita_config::committed_group_profile::(&key).expect("group commit profile"); + let total_field = (profile.num_live_blocks * profile.num_positions_per_block) .checked_mul(ONEHOT_D) .expect("total field size overflow"); assert_eq!(total_field % BENCH_ONEHOT_K, 0); - let polys = [debug_make_onehot_poly(&layout, 0x0bee_fcaf_9a77_0001)]; + let polys = [debug_make_onehot_poly(NV, ONEHOT_D, 0x0bee_fcaf_9a77_0001)]; - let setup = PrecommitCommitter::setup_prover(NV, GROUP_SIZE).expect("setup"); + let setup = OneHotScheme::setup_prover(NV, GROUP_SIZE).expect("setup"); let prepared = CpuBackend::DEFAULT .prepare_setup(&setup) .expect("prepared setup"); @@ -316,17 +300,17 @@ fn commit_group_returns_frozen_exact_layout() { assert_eq!(frozen_layout.group, key); assert_eq!( frozen_layout.num_positions_per_block, - layout.num_positions_per_block + profile.num_positions_per_block ); - assert_eq!(frozen_layout.num_live_blocks, layout.num_live_blocks); - assert_eq!(frozen_layout.log_basis_outer, layout.log_basis_outer); + assert_eq!(frozen_layout.num_live_blocks, profile.num_live_blocks); + assert_eq!(frozen_layout.log_basis_outer, profile.log_basis_outer); assert_eq!( frozen_layout.inner_commit_matrix.output_rank(), - layout.inner_commit_matrix.output_rank() + profile.inner_commit_matrix.output_rank() ); assert_eq!( frozen_layout.outer_commit_matrix.output_rank(), - layout.outer_commit_matrix.output_rank() + profile.outer_commit_matrix.output_rank() ); assert_eq!( commitment.rows().count(), @@ -336,7 +320,7 @@ fn commit_group_returns_frozen_exact_layout() { /// Produce and verify a folded multi-group-root one-hot same-point proof for the /// given precommitted group sizes plus a final group size, exercising unequal -/// `K_g`. Precommitted groups use the exact fixed-root precommit config; the +/// `K_g`. Precommitted groups use exact generated standalone profiles; the /// final group is committed with `commit_final_group`; the multi-group root folds /// into a singleton recursive suffix. fn multi_group_root_round_trip_onehot( @@ -363,7 +347,7 @@ fn multi_group_root_round_trip_onehot( setup.expanded.as_ref(), ) .expect("stack"); - // Commit every precommitted group under the exact precommit config; keep the + // Commit every precommitted group from its exact generated profile; keep the // polynomials alive so the prover/verifier can borrow references. let mut pre_keys = Vec::new(); let mut pre_frozen = Vec::new(); @@ -373,12 +357,13 @@ fn multi_group_root_round_trip_onehot( let mut pre_polys_by_group: Vec>> = Vec::new(); for (group_idx, &num_polynomials) in pre_sizes.iter().enumerate() { let key = akita_types::PolynomialGroupLayout::new(pre_num_vars, num_polynomials); - let layout = - akita_config::committed_group_params::(&key).expect("precommit params"); + let profile = + akita_config::committed_group_profile::(&key).expect("precommit profile"); let polys: Vec> = (0..num_polynomials) .map(|poly_idx| { debug_make_onehot_poly( - &layout, + pre_num_vars, + profile.inner_commit_matrix.ring_dimension(), 0x0bee_fcaf_1a00_0000 + ((group_idx as u64) << 8) + poly_idx as u64, ) }) @@ -390,7 +375,7 @@ fn multi_group_root_round_trip_onehot( pre_keys.push(key); pre_commitments.push(commitment); pre_hints.push(hint); - pre_layouts.push(layout); + pre_layouts.push(profile); pre_polys_by_group.push(polys); } @@ -404,15 +389,16 @@ fn multi_group_root_round_trip_onehot( let multi_group_schedule = ProtocolCfg::runtime_schedule(multi_group_key).expect("multi-group runtime schedule"); let main_params = multi_group_root_params(&multi_group_schedule); - assert!( + assert_eq!( multi_group_schedule .root .params .precommitted_groups .iter() - .zip(&pre_commitments) - .all(|(group, commitment)| group.descriptor == commitment.profile), - "precommitted groups must retain their exact native profiles" + .map(|group| group.descriptor) + .collect::>(), + pre_layouts, + "precommitted groups must retain their native descriptors" ); if TestCfg::chunked_witness_cfg().uses_multi_chunk() { let root = &multi_group_schedule.root; @@ -437,7 +423,11 @@ fn multi_group_root_round_trip_onehot( } let final_polys: Vec> = (0..final_size) .map(|poly_idx| { - debug_make_onehot_poly(main_params, 0x0bee_fcaf_f100_0000 + poly_idx as u64) + debug_make_onehot_poly( + final_num_vars, + main_params.d_a(), + 0x0bee_fcaf_f100_0000 + poly_idx as u64, + ) }) .collect(); let (final_commitment, final_hint, _selection) = @@ -458,13 +448,29 @@ fn multi_group_root_round_trip_onehot( .map(|(polys, layout)| { polys .iter() - .map(|poly| opening_from_poly(poly, &pre_point, layout)) + .map(|poly| { + opening_from_poly( + poly, + &pre_point, + layout.inner_commit_matrix.ring_dimension(), + layout.num_positions_per_block, + layout.num_live_blocks, + ) + }) .collect() }) .collect(); let final_openings: Vec = final_polys .iter() - .map(|poly| opening_from_poly(poly, &final_point, main_params)) + .map(|poly| { + opening_from_poly( + poly, + &final_point, + main_params.d_a(), + main_params.num_positions_per_block, + main_params.num_live_blocks, + ) + }) .collect(); let pre_refs_by_group: Vec>> = pre_polys_by_group @@ -681,13 +687,23 @@ fn batched_onehot_roundtrip_matches_public_shape_context() { assert_eq!(total_chunks * BENCH_ONEHOT_K, total_field); let polys: Vec> = (0..BATCH_SIZE) - .map(|poly_idx| debug_make_onehot_poly(&layout, 0x0bee_fcaf_e000_1500 + poly_idx as u64)) + .map(|poly_idx| { + debug_make_onehot_poly(NV, layout.d_a(), 0x0bee_fcaf_e000_1500 + poly_idx as u64) + }) .collect(); let poly_refs: Vec<&OneHotPoly> = polys.iter().collect(); let point = debug_random_point(NV); let openings: Vec = polys .iter() - .map(|poly| opening_from_poly(poly, &point, &layout)) + .map(|poly| { + opening_from_poly( + poly, + &point, + layout.d_a(), + layout.num_positions_per_block, + layout.num_live_blocks, + ) + }) .collect(); let setup = OneHotScheme::setup_prover(NV, BATCH_SIZE).unwrap(); diff --git a/crates/akita-pcs/tests/batched_aggregated_e2e.rs b/crates/akita-pcs/tests/batched_aggregated_e2e.rs index 7d78f1699..749a31831 100644 --- a/crates/akita-pcs/tests/batched_aggregated_e2e.rs +++ b/crates/akita-pcs/tests/batched_aggregated_e2e.rs @@ -57,7 +57,7 @@ mod non_zk_aggregated_cases { OneHotCfg::get_params_for_batched_commitment(&opening_batch).expect("layout"); let polys: Vec> = (0..batch_size) - .map(|idx| make_onehot_poly(&layout, 0xa66e_0000 + (nv as u64) * 100 + idx as u64)) + .map(|idx| make_onehot_poly(nv, 0xa66e_0000 + (nv as u64) * 100 + idx as u64)) .collect(); let pt = random_point(nv, 0xf00d_0000 + nv as u64); diff --git a/crates/akita-pcs/tests/common/mod.rs b/crates/akita-pcs/tests/common/mod.rs index 67385a29a..68e5d0617 100644 --- a/crates/akita-pcs/tests/common/mod.rs +++ b/crates/akita-pcs/tests/common/mod.rs @@ -2,7 +2,7 @@ pub(super) use akita_config::proof_optimized::fp128; pub(super) use akita_config::CommitmentConfig; -use akita_config::{PrecommittedCommitmentConfig, RecursiveCommitmentConfig}; +use akita_config::RecursiveCommitmentConfig; use akita_field::Zero; pub(super) use akita_field::{ AkitaError, CanonicalBytes, CanonicalField, FieldCore, TranscriptChallenge, @@ -19,8 +19,8 @@ pub(super) use akita_types::{ BasisMode, CommittedGroup, OpeningClaims, PolynomialGroupClaims, }; use akita_types::{ - AkitaBatchedProof, AkitaScheduleLookupKey, CommittedGroupBatchProfile, CommittedGroupProfile, - GroupBatchStatement, OpeningClaimsLayout, PolynomialGroupLayout, SetupSumcheckProof, + AkitaBatchedProof, AkitaScheduleLookupKey, CommittedGroupBatchProfile, GroupBatchStatement, + LevelParamsLike, PolynomialGroupLayout, SetupSumcheckProof, }; pub(super) use akita_types::{CommittedGroupParams, FoldSchedule}; pub(super) use rand::rngs::StdRng; @@ -39,7 +39,7 @@ pub(super) const STACK_SIZE: usize = 256 * 1024 * 1024; // `runtime_schedule` fallback. pub(super) type OneHotCfg = fp128::OneHot; pub(super) const ONEHOT_D: usize = OneHotCfg::D; -// `fp128::OneHot` requires K=256 one-hot schedules +// `fp128::OneHot` requires K=256 one-hot schedules (chunks span `K/D = 4` // ring elements), so the committed poly has `2^nv / K` chunks, not one chunk // per ring element. pub(super) const ONEHOT_K: usize = 256; @@ -282,7 +282,7 @@ where pub(super) fn opening_from_poly<'a, const D: usize, P>( poly: &'a P, point: &[F], - layout: &CommittedGroupParams, + layout: &(impl LevelParamsLike + ?Sized), ) -> F where P: RootOpeningSource + RootPolyShape, @@ -294,7 +294,7 @@ where pub(super) fn opening_from_poly_for_layout<'a, P>( poly: &'a P, point: &[F], - layout: &CommittedGroupParams, + layout: &(impl LevelParamsLike + ?Sized), ) -> F where P: RootOpeningSource @@ -307,7 +307,7 @@ where + OpeningFoldKernel<

>::OpeningView<'a>, F, 128> + OpeningFoldKernel<

>::OpeningView<'a>, F, 256>, { - match layout.d_a() { + match layout.inner_commit_matrix_params().ring_dimension() { 64 => opening_from_poly::<64, _>(poly, point, layout), 128 => opening_from_poly::<128, _>(poly, point, layout), 256 => opening_from_poly::<256, _>(poly, point, layout), @@ -318,7 +318,7 @@ where pub(super) fn opening_from_poly_with_basis<'a, const D: usize, P>( poly: &'a P, point: &[F], - layout: &CommittedGroupParams, + layout: &(impl LevelParamsLike + ?Sized), basis_mode: BasisMode, ) -> F where @@ -340,8 +340,8 @@ where let reduced_point = &padded_point[alpha_bits..]; let ring_opening_point = ring_opening_point_from_field( reduced_point, - layout.num_positions_per_block, - layout.num_live_blocks, + layout.num_positions_per_block(), + layout.num_live_blocks(), basis_mode, ) .expect("opening point shape should match layout"); @@ -353,7 +353,7 @@ where OpeningFoldPlan::Base { live_block_weights: &ring_opening_point.live_block_weights, position_weights: &ring_opening_point.position_weights, - num_positions_per_block: layout.num_positions_per_block, + num_positions_per_block: layout.num_positions_per_block(), }, ) .expect("evaluate_and_fold"); @@ -363,17 +363,16 @@ where (folded_ring * packed_inner.sigma_m1()).coefficients()[0] } -pub(super) fn make_onehot_poly(layout: &CommittedGroupParams, seed: u64) -> OneHotPoly { +pub(super) fn make_onehot_poly(num_vars: usize, seed: u64) -> OneHotPoly { // `2^nv = (num_live_blocks · num_positions_per_block) · D` field elements, grouped into // `2^nv / K` one-hot chunks of size `K`. - let root_d = layout.d_a(); - let total_field = layout.num_live_blocks * layout.num_positions_per_block * root_d; + let total_field = 1usize << num_vars; let total_chunks = total_field / ONEHOT_K; let mut rng = StdRng::seed_from_u64(seed); let indices: Vec> = (0..total_chunks) .map(|_| Some(rng.gen_range(0..ONEHOT_K) as u8)) .collect(); - OneHotPoly::::new(ONEHOT_K, root_d, indices).expect("onehot poly") + OneHotPoly::::new(ONEHOT_K, ONEHOT_D, indices).expect("onehot poly") } pub(super) fn make_dense_poly(nv: usize, seed: u64) -> DensePoly { @@ -437,7 +436,7 @@ fn first_stage3_proof_mut( /// a serialization round-trip, an honest verify, and a tampered-opening rejection. /// /// `BaseCfg` selects the physical witness layout (single-chunk vs chunked); the -/// recursion adapter and exact-precommit adapter are derived from it. +/// recursion adapter and standalone profiles are derived from it. /// `on_schedule` runs profile-specific assertions against the resolved schedule. pub(super) fn recursive_multi_group_round_trip( transcript_domain: &'static [u8], @@ -446,7 +445,6 @@ pub(super) fn recursive_multi_group_round_trip( BaseCfg: CommitmentConfig, { type Recursive = AkitaCommitmentScheme>; - type Precommitted = AkitaCommitmentScheme>; const PRE_NV: usize = 16; const FINAL_NV: usize = 32; @@ -458,12 +456,8 @@ pub(super) fn recursive_multi_group_round_trip( init_rayon_pool(); run_on_large_stack(move || { let pre_key = PolynomialGroupLayout::new(PRE_NV, PRE_GROUP_SIZE); - let pre_layout = - PrecommittedCommitmentConfig::::get_params_for_batched_commitment( - &OpeningClaimsLayout::new(PRE_NV, PRE_GROUP_SIZE).expect("precommit batch"), - ) - .expect("precommit params"); - let pre_frozen = CommittedGroupProfile::from_params(pre_key, &pre_layout); + let pre_frozen = + akita_config::committed_group_profile::(&pre_key).expect("precommit profile"); let schedule_key = AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(FINAL_NV, FINAL_GROUP_SIZE), precommitteds: vec![pre_frozen, pre_frozen], @@ -498,8 +492,8 @@ pub(super) fn recursive_multi_group_round_trip( let mut pre_commitments = Vec::new(); let mut pre_hints = Vec::new(); for group_idx in 0..PRE_GROUPS { - let poly = make_onehot_poly(&pre_layout, 0x0bee_fcaf_2026_0000 + group_idx as u64); - let (commitment, hint) = Precommitted::::batched_commit( + let poly = make_onehot_poly(PRE_NV, 0x0bee_fcaf_2026_0000 + group_idx as u64); + let (commitment, hint) = AkitaCommitmentScheme::::commit_group( &setup, std::slice::from_ref(&poly), &stack, @@ -511,7 +505,7 @@ pub(super) fn recursive_multi_group_round_trip( } let final_polys: Vec> = (0..FINAL_GROUP_SIZE) - .map(|poly_idx| make_onehot_poly(root_params, 0x0bee_fcaf_2026_1000 + poly_idx as u64)) + .map(|poly_idx| make_onehot_poly(FINAL_NV, 0x0bee_fcaf_2026_1000 + poly_idx as u64)) .collect(); let (final_commitment, final_hint, _selection) = Recursive::::commit_final_group( &setup, @@ -527,7 +521,10 @@ pub(super) fn recursive_multi_group_round_trip( .map(|polys| { polys .iter() - .map(|poly| opening_from_poly_for_layout(poly, &point[..PRE_NV], &pre_layout)) + .map(|poly| { + let pre_params = &root_params.precommitted_groups[0]; + opening_from_poly_for_layout(poly, &point[..PRE_NV], pre_params) + }) .collect() }) .collect(); @@ -645,11 +642,8 @@ pub(super) fn recursive_multi_group_round_trip( BasisMode::Lagrange, ); assert!( - matches!( - result, - Err(AkitaError::InvalidProof | AkitaError::InvalidInput(_)) - ), - "{label} must return a proof/input rejection without panicking, got {result:?}" + matches!(result, Err(AkitaError::InvalidProof)), + "{label} must return InvalidProof without panicking, got {result:?}" ); }; diff --git a/crates/akita-pcs/tests/distributed_setup_offload_e2e.rs b/crates/akita-pcs/tests/distributed_setup_offload_e2e.rs index 37e3f0566..73ff52f77 100644 --- a/crates/akita-pcs/tests/distributed_setup_offload_e2e.rs +++ b/crates/akita-pcs/tests/distributed_setup_offload_e2e.rs @@ -2,7 +2,7 @@ //! setup-offload profile. //! //! This test uses `RecursiveCommitmentConfig` (the -//! production `W8R2` preset, `fp128_onehot_recursive_multi_chunk_w8r2` +//! production `W8R2` preset, `fp128_d64_onehot_recursive_multi_chunk_w8r2` //! family): two precommitted singleton groups at `nv=16` and a two-polynomial //! final group at `nv=32`. That schedule combines the `W8R2` chunked witness //! layout (8 chunks on the two leading fold levels) with recursive setup @@ -21,25 +21,21 @@ mod common; use akita_config::proof_optimized::fp128; -use akita_config::{CommitmentConfig, PrecommittedCommitmentConfig, RecursiveCommitmentConfig}; +use akita_config::{CommitmentConfig, RecursiveCommitmentConfig}; use akita_types::{ setup_matrix_capacity_for_schedule, verifier_setup_matrix_capacity_for_schedule, - AkitaScheduleLookupKey, CommitmentRingDims, CommittedGroupProfile, FoldSchedule, - OpeningClaimsLayout, PolynomialGroupLayout, SetupContributionMode, + AkitaScheduleLookupKey, CommitmentRingDims, FoldSchedule, PolynomialGroupLayout, + SetupContributionMode, }; use common::*; const TRANSCRIPT_DOMAIN: &[u8] = b"distributed_setup_offload_e2e/w8r2"; type W8R2Cfg = RecursiveCommitmentConfig; -type W8R2PrecommittedCfg = PrecommittedCommitmentConfig; - fn w8r2_profiling_key() -> AkitaScheduleLookupKey { let pre_group = PolynomialGroupLayout::new(16, 1); - let pre_layout = OpeningClaimsLayout::new(16, 1).expect("precommit layout"); - let pre_params = W8R2PrecommittedCfg::get_params_for_batched_commitment(&pre_layout) - .expect("precommit params"); - let precommitted = CommittedGroupProfile::from_params(pre_group, &pre_params); + let precommitted = + akita_config::committed_group_profile::(&pre_group).expect("precommit profile"); AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), precommitteds: vec![precommitted, precommitted], @@ -51,6 +47,7 @@ fn w8r2_verifier_setup_stops_after_the_offloaded_chain() { let key = w8r2_profiling_key(); let root_layout = key.opening_layout().expect("root layout"); let schedule = W8R2Cfg::runtime_schedule(key).expect("W8R2 schedule"); + assert_w8r2_profile_shape(&schedule); let prover = setup_matrix_capacity_for_schedule(&schedule).expect("prover capacity"); let verifier = verifier_setup_matrix_capacity_for_schedule(&schedule, &root_layout) .expect("verifier capacity"); @@ -74,15 +71,12 @@ fn w8r2_verifier_setup_stops_after_the_offloaded_chain() { verifier.num_field_elements, incoming_prefixes ); - assert_eq!( - &incoming_prefixes[..2], - &[Some(12_681_216), Some(7_840_768)] - ); + assert_eq!(&incoming_prefixes[..2], &[Some(11_316_224), None]); assert!(incoming_prefixes[2..].iter().all(Option::is_none)); - assert_eq!(prover.num_field_elements, 12_681_216); - assert_eq!(verifier.num_field_elements, 5_046_272); + assert_eq!(prover.num_field_elements, 11_316_224); + assert_eq!(verifier.num_field_elements, 8_388_608); assert_eq!(setup_for_two.num_field_elements, 8_388_608); - assert_eq!(setup_for_four.num_field_elements, 12_681_216); + assert_eq!(setup_for_four.num_field_elements, 11_316_224); } /// Assert the exact shipped `W8R2` profile shape, not just "some mixed fold". @@ -91,7 +85,7 @@ fn w8r2_verifier_setup_stops_after_the_offloaded_chain() { /// the test pins every distinguishing fact. This catches `W4R2` vs `W8R2`, a /// level-0/level-1 mode swap, only one mixed leading fold, and a missing/extra /// setup-prefix handoff — none of which a bare "any chunked recursive fold" check -/// would detect. The single-chunk profile also fails this on levels 0/1. +/// would detect. `OneHot` (single-chunk) also fails this on levels 0/1. fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { assert!( schedule.recursive_folds.len() >= 2, @@ -104,7 +98,8 @@ fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { inner: 256, outer: 128, opening: 64, - } + }, + "level 0 must retain the shipped adaptive A/B/D role dimensions" ); assert_eq!( schedule.recursive_folds[0].params.witness.role_dims(), @@ -112,15 +107,17 @@ fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { inner: 256, outer: 128, opening: 64, - } + }, + "level 1 must retain the shipped adaptive A/B/D role dimensions" ); assert_eq!( schedule.recursive_folds[1].params.witness.role_dims(), - CommitmentRingDims::uniform(64) + CommitmentRingDims::uniform(64), + "level 2 must retain the shipped uniform D64 suffix dimensions" ); - // Levels 0 and 1: both chunked W8R2 (8 chunks over 2 leading levels) AND both - // running the Stage-3 setup-product sum-check (`Recursive`). + // Levels 0 and 1 both use the W8R2 witness partition: 8 chunks over the two + // leading levels. for (level, params) in [ &schedule.root.params.final_group.commitment, &schedule.recursive_folds[0].params.witness, @@ -138,16 +135,15 @@ fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { ); } - for (producer_level, consumer) in schedule.recursive_folds[..2].iter().enumerate() { - assert_eq!( - consumer.params.predecessor_setup_contribution_mode(), - SetupContributionMode::Recursive, - "level {producer_level} must run the recursive setup-offload path" - ); - } + assert_eq!( + schedule.recursive_folds[0] + .params + .predecessor_setup_contribution_mode(), + SetupContributionMode::Recursive, + "level 0 must run the planner-selected recursive setup-offload path" + ); - // Level 0 produces the first setup prefix (no incoming prefix); level 1 - // consumes it and produces its own. + // Level 0 produces the selected setup prefix and level 1 consumes it. assert!( schedule.recursive_folds[0] .params @@ -156,7 +152,7 @@ fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { "level 1 must consume the level-0 setup prefix" ); - // Level 2 is the single-chunk `Direct` fold that consumes the level-1 prefix. + // Level 2 is the single-chunk direct fold after the selected offload edge. let level2 = &schedule.recursive_folds[1].params; assert_eq!( level2.witness.witness_chunk.num_chunks, 1, @@ -174,8 +170,8 @@ fn assert_w8r2_profile_shape(schedule: &FoldSchedule) { "level 2 must be Direct (no Stage-3 sum-check after the activated window)" ); assert!( - level2.incoming_setup_prefix.is_some(), - "level 2 must consume the level-1 setup prefix" + level2.incoming_setup_prefix.is_none(), + "level 2 must not carry an unselected setup prefix" ); } diff --git a/crates/akita-pcs/tests/fold_linf.rs b/crates/akita-pcs/tests/fold_linf.rs index 803f582b5..40271dade 100644 --- a/crates/akita-pcs/tests/fold_linf.rs +++ b/crates/akita-pcs/tests/fold_linf.rs @@ -40,7 +40,7 @@ fn prove_fold_linf_grind_onehot_fixture(num_vars: usize, seed: u64) -> FoldLinfG &akita_types::OpeningClaimsLayout::new(num_vars, 1).expect("singleton opening batch"), ) .expect("layout"); - let poly = make_onehot_poly(&layout, seed); + let poly = make_onehot_poly(num_vars, seed); let point = random_point(num_vars, seed.wrapping_add(1)); let opening = opening_from_poly::(&poly, &point, &layout); @@ -191,7 +191,7 @@ fn logging_transcript_event_stream_equality_with_fold_linf_grind() { &akita_types::OpeningClaimsLayout::new(num_vars, 1).expect("singleton opening batch"), ) .expect("layout"); - let poly = make_onehot_poly(&layout, 0x61_61); + let poly = make_onehot_poly(num_vars, 0x61_61); let point = random_point(num_vars, 0x71_71); let opening = opening_from_poly::(&poly, &point, &layout); diff --git a/crates/akita-pcs/tests/support/mod.rs b/crates/akita-pcs/tests/support/mod.rs index 778214f09..9fb4c4732 100644 --- a/crates/akita-pcs/tests/support/mod.rs +++ b/crates/akita-pcs/tests/support/mod.rs @@ -182,8 +182,12 @@ where Ok(SetupMatrixCapacity { num_field_elements }) } - fn basis_range() -> (u32, u32) { - Envelope::basis_range() + fn opening_basis_range() -> (u32, u32) { + Envelope::opening_basis_range() + } + + fn inner_basis_range() -> (u32, u32) { + Envelope::inner_basis_range() } fn root_honest_fold_policy() -> akita_types::sis::HonestFoldPolicySpec { diff --git a/crates/akita-pcs/tests/transcript_hardening.rs b/crates/akita-pcs/tests/transcript_hardening.rs index 237323b02..a3a24585a 100644 --- a/crates/akita-pcs/tests/transcript_hardening.rs +++ b/crates/akita-pcs/tests/transcript_hardening.rs @@ -55,7 +55,7 @@ fn event_stream_equality_small() { &akita_types::OpeningClaimsLayout::new(num_vars, 1).expect("singleton opening batch"), ) .expect("layout"); - let poly = make_onehot_poly(&layout, 0x5151); + let poly = make_onehot_poly(num_vars, 0x5151); let point = random_point(num_vars, 0x6161); let opening = opening_from_poly::(&poly, &point, &layout); @@ -296,7 +296,7 @@ fn assert_proof_tamper_rejected_at_num_vars(num_vars: usize, tamper: ProofTamper &akita_types::OpeningClaimsLayout::new(num_vars, 1).expect("singleton opening batch"), ) .expect("layout"); - let poly = make_onehot_poly(&layout, 0x5151); + let poly = make_onehot_poly(num_vars, 0x5151); let point = random_point(num_vars, 0x6161); let opening = opening_from_poly::(&poly, &point, &layout); @@ -379,7 +379,7 @@ fn terminal_direct_witness_shape_mismatch_rejects_deserialization() { &akita_types::OpeningClaimsLayout::new(num_vars, 1).expect("singleton opening batch"), ) .expect("layout"); - let poly = make_onehot_poly(&layout, 0x5151); + let poly = make_onehot_poly(num_vars, 0x5151); let point = random_point(num_vars, 0x6161); let setup = Scheme::setup_prover(num_vars, 1).unwrap(); diff --git a/crates/akita-planner/examples/compression_schedule_census.rs b/crates/akita-planner/examples/compression_schedule_census.rs index 45f9d1352..cfc1f16f3 100644 --- a/crates/akita-planner/examples/compression_schedule_census.rs +++ b/crates/akita-planner/examples/compression_schedule_census.rs @@ -246,7 +246,7 @@ fn main() -> Result<(), String> { } schedules += 1; } - for (key, honest_fold_policies) in (family.group_batch_keys)(family) + for (key, honest_fold_policies) in (family.group_batch_keys)() .map_err(|error| format!("{} group keys: {error}", family.module_name))? { let label = format!("{}:group:{key:?}", family.module_name); diff --git a/crates/akita-planner/examples/mixed_dimension_search.rs b/crates/akita-planner/examples/mixed_dimension_search.rs index 46c065c5b..a4c60b6b0 100644 --- a/crates/akita-planner/examples/mixed_dimension_search.rs +++ b/crates/akita-planner/examples/mixed_dimension_search.rs @@ -1,7 +1,7 @@ use akita_config::{ policy_of, proof_optimized::fp128::OneHot, CommitmentConfig, RecursiveCommitmentConfig, }; -use akita_planner::{derive_standalone_precommit_profile, find_schedule}; +use akita_planner::{find_schedule, plan_standalone_precommit}; use akita_types::{AkitaScheduleLookupKey, PolynomialGroupLayout}; fn print_schedule(label: &str, planned: &akita_types::PlannedFoldSchedule) { @@ -104,12 +104,14 @@ fn main() -> Result<(), akita_field::AkitaError> { println!("scalar recursive request rejected as expected: {scalar_recursive_error}"); let precommit_layout = PolynomialGroupLayout::singleton(16); - let descriptor = derive_standalone_precommit_profile( + let descriptor = plan_standalone_precommit( precommit_layout, &direct_policy, OneHot::root_honest_fold_policy(), OneHot::ring_challenge_config, - )?; + )? + .selected + .profile; let recursive_key = AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), precommitteds: vec![descriptor, descriptor], diff --git a/crates/akita-planner/src/bin/gen_schedule_tables.rs b/crates/akita-planner/src/bin/gen_schedule_tables.rs index 0647e196a..76e851647 100644 --- a/crates/akita-planner/src/bin/gen_schedule_tables.rs +++ b/crates/akita-planner/src/bin/gen_schedule_tables.rs @@ -3,14 +3,11 @@ use akita_planner::generated_families::{ emit_spec_for_family, wiring_emit_spec, GeneratedFamily, ALL_GENERATED_FAMILIES, }; -use akita_planner::{ - refresh_generated_wiring, run_regen_fmt, write_family_module, - write_precommitted_profiles_module, EmitSpec, -}; +use akita_planner::{publish_generated_outputs, render_generated_outputs, EmitSpec}; use akita_types::{AkitaScheduleLookupKey, CommittedGroupProfile, PolynomialGroupLayout}; use std::env; use std::fs; -use std::path::PathBuf; +use std::path::{Component, Path, PathBuf}; #[derive(Default)] struct ExplicitRows { @@ -206,6 +203,72 @@ fn parse_args() -> Result { }) } +fn resolved_output_path(path: &Path) -> Result { + let absolute = if path.is_absolute() { + path.to_path_buf() + } else { + env::current_dir() + .map_err(|error| format!("read current directory: {error}"))? + .join(path) + }; + let mut resolved = PathBuf::new(); + let mut missing = Vec::new(); + for component in absolute.components() { + match component { + Component::CurDir => {} + Component::ParentDir => { + let removed = if missing.is_empty() { + resolved.pop() + } else { + missing.pop(); + true + }; + if !removed { + return Err(format!( + "output path escapes the filesystem root: {}", + path.display() + )); + } + } + Component::Normal(name) if missing.is_empty() => { + let candidate = resolved.join(name); + if candidate.exists() { + resolved = fs::canonicalize(&candidate) + .map_err(|error| format!("resolve {}: {error}", candidate.display()))?; + } else { + missing.push(name.to_os_string()); + } + } + Component::Normal(name) => missing.push(name.to_os_string()), + Component::Prefix(_) | Component::RootDir => resolved.push(component.as_os_str()), + } + } + for component in missing { + resolved.push(component); + } + Ok(resolved) +} + +fn validate_explicit_output_isolation( + base_dir: &Path, + explicit_rows: &ExplicitRows, +) -> Result<(), String> { + if explicit_rows.final_group.is_none() { + return Ok(()); + } + let checked_in_generated_dir = resolved_output_path( + &Path::new(env!("CARGO_MANIFEST_DIR")).join("../akita-schedules/src/generated"), + )?; + let requested_dir = resolved_output_path(base_dir)?; + if requested_dir.starts_with(&checked_in_generated_dir) { + return Err(format!( + "explicit schedule sweeps must use an isolated output directory outside {}", + checked_in_generated_dir.display() + )); + } + Ok(()) +} + impl ExplicitRows { fn family_names(&self) -> Vec { let mut names = Vec::new(); @@ -336,12 +399,17 @@ fn emit_spec_with_overrides( explicit_rows: &ExplicitRows, generator_command: &'static str, ) -> Result { - let mut spec = emit_spec_for_family(family, base_dir, generator_command) - .map_err(|e| format!("{}: emit spec: {e}", family.module_name))?; if !explicit_rows.has_family(family) { - return Ok(spec); + return emit_spec_for_family(family, base_dir, generator_command) + .map_err(|e| format!("{}: emit spec: {e}", family.module_name)); } + // Explicit sweeps replace the catalog key set. Start from the cheap wiring + // shape so a one-key diagnostic does not first plan every default grouped + // root merely to discard those rows below. + let mut spec = wiring_emit_spec(family, base_dir); + spec.generator_command = generator_command; + let final_group = explicit_rows .final_group .as_ref() @@ -394,6 +462,7 @@ fn emit_spec_with_overrides( fn main() -> Result<(), String> { let args = parse_args()?; + validate_explicit_output_isolation(&args.base_dir, &args.explicit_rows)?; fs::create_dir_all(&args.base_dir) .map_err(|e| format!("create {}: {e}", args.base_dir.display()))?; let families_to_write = ALL_GENERATED_FAMILIES @@ -405,43 +474,123 @@ fn main() -> Result<(), String> { }) .collect::>(); - if !args.wiring_only { + let specs = if args.wiring_only { + Vec::new() + } else { let generator_command = generator_command(); - let specs = families_to_write - .iter() - .map(|family| { - emit_spec_with_overrides( - family, - args.base_dir.clone(), - &args.explicit_rows, - generator_command, - ) - }) - .collect::, _>>()?; - for spec in &specs { - let dest = write_family_module(spec) - .map_err(|e| format!("{}: write family module: {e}", spec.module_name))?; - println!("wrote {}", dest.display()); - let dest = write_precommitted_profiles_module(spec).map_err(|e| { - format!("{}: write precommit registry module: {e}", spec.module_name) - })?; - println!("wrote {}", dest.display()); + let mut specs = Vec::with_capacity(families_to_write.len()); + for (index, family) in families_to_write.iter().enumerate() { + eprintln!( + "planning schedule family {}/{}: {}", + index + 1, + families_to_write.len(), + family.module_name + ); + specs.push(emit_spec_with_overrides( + family, + args.base_dir.clone(), + &args.explicit_rows, + generator_command, + )?); } - } + specs + }; let mod_path = args.base_dir.join("mod.rs"); let wiring_specs = ALL_GENERATED_FAMILIES .iter() .map(|family| wiring_emit_spec(family, args.base_dir.clone())) .collect::>(); - if mod_path.exists() { - refresh_generated_wiring(&sorted_unique_specs(&wiring_specs), &mod_path)?; - println!("updated {}", mod_path.display()); + let mod_path = if mod_path.exists() { + Some(mod_path) } else if args.wiring_only { return Err(format!("missing {}", mod_path.display())); } else { println!("skipped missing {}", mod_path.display()); + None + }; + let outputs = render_generated_outputs( + &specs, + &sorted_unique_specs(&wiring_specs), + mod_path.as_deref(), + )?; + for destination in publish_generated_outputs(outputs)? { + println!("wrote {}", destination.display()); } - run_regen_fmt()?; Ok(()) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn explicit_scalar_sweep_replaces_default_catalog_work() { + let family = family_by_name("fp128_onehot").expect("known family"); + let explicit_rows = ExplicitRows { + final_group: Some(parse_explicit_group("fp128_onehot:14:1").expect("explicit group")), + precommitted_groups: Vec::new(), + }; + + let spec = emit_spec_with_overrides( + family, + PathBuf::from("generated"), + &explicit_rows, + "generator command", + ) + .expect("explicit emit spec"); + + assert_eq!(spec.keys, vec![PolynomialGroupLayout::singleton(14)]); + assert!(spec.group_batch_keys.is_empty()); + assert!(spec.precommitted_profiles.is_empty()); + assert_eq!(spec.generator_command, "generator command"); + } + + #[test] + fn explicit_sweeps_reject_the_checked_in_generated_tree() { + let explicit_rows = ExplicitRows { + final_group: Some(parse_explicit_group("fp128_onehot:14:1").expect("explicit group")), + precommitted_groups: Vec::new(), + }; + let checked_in_generated_dir = + Path::new(env!("CARGO_MANIFEST_DIR")).join("../akita-schedules/src/generated"); + + let error = validate_explicit_output_isolation( + &checked_in_generated_dir.join("diagnostic"), + &explicit_rows, + ) + .expect_err("checked-in generated tree must be protected"); + assert!(error.contains("isolated output directory")); + + let isolated = env::temp_dir().join(format!( + "akita-explicit-schedule-test-{}", + std::process::id() + )); + validate_explicit_output_isolation(&isolated, &explicit_rows) + .expect("isolated explicit output"); + validate_explicit_output_isolation(&checked_in_generated_dir, &ExplicitRows::default()) + .expect("ordinary full regeneration may target the checked-in catalog"); + } + + #[cfg(unix)] + #[test] + fn output_resolution_applies_parent_after_resolving_symlink() { + use std::os::unix::fs::symlink; + + let root = env::temp_dir().join(format!( + "akita-schedule-path-test-{}-{:?}", + std::process::id(), + std::thread::current().id() + )); + let target = root.join("real/deep"); + fs::create_dir_all(&target).expect("create symlink target"); + symlink(&target, root.join("link")).expect("create test symlink"); + + let resolved = resolved_output_path(&root.join("link/../isolated")) + .expect("resolve output through symlink"); + let canonical_root = fs::canonicalize(&root).expect("canonical test root"); + assert_eq!(resolved, canonical_root.join("real/isolated")); + + fs::remove_dir_all(&root).expect("remove test directory"); + } +} diff --git a/crates/akita-planner/src/emit/mod.rs b/crates/akita-planner/src/emit/mod.rs index fa1c5bbf4..353bf091b 100644 --- a/crates/akita-planner/src/emit/mod.rs +++ b/crates/akita-planner/src/emit/mod.rs @@ -7,7 +7,6 @@ use std::fmt::Write as _; use std::fs; use std::path::{Path, PathBuf}; -use std::process::Command; use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; @@ -18,6 +17,8 @@ use akita_types::{ }; use crate::PlannerPolicy; +mod publish; +mod render; use akita_schedules::expected_catalog_identity; use akita_schedules::generated::{ GeneratedBlockGeometry, GeneratedCommittedGroup, GeneratedFoldScheduleEntry, @@ -26,6 +27,8 @@ use akita_schedules::generated::{ GeneratedRootPrecommittedGroup, GeneratedScheduleCatalogIdentity, GeneratedSetupPrefixInput, GeneratedTerminalFold, GeneratedWitnessPartition, }; +pub use publish::publish_generated_outputs; +pub use render::{render_generated_outputs, GeneratedOutput}; /// One family the emitter writes to `akita-schedules/src/generated/`. #[derive(Clone)] @@ -37,7 +40,6 @@ pub struct EmitSpec { pub policy: PlannerPolicy, pub keys: Vec, pub group_batch_keys: Vec<(AkitaScheduleLookupKey, Vec)>, - pub emit_group_batch: bool, pub output_dir: PathBuf, pub regen: fn(PolynomialGroupLayout) -> Result, pub regen_group_batch: @@ -49,6 +51,74 @@ pub struct EmitSpec { const MOD_WIRING_BEGIN: &str = "// @generated schedule module wiring begin"; const MOD_WIRING_END: &str = "// @generated schedule module wiring end"; +// Schedule search is memory bound. Keep the default below host-wide +// parallelism while allowing explicit tuning for large generation machines. +const DEFAULT_SCHEDULE_GENERATION_WORKERS: usize = 2; + +pub(crate) fn schedule_generation_worker_count(work_items: usize) -> usize { + let configured = std::env::var("AKITA_SCHEDULE_GEN_JOBS") + .ok() + .and_then(|value| value.parse::().ok()) + .filter(|&value| value > 0) + .unwrap_or(DEFAULT_SCHEDULE_GENERATION_WORKERS); + std::thread::available_parallelism() + .map(|count| count.get()) + .unwrap_or(1) + .min(configured) + .min(work_items.max(1)) +} + +pub(crate) fn bounded_parallel_filter_map( + items: &[T], + workers: usize, + map: impl Fn(&T) -> Result, String> + Sync, +) -> Result, String> +where + T: Sync, + R: Send, +{ + // A private scoped pool gives this memory-heavy phase an explicit bound; + // the workspace Rayon pool follows host-wide parallelism instead. + if workers <= 1 || items.len() < 2 * workers { + return items + .iter() + .filter_map(|item| map(item).transpose()) + .collect(); + } + let next = std::sync::atomic::AtomicUsize::new(0); + let mut mapped = std::thread::scope(|scope| -> Result, String> { + let handles: Vec<_> = (0..workers) + .map(|_| { + let map = ↦ + let next = &next; + scope.spawn(move || { + let mut local = Vec::new(); + loop { + let index = next.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + let Some(item) = items.get(index) else { + break; + }; + if let Some(value) = map(item)? { + local.push((index, value)); + } + } + Ok::<_, String>(local) + }) + }) + .collect(); + let mut output = Vec::new(); + for handle in handles { + match handle.join() { + Ok(Ok(local)) => output.extend(local), + Ok(Err(error)) => return Err(error), + Err(_) => return Err("schedule generation worker panicked".into()), + } + } + Ok(output) + })?; + mapped.sort_by_key(|(index, _)| *index); + Ok(mapped.into_iter().map(|(_, value)| value).collect()) +} fn geometry(p: &CommittedGroupParams) -> GeneratedBlockGeometry { GeneratedBlockGeometry { @@ -553,6 +623,7 @@ fn emit_identity_const(identity: &GeneratedScheduleCatalogIdentity) -> String { " protocol_epoch: {protocol_epoch},\n", " cost_model: PlannerCostModelId::{cost_model},\n", " selection_policy: SelectionPolicyId::{selection_policy},\n", + " recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::{recursive_split_search_policy},\n", " setup_field_budget: {setup_field_budget},\n", " min_offloaded_witness_contraction: {min_offloaded_witness_contraction},\n", " sis_modulus_profile: {sis_modulus_profile},\n", @@ -564,7 +635,8 @@ fn emit_identity_const(identity: &GeneratedScheduleCatalogIdentity) -> String { " ring_subfield_norm_bound: {ring_subfield_norm_bound},\n", " claim_ext_degree: {claim_ext_degree},\n", " chal_ext_degree: {chal_ext_degree},\n", - " basis_range: ({basis_min}, {basis_max}),\n", + " inner_basis_range: ({inner_basis_min}, {inner_basis_max}),\n", + " opening_basis_range: ({basis_min}, {basis_max}),\n", " witness_chunk: {witness_chunk},\n", " recursive_setup_planning: {recursive_setup_planning},\n", " ring_dimension_schedule_mode: {ring_dimension_schedule_mode},\n", @@ -581,6 +653,7 @@ fn emit_identity_const(identity: &GeneratedScheduleCatalogIdentity) -> String { protocol_epoch = identity.protocol_epoch, cost_model = identity.cost_model.name(), selection_policy = identity.selection_policy.name(), + recursive_split_search_policy = identity.recursive_split_search_policy.name(), setup_field_budget = match identity.setup_field_budget { Some(value) => format!("Some({value})"), None => "None".to_string(), @@ -595,8 +668,10 @@ fn emit_identity_const(identity: &GeneratedScheduleCatalogIdentity) -> String { ring_subfield_norm_bound = identity.ring_subfield_norm_bound, claim_ext_degree = identity.claim_ext_degree, chal_ext_degree = identity.chal_ext_degree, - basis_min = identity.basis_range.0, - basis_max = identity.basis_range.1, + inner_basis_min = identity.inner_basis_range.0, + inner_basis_max = identity.inner_basis_range.1, + basis_min = identity.opening_basis_range.0, + basis_max = identity.opening_basis_range.1, witness_chunk = emit_witness_chunk(identity.witness_chunk), recursive_setup_planning = identity.recursive_setup_planning, ring_challenge_config_digest = identity.ring_challenge_config_digest, @@ -605,93 +680,53 @@ fn emit_identity_const(identity: &GeneratedScheduleCatalogIdentity) -> String { ) } -fn output_module_name(spec: &EmitSpec) -> String { - spec.module_name.to_string() -} - -fn output_const_name(spec: &EmitSpec) -> String { - spec.const_name.to_string() +enum PlanningRequest { + Scalar(PolynomialGroupLayout), + Grouped { + key: AkitaScheduleLookupKey, + honest_fold_policies: Vec, + }, } fn materialized_entries( spec: &EmitSpec, ) -> Result, String> { - let mut keys = Vec::with_capacity(spec.keys.len() + spec.group_batch_keys.len()); - keys.extend( - spec.keys + let mut requests = Vec::with_capacity(spec.keys.len() + spec.group_batch_keys.len()); + requests.extend(spec.keys.iter().copied().map(PlanningRequest::Scalar)); + requests.extend( + spec.group_batch_keys .iter() - .copied() - .map(AkitaScheduleLookupKey::single), + .cloned() + .map(|(key, honest_fold_policies)| PlanningRequest::Grouped { + key, + honest_fold_policies, + }), ); - keys.extend(spec.group_batch_keys.iter().map(|(key, _)| key.clone())); - - let workers = std::thread::available_parallelism() - .map(|count| count.get()) - .unwrap_or(1) - .min(keys.len().max(1)); - let mut entries = Vec::new(); - if workers > 1 && keys.len() >= 2 * workers { - let chunk_size = keys.len().div_ceil(workers); - std::thread::scope(|scope| -> Result<(), String> { - let handles: Vec<_> = keys - .chunks(chunk_size) - .map(|chunk| { - scope.spawn(move || { - let mut local = Vec::new(); - for key in chunk.iter().cloned() { - if let Some(entry) = materialized_entry(spec, key)? { - local.push(entry); - } - } - Ok::<_, String>(local) - }) - }) - .collect(); - let mut first_error = None; - for handle in handles { - match handle.join() { - Ok(Ok(local)) if first_error.is_none() => entries.extend(local), - Ok(Ok(_)) => {} - Ok(Err(error)) => { - first_error.get_or_insert(error); - } - Err(_) => { - first_error.get_or_insert_with(|| { - format!("{}: regen worker panicked", spec.module_name) - }); - } - } - } - if let Some(error) = first_error { - return Err(error); - } - Ok(()) - })?; - } else { - for key in keys { - if let Some(entry) = materialized_entry(spec, key)? { - entries.push(entry); - } - } - } - entries.sort_by(|(left, _), (right, _)| akita_schedules::runtime_schedule_key_cmp(left, right)); - Ok(entries) + let workers = schedule_generation_worker_count(requests.len()); + let mut regenerated_entries = bounded_parallel_filter_map(&requests, workers, |request| { + materialized_entry(spec, request) + })?; + regenerated_entries + .sort_by(|(left, _), (right, _)| akita_schedules::runtime_schedule_key_cmp(left, right)); + Ok(regenerated_entries) } fn materialized_entry( spec: &EmitSpec, - key: AkitaScheduleLookupKey, + request: &PlanningRequest, ) -> Result, String> { - let result = if key.precommitteds.is_empty() { - (spec.regen)(key.final_group) - } else { - let (key, norms) = spec - .group_batch_keys - .iter() - .find(|(candidate, _)| candidate == &key) - .cloned() - .ok_or_else(|| format!("{}: missing grouped planning request", spec.module_name))?; - (spec.regen_group_batch)(key, norms) + let (key, result) = match request { + PlanningRequest::Scalar(key) => { + let lookup = AkitaScheduleLookupKey::single(*key); + (lookup, (spec.regen)(*key)) + } + PlanningRequest::Grouped { + key, + honest_fold_policies, + } => ( + key.clone(), + (spec.regen_group_batch)(key.clone(), honest_fold_policies.clone()), + ), }; match result { Ok(schedule) => Ok(Some((key, schedule))), @@ -712,7 +747,7 @@ pub fn emit_family_module(spec: &EmitSpec) -> Result { let materialized = materialized_entries(spec)?; let mut out = String::new(); - let const_name = output_const_name(spec); + let const_name = spec.const_name; writeln!(out, "// Generated by `{}`", spec.generator_command).map_err(|e| e.to_string())?; writeln!(out, "#[allow(unused_imports)]").map_err(|e| e.to_string())?; writeln!( @@ -791,123 +826,3 @@ pub fn emit_precommitted_profiles_module(spec: &EmitSpec) -> Result Result { - let mut out = String::new(); - let mut seen = std::collections::BTreeSet::new(); - for spec in specs { - if !seen.insert(spec.module_name) { - continue; - } - let module_name = spec.module_name; - let precommitted_module_name = precommitted_profiles_module_name(spec); - let feat = spec.schedule_feature; - writeln!(out, "#[cfg(feature = \"{feat}\")]").map_err(|e| e.to_string())?; - writeln!(out, "pub mod {module_name};").map_err(|e| e.to_string())?; - writeln!(out, "#[cfg(feature = \"{feat}\")]").map_err(|e| e.to_string())?; - writeln!(out, "pub mod {precommitted_module_name};").map_err(|e| e.to_string())?; - } - writeln!(out).map_err(|e| e.to_string())?; - Ok(out) -} - -fn table_fn_name(module_name: &str) -> String { - format!("{module_name}_table") -} - -fn emit_table_accessor(spec: &EmitSpec) -> Result { - let fn_name = table_fn_name(spec.module_name); - let feat = spec.schedule_feature; - let module_name = spec.module_name; - let precommitted_module_name = precommitted_profiles_module_name(spec); - let const_name = spec.const_name; - let precommitted_profiles_const = precommitted_profiles_const_name(spec); - Ok(format!( - "#[cfg(feature = \"{feat}\")]\n\ - pub fn {fn_name}() -> GeneratedScheduleTable {{\n GeneratedScheduleTable {{\n entries: {module_name}::{const_name},\n precommitted_profiles: {precommitted_module_name}::{precommitted_profiles_const},\n identity: {module_name}::CATALOG_IDENTITY,\n }}\n}}\n" - )) -} - -fn emit_mod_wiring(specs: &[EmitSpec]) -> Result { - let mut out = emit_module_declarations(specs)?; - let mut seen = std::collections::BTreeSet::new(); - for spec in specs { - if !seen.insert(spec.module_name) { - continue; - } - out.push_str(&emit_table_accessor(spec)?); - out.push('\n'); - } - Ok(out) -} - -fn replace_between_markers( - content: &str, - begin: &str, - end: &str, - replacement: &str, -) -> Result { - let start = content - .find(begin) - .ok_or_else(|| format!("missing generated marker `{begin}`"))? - + begin.len(); - let end_pos = content - .find(end) - .ok_or_else(|| format!("missing generated marker `{end}`"))?; - if end_pos < start { - return Err(format!( - "generated markers `{begin}` and `{end}` are out of order" - )); - } - let mut out = String::new(); - out.push_str(&content[..start]); - out.push('\n'); - out.push_str(replacement.trim_end()); - out.push('\n'); - out.push_str(&content[end_pos..]); - Ok(out) -} - -/// Refresh the `@generated schedule module wiring` block in `mod.rs`. -pub fn refresh_generated_wiring(specs: &[EmitSpec], mod_path: &Path) -> Result<(), String> { - let mod_src = - fs::read_to_string(mod_path).map_err(|e| format!("read {}: {e}", mod_path.display()))?; - let mod_wiring = emit_mod_wiring(specs)?; - let mod_src = replace_between_markers(&mod_src, MOD_WIRING_BEGIN, MOD_WIRING_END, &mod_wiring)?; - fs::write(mod_path, mod_src).map_err(|e| format!("write {}: {e}", mod_path.display()))?; - Ok(()) -} - -/// Run `cargo fmt` on planner, schedules, and config after regen. -pub fn run_regen_fmt() -> Result<(), String> { - for package in ["akita-planner", "akita-schedules", "akita-config"] { - let status = Command::new("cargo") - .args(["fmt", "-p", package]) - .status() - .map_err(|e| format!("spawn cargo fmt: {e}"))?; - if !status.success() { - return Err(format!("cargo fmt -p {package} failed with {status}")); - } - } - Ok(()) -} - -/// Write one family module to `spec.output_dir` and return its path. -pub fn write_family_module(spec: &EmitSpec) -> Result { - let body = emit_family_module(spec)?; - let dest = spec - .output_dir - .join(format!("{}.rs", output_module_name(spec))); - fs::write(&dest, &body).map_err(|e| format!("write {}: {e}", dest.display()))?; - Ok(dest) -} - -/// Write one compact standalone precommit registry module to `spec.output_dir`. -pub fn write_precommitted_profiles_module(spec: &EmitSpec) -> Result { - let body = emit_precommitted_profiles_module(spec)?; - let dest = spec - .output_dir - .join(format!("{}.rs", precommitted_profiles_module_name(spec))); - fs::write(&dest, &body).map_err(|e| format!("write {}: {e}", dest.display()))?; - Ok(dest) -} diff --git a/crates/akita-planner/src/emit/publish.rs b/crates/akita-planner/src/emit/publish.rs new file mode 100644 index 000000000..db2a736a2 --- /dev/null +++ b/crates/akita-planner/src/emit/publish.rs @@ -0,0 +1,390 @@ +use std::fs; +use std::io::Write as _; +use std::path::{Path, PathBuf}; +use std::process::Command; +use std::sync::atomic::{AtomicU64, Ordering}; + +use super::GeneratedOutput; + +static PUBLISH_NONCE: AtomicU64 = AtomicU64::new(0); + +#[derive(Debug)] +struct StagedOutput { + destination: PathBuf, + staged: PathBuf, + backup: Option, + published: bool, +} + +fn transaction_sibling_path(destination: &Path, label: &str, nonce: u64, index: usize) -> PathBuf { + let file_name = destination + .file_name() + .and_then(|name| name.to_str()) + .unwrap_or("generated-output"); + destination.with_file_name(format!( + ".{file_name}.akita-{label}-{}-{nonce}-{index}", + std::process::id() + )) +} + +fn cleanup_staged_outputs(staged: &[StagedOutput]) { + for output in staged { + let _ = fs::remove_file(&output.staged); + } +} + +fn rollback_published_outputs(staged: &mut [StagedOutput]) -> Result<(), String> { + let mut failures = Vec::new(); + for output in staged.iter_mut().rev() { + if output.published { + if let Err(error) = fs::remove_file(&output.destination) { + let recovery = output + .backup + .as_ref() + .map(|path| format!("; original preserved at {}", path.display())) + .unwrap_or_default(); + failures.push(format!( + "remove {}: {error}{recovery}", + output.destination.display() + )); + continue; + } + output.published = false; + } + if let Some(backup) = output.backup.take() { + if let Err(error) = fs::rename(&backup, &output.destination) { + failures.push(format!( + "restore {} from {}: {error}; original preserved at {}", + output.destination.display(), + backup.display(), + backup.display(), + )); + output.backup = Some(backup); + } + } + } + cleanup_staged_outputs(staged); + if failures.is_empty() { + Ok(()) + } else { + Err(failures.join("; ")) + } +} + +/// Stage, format, and publish one complete generated-output batch. +/// +/// All stage files are written before any destination is replaced. A publish +/// failure restores every destination already replaced by this batch. +pub fn publish_generated_outputs(outputs: Vec) -> Result, String> { + let nonce = PUBLISH_NONCE.fetch_add(1, Ordering::Relaxed); + let mut destinations = std::collections::BTreeSet::new(); + let mut staged = Vec::with_capacity(outputs.len()); + for (index, output) in outputs.into_iter().enumerate() { + if !destinations.insert(output.destination.clone()) { + cleanup_staged_outputs(&staged); + return Err(format!( + "generated output batch contains duplicate destination {}", + output.destination.display() + )); + } + if output.destination.is_dir() { + cleanup_staged_outputs(&staged); + return Err(format!( + "generated output destination is a directory: {}", + output.destination.display() + )); + } + let parent = match output.destination.parent() { + Some(parent) => parent, + None => { + cleanup_staged_outputs(&staged); + return Err(format!( + "generated output has no parent directory: {}", + output.destination.display() + )); + } + }; + let staged_path = transaction_sibling_path(&output.destination, "stage", nonce, index); + let mut staged_file = match fs::OpenOptions::new() + .create_new(true) + .write(true) + .open(&staged_path) + { + Ok(file) => file, + Err(error) => { + cleanup_staged_outputs(&staged); + return Err(format!("stage in {}: {error}", parent.display())); + } + }; + if let Err(error) = staged_file + .write_all(output.body.as_bytes()) + .and_then(|()| staged_file.sync_all()) + { + let _ = fs::remove_file(&staged_path); + cleanup_staged_outputs(&staged); + return Err(format!("stage {}: {error}", output.destination.display())); + } + staged.push(StagedOutput { + destination: output.destination, + staged: staged_path, + backup: None, + published: false, + }); + } + if staged.is_empty() { + return Ok(Vec::new()); + } + + let mut rustfmt = Command::new("rustfmt"); + rustfmt.args(["--edition", "2021"]); + rustfmt.args(staged.iter().map(|output| &output.staged)); + let status = match rustfmt.status() { + Ok(status) => status, + Err(error) => { + cleanup_staged_outputs(&staged); + return Err(format!("format staged generated outputs: {error}")); + } + }; + if !status.success() { + cleanup_staged_outputs(&staged); + return Err(format!( + "format staged generated outputs failed with {status}" + )); + } + for output in &staged { + let sync_result = fs::OpenOptions::new() + .write(true) + .open(&output.staged) + .and_then(|file| file.sync_all()); + if let Err(error) = sync_result { + cleanup_staged_outputs(&staged); + return Err(format!( + "sync staged output {}: {error}", + output.destination.display() + )); + } + } + + let backup_paths = staged + .iter() + .enumerate() + .map(|(index, output)| { + output + .destination + .exists() + .then(|| transaction_sibling_path(&output.destination, "backup", nonce, index)) + }) + .collect::>(); + if let Some(stale) = backup_paths.iter().flatten().find(|path| path.exists()) { + cleanup_staged_outputs(&staged); + return Err(format!( + "stale generated-output backup: {}", + stale.display() + )); + } + + for index in 0..staged.len() { + if let Some(backup) = backup_paths[index].clone() { + if let Err(error) = fs::rename(&staged[index].destination, &backup) { + let destination = staged[index].destination.display().to_string(); + let rollback = rollback_published_outputs(&mut staged); + return Err(match rollback { + Ok(()) => format!("backup {destination}: {error}"), + Err(rollback) => { + format!("backup {destination}: {error}; rollback failed: {rollback}") + } + }); + } + staged[index].backup = Some(backup); + } + if let Err(error) = fs::rename(&staged[index].staged, &staged[index].destination) { + let destination = staged[index].destination.display().to_string(); + let rollback = rollback_published_outputs(&mut staged); + return Err(match rollback { + Ok(()) => format!("publish {destination}: {error}"), + Err(rollback) => { + format!("publish {destination}: {error}; rollback failed: {rollback}") + } + }); + } + staged[index].published = true; + } + + let destinations = staged + .iter() + .map(|output| output.destination.clone()) + .collect(); + for output in &mut staged { + if let Some(backup) = output.backup.take() { + let _ = fs::remove_file(backup); + } + } + Ok(destinations) +} + +#[cfg(test)] +mod tests { + use super::{publish_generated_outputs, rollback_published_outputs, StagedOutput}; + use crate::emit::GeneratedOutput; + use std::fs; + use std::path::PathBuf; + use std::sync::atomic::{AtomicU64, Ordering}; + + static TEST_NONCE: AtomicU64 = AtomicU64::new(0); + + fn test_dir(label: &str) -> PathBuf { + std::env::temp_dir().join(format!( + "akita-generated-publish-{label}-{}-{}", + std::process::id(), + TEST_NONCE.fetch_add(1, Ordering::Relaxed) + )) + } + + #[test] + fn staging_failure_leaves_every_existing_output_untouched() { + let dir = test_dir("stage-failure"); + fs::create_dir_all(&dir).expect("create test directory"); + let first = dir.join("first.rs"); + fs::write(&first, "pub const FIRST: usize = 1;\n").expect("write first fixture"); + let blocked_parent = dir.join("not-a-directory"); + fs::write(&blocked_parent, "blocking file\n").expect("write blocking fixture"); + + let error = publish_generated_outputs(vec![ + GeneratedOutput { + destination: first.clone(), + body: "pub const FIRST: usize = 2;\n".to_string(), + }, + GeneratedOutput { + destination: blocked_parent.join("second.rs"), + body: "pub const SECOND: usize = 2;\n".to_string(), + }, + ]) + .expect_err("second stage must fail"); + assert!(error.contains("stage in")); + assert_eq!( + fs::read_to_string(&first).expect("read first fixture"), + "pub const FIRST: usize = 1;\n" + ); + assert!( + fs::read_dir(&dir) + .expect("read test directory") + .all(|entry| !entry + .expect("directory entry") + .file_name() + .to_string_lossy() + .contains("akita-stage")), + "failed staging must clean earlier stage files" + ); + fs::remove_dir_all(dir).expect("remove test directory"); + } + + #[test] + fn rollback_restores_every_replaced_output() { + let dir = test_dir("rollback"); + fs::create_dir_all(&dir).expect("create test directory"); + let mut staged = Vec::new(); + for index in 0..3 { + let destination = dir.join(format!("output-{index}.rs")); + let backup = dir.join(format!("backup-{index}.rs")); + fs::write(&destination, format!("pub const NEW_{index}: usize = 2;\n")) + .expect("write replacement fixture"); + fs::write(&backup, format!("pub const OLD_{index}: usize = 1;\n")) + .expect("write backup fixture"); + staged.push(StagedOutput { + destination, + staged: dir.join(format!("absent-stage-{index}.rs")), + backup: Some(backup), + published: true, + }); + } + + rollback_published_outputs(&mut staged).expect("rollback published outputs"); + for (index, output) in staged.iter().enumerate() { + assert!( + fs::read_to_string(&output.destination) + .expect("read restored output") + .contains(&format!("OLD_{index}")), + "rollback must restore output {index}" + ); + } + fs::remove_dir_all(dir).expect("remove test directory"); + } + + #[test] + fn failed_rollback_preserves_the_original_backup() { + let dir = test_dir("rollback-preserves-backup"); + fs::create_dir_all(&dir).expect("create test directory"); + let destination = dir.join("published-directory"); + let backup = dir.join("original.rs"); + fs::create_dir(&destination).expect("create removal-resistant destination"); + fs::write(&backup, "pub const ORIGINAL: usize = 1;\n").expect("write backup"); + let mut staged = vec![StagedOutput { + destination, + staged: dir.join("absent-stage.rs"), + backup: Some(backup.clone()), + published: true, + }]; + + let error = rollback_published_outputs(&mut staged).expect_err("rollback must fail"); + assert!(error.contains(&backup.display().to_string())); + assert_eq!( + fs::read_to_string(&backup).expect("read preserved backup"), + "pub const ORIGINAL: usize = 1;\n" + ); + assert_eq!(staged[0].backup.as_ref(), Some(&backup)); + fs::remove_dir_all(dir).expect("remove test directory"); + } + + #[test] + fn complete_batch_publishes_family_registry_and_wiring_together() { + let dir = test_dir("success"); + fs::create_dir_all(&dir).expect("create test directory"); + let family = dir.join("family.rs"); + let registry = dir.join("family_precommitted.rs"); + let wiring = dir.join("mod.rs"); + for path in [&family, ®istry, &wiring] { + fs::write(path, "pub const OLD: usize = 1;\n").expect("write old fixture"); + } + + let published = publish_generated_outputs(vec![ + GeneratedOutput { + destination: family.clone(), + body: "pub const FAMILY: usize = 2;\n".to_string(), + }, + GeneratedOutput { + destination: registry.clone(), + body: "pub const REGISTRY: usize = 3;\n".to_string(), + }, + GeneratedOutput { + destination: wiring.clone(), + body: "pub const WIRING: usize = 4;\n".to_string(), + }, + ]) + .expect("publish complete batch"); + + assert_eq!( + published, + vec![family.clone(), registry.clone(), wiring.clone()] + ); + assert!(fs::read_to_string(family) + .expect("read family") + .contains("FAMILY")); + assert!(fs::read_to_string(registry) + .expect("read registry") + .contains("REGISTRY")); + assert!(fs::read_to_string(wiring) + .expect("read wiring") + .contains("WIRING")); + assert!( + fs::read_dir(&dir) + .expect("read test directory") + .all(|entry| !entry + .expect("directory entry") + .file_name() + .to_string_lossy() + .contains(".akita-")), + "successful publishing must clean transaction files" + ); + fs::remove_dir_all(dir).expect("remove test directory"); + } +} diff --git a/crates/akita-planner/src/emit/render.rs b/crates/akita-planner/src/emit/render.rs new file mode 100644 index 000000000..08f198f6d --- /dev/null +++ b/crates/akita-planner/src/emit/render.rs @@ -0,0 +1,153 @@ +//! Generated-file rendering and module wiring orchestration. + +use super::*; + +fn emit_mod_wiring(specs: &[EmitSpec]) -> Result { + let mut declarations = String::new(); + let mut accessors = String::new(); + let mut seen = std::collections::BTreeSet::new(); + for spec in specs { + if !seen.insert(spec.module_name) { + continue; + } + let module_name = spec.module_name; + let precommitted_module_name = precommitted_profiles_module_name(spec); + let feat = spec.schedule_feature; + writeln!(declarations, "#[cfg(feature = \"{feat}\")]").map_err(|e| e.to_string())?; + writeln!(declarations, "pub mod {module_name};").map_err(|e| e.to_string())?; + writeln!(declarations, "#[cfg(feature = \"{feat}\")]").map_err(|e| e.to_string())?; + writeln!(declarations, "pub mod {precommitted_module_name};").map_err(|e| e.to_string())?; + accessors.push_str(&emit_table_accessor(spec)?); + accessors.push('\n'); + } + declarations.push('\n'); + declarations.push_str(&accessors); + Ok(declarations) +} + +fn table_fn_name(module_name: &str) -> String { + format!("{module_name}_table") +} + +fn emit_table_accessor(spec: &EmitSpec) -> Result { + let fn_name = table_fn_name(spec.module_name); + let feat = spec.schedule_feature; + let module_name = spec.module_name; + let precommitted_module_name = precommitted_profiles_module_name(spec); + let const_name = spec.const_name; + let precommitted_profiles_const = precommitted_profiles_const_name(spec); + Ok(format!( + "#[cfg(feature = \"{feat}\")]\n\ + pub fn {fn_name}() -> GeneratedScheduleTable {{\n GeneratedScheduleTable {{\n entries: {module_name}::{const_name},\n precommitted_profiles: {precommitted_module_name}::{precommitted_profiles_const},\n identity: {module_name}::CATALOG_IDENTITY,\n }}\n}}\n" + )) +} + +fn replace_between_markers( + content: &str, + begin: &str, + end: &str, + replacement: &str, +) -> Result { + let start = content + .find(begin) + .ok_or_else(|| format!("missing generated marker `{begin}`"))? + + begin.len(); + let end_pos = content + .find(end) + .ok_or_else(|| format!("missing generated marker `{end}`"))?; + if end_pos < start { + return Err(format!( + "generated markers `{begin}` and `{end}` are out of order" + )); + } + let mut out = String::new(); + out.push_str(&content[..start]); + out.push('\n'); + out.push_str(replacement.trim_end()); + out.push('\n'); + out.push_str(&content[end_pos..]); + Ok(out) +} + +/// One fully rendered generated file awaiting publication. +#[derive(Debug)] +pub struct GeneratedOutput { + pub(super) destination: PathBuf, + pub(super) body: String, +} + +fn render_family_outputs(spec: &EmitSpec) -> Result<[GeneratedOutput; 2], String> { + Ok([ + GeneratedOutput { + destination: spec.output_dir.join(format!("{}.rs", spec.module_name)), + body: emit_family_module(spec)?, + }, + GeneratedOutput { + destination: spec + .output_dir + .join(format!("{}.rs", precommitted_profiles_module_name(spec))), + body: emit_precommitted_profiles_module(spec)?, + }, + ]) +} + +/// Render every family module, precommit registry, and optional wiring update. +/// +/// No destination is modified unless the complete batch renders successfully +/// and is later passed to [`publish_generated_outputs`]. +pub fn render_generated_outputs( + specs: &[EmitSpec], + wiring_specs: &[EmitSpec], + mod_path: Option<&Path>, +) -> Result, String> { + let workers = schedule_generation_worker_count(specs.len()); + let rendered = + bounded_parallel_filter_map(specs, workers, |spec| render_family_outputs(spec).map(Some))?; + let mut outputs = rendered.into_iter().flatten().collect::>(); + if let Some(mod_path) = mod_path { + let mod_src = fs::read_to_string(mod_path) + .map_err(|error| format!("read {}: {error}", mod_path.display()))?; + let mod_wiring = emit_mod_wiring(wiring_specs)?; + outputs.push(GeneratedOutput { + destination: mod_path.to_path_buf(), + body: replace_between_markers(&mod_src, MOD_WIRING_BEGIN, MOD_WIRING_END, &mod_wiring)?, + }); + } + Ok(outputs) +} + +#[cfg(test)] +mod tests { + use super::render_generated_outputs; + use std::fs; + use std::path::PathBuf; + use std::sync::atomic::{AtomicU64, Ordering}; + + static TEST_NONCE: AtomicU64 = AtomicU64::new(0); + + fn test_dir(label: &str) -> PathBuf { + std::env::temp_dir().join(format!( + "akita-generated-publish-{label}-{}-{}", + std::process::id(), + TEST_NONCE.fetch_add(1, Ordering::Relaxed) + )) + } + + #[test] + fn render_failure_does_not_touch_existing_wiring() { + let dir = test_dir("render-failure"); + fs::create_dir_all(&dir).expect("create test directory"); + let mod_path = dir.join("mod.rs"); + let original = "pub mod hand_written;\n"; + fs::write(&mod_path, original).expect("write wiring fixture"); + + let error = render_generated_outputs(&[], &[], Some(&mod_path)) + .expect_err("missing wiring markers must fail rendering"); + assert!(error.contains("missing generated marker")); + assert_eq!( + fs::read_to_string(&mod_path).expect("read wiring fixture"), + original + ); + fs::remove_dir_all(dir).expect("remove test directory"); + } +} diff --git a/crates/akita-planner/src/generated_families.rs b/crates/akita-planner/src/generated_families.rs index b68fdc037..d0f1a3589 100644 --- a/crates/akita-planner/src/generated_families.rs +++ b/crates/akita-planner/src/generated_families.rs @@ -11,15 +11,8 @@ //! that offline path is allowed to name `akita-config` presets. Normal //! runtime callers consume the generated tables from `akita-schedules`. -use std::{ - any::TypeId, - collections::HashMap, - sync::{LazyLock, Mutex, MutexGuard}, -}; - use crate::{ - derive_standalone_precommit_profile, find_schedule, runtime_schedule_key_cmp, EmitSpec, - PlannerPolicy, + find_schedule, plan_standalone_precommit, runtime_schedule_key_cmp, EmitSpec, PlannerPolicy, }; use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; @@ -31,19 +24,6 @@ use akita_types::{ use akita_config::proof_optimized::{fp128, fp32, fp64}; use akita_config::{honest_fold_policy_of, policy_of, CommitmentConfig, RecursiveCommitmentConfig}; -type RegenScheduleCacheMap = - HashMap<(TypeId, AkitaScheduleLookupKey, Vec), FoldSchedule>; -type RegenScheduleCache = LazyLock>; -type RegenScheduleCacheGuard = MutexGuard<'static, RegenScheduleCacheMap>; - -static REGEN_SCHEDULE_CACHE: RegenScheduleCache = LazyLock::new(|| Mutex::new(HashMap::new())); - -fn lock_regen_schedule_cache() -> Result { - REGEN_SCHEDULE_CACHE - .lock() - .map_err(|_| AkitaError::InvalidSetup("schedule regen cache poisoned".to_string())) -} - /// Standalone frozen precommit descriptor arities emitted into generated catalogs. /// /// This list is intentionally finite. Runtime precommit lookup is catalog-backed, @@ -54,12 +34,13 @@ pub const DEFAULT_STANDALONE_PRECOMMIT_NUM_VARS: &[usize] = &[14, 15, 16]; /// Polynomial counts emitted for standalone frozen precommit descriptors. pub const DEFAULT_STANDALONE_PRECOMMIT_NUM_POLYNOMIALS: &[usize] = &[1, 2]; -const FP128_D64_DENSE_KEYS: &[PolynomialGroupLayout] = &[ +const FP128_DENSE_KEYS: &[PolynomialGroupLayout] = &[ PolynomialGroupLayout::singleton(14), PolynomialGroupLayout::singleton(16), PolynomialGroupLayout::new(16, 2), PolynomialGroupLayout::new(17, 4), PolynomialGroupLayout::singleton(24), + PolynomialGroupLayout::singleton(26), PolynomialGroupLayout::singleton(28), PolynomialGroupLayout::singleton(30), PolynomialGroupLayout::singleton(32), @@ -67,10 +48,7 @@ const FP128_D64_DENSE_KEYS: &[PolynomialGroupLayout] = &[ PolynomialGroupLayout::singleton(50), ]; -const FP128_DENSE_KEYS: &[PolynomialGroupLayout] = FP128_D64_DENSE_KEYS; - const FP128_ONEHOT_KEYS: &[PolynomialGroupLayout] = &[ - PolynomialGroupLayout::singleton(10), PolynomialGroupLayout::singleton(12), PolynomialGroupLayout::singleton(14), PolynomialGroupLayout::singleton(15), @@ -81,13 +59,11 @@ const FP128_ONEHOT_KEYS: &[PolynomialGroupLayout] = &[ PolynomialGroupLayout::singleton(20), PolynomialGroupLayout::new(20, 2), PolynomialGroupLayout::new(20, 4), - PolynomialGroupLayout::singleton(25), PolynomialGroupLayout::singleton(28), PolynomialGroupLayout::singleton(30), PolynomialGroupLayout::new(30, 4), PolynomialGroupLayout::singleton(32), PolynomialGroupLayout::new(32, 4), - PolynomialGroupLayout::singleton(36), PolynomialGroupLayout::singleton(40), PolynomialGroupLayout::singleton(44), PolynomialGroupLayout::singleton(50), @@ -120,12 +96,15 @@ const FP32_D256_ONEHOT_KEYS: &[PolynomialGroupLayout] = &[PolynomialGroupLayout: const FP64_D128_DENSE_KEYS: &[PolynomialGroupLayout] = &[ PolynomialGroupLayout::singleton(14), PolynomialGroupLayout::singleton(20), + PolynomialGroupLayout::singleton(26), ]; const FP64_D128_ONEHOT_KEYS: &[PolynomialGroupLayout] = &[PolynomialGroupLayout::singleton(28)]; const FP64_D256_ONEHOT_KEYS: &[PolynomialGroupLayout] = &[PolynomialGroupLayout::singleton(28)]; +const FP32_D128_DENSE_KEYS: &[PolynomialGroupLayout] = &[PolynomialGroupLayout::singleton(26)]; + /// One generated schedule-table family. /// /// Function-pointer fields (instead of generic `Fn` closures) keep the @@ -147,14 +126,10 @@ pub struct GeneratedFamily { /// Pure multi-group DP regeneration that ignores any generated table. pub regen_group_batch: fn(AkitaScheduleLookupKey, Vec) -> Result, - /// Whether this family emits multi-group-root rows in its generated table. - pub emit_group_batch: bool, /// Grouped-root keys enumerated for this generated family. #[allow(clippy::type_complexity)] pub group_batch_keys: - fn( - &GeneratedFamily, - ) -> Result)>, AkitaError>, + fn() -> Result)>, AkitaError>, /// `Cfg::runtime_schedule(key)` — strict table-backed runtime resolution. /// Used by diagnostic comparisons against the generated table. pub table_backed: fn(PolynomialGroupLayout) -> Result, @@ -224,50 +199,12 @@ fn regen(key: PolynomialGroupLayout) -> Result(&AkitaScheduleLookupKey::single(key), &[]) } -/// Offline regeneration for the catalog-backed default fp128 onehot profile. -fn regen_fp128_onehot(key: PolynomialGroupLayout) -> Result { - type Cfg = fp128::OneHot; - let policy = policy_of::(); - Ok(find_schedule( - &AkitaScheduleLookupKey::single(key), - honest_fold_policy_of::(), - &[], - &policy, - Cfg::ring_challenge_config, - )? - .schedule) -} - -/// Offline regeneration for the catalog-backed default fp128 dense profile. -fn regen_fp128_dense(key: PolynomialGroupLayout) -> Result { - type Cfg = fp128::Dense; - Ok(find_schedule( - &AkitaScheduleLookupKey::single(key), - honest_fold_policy_of::(), - &[], - &policy_of::(), - Cfg::ring_challenge_config, - )? - .schedule) -} - /// Pure multi-group DP regeneration for `Cfg` — never consults the generated table. fn regen_group_batch( key: AkitaScheduleLookupKey, precommitted_honest_fold_policies: Vec, ) -> Result { - let cache_key = ( - TypeId::of::(), - key.clone(), - precommitted_honest_fold_policies.clone(), - ); - if let Some(schedule) = lock_regen_schedule_cache()?.get(&cache_key).cloned() { - return Ok(schedule); - } - - let schedule = plan_regen::(&key, &precommitted_honest_fold_policies)?; - lock_regen_schedule_cache()?.insert(cache_key, schedule.clone()); - Ok(schedule) + plan_regen::(&key, &precommitted_honest_fold_policies) } /// Table-backed resolution for `Cfg` — table hit when present, otherwise @@ -282,187 +219,139 @@ fn family_policy() -> PlannerPolicy { policy_of::() } -fn supported_group_batch_key( - candidate: (AkitaScheduleLookupKey, Vec), -) -> Option<(AkitaScheduleLookupKey, Vec)> { - regen_group_batch::(candidate.0.clone(), candidate.1.clone()) - .is_ok() - .then_some(candidate) -} - -fn supported_group_batch_keys( - candidates: Vec<(AkitaScheduleLookupKey, Vec)>, -) -> Result)>, AkitaError> { - let workers = std::thread::available_parallelism() - .map(|count| count.get()) - .unwrap_or(1) - .min(candidates.len().max(1)); - - if workers <= 1 || candidates.len() < 2 * workers { - return Ok(candidates - .into_iter() - .filter_map(supported_group_batch_key::) - .collect()); - } - - let chunk_size = candidates.len().div_ceil(workers); - std::thread::scope(|scope| { - let handles: Vec<_> = candidates - .chunks(chunk_size) - .map(|chunk| { - scope.spawn(move || { - chunk - .iter() - .cloned() - .filter_map(supported_group_batch_key::) - .collect::>() - }) - }) - .collect(); - let mut keys = Vec::new(); - let mut worker_panicked = false; - for handle in handles { - match handle.join() { - Ok(local) => keys.extend(local), - Err(_) => worker_panicked = true, - } - } - if worker_panicked { - return Err(AkitaError::InvalidSetup( - "group-batch key worker panicked".to_string(), - )); - } - Ok(keys) - }) -} - -fn standalone_precommit_profile( - group: PolynomialGroupLayout, -) -> Result { - derive_standalone_precommit_profile( - group, - &policy_of::(), - honest_fold_policy_of::(), - Cfg::ring_challenge_config, - ) -} - fn push_unique_profile(profiles: &mut Vec, profile: CommittedGroupProfile) { if !profiles.contains(&profile) { profiles.push(profile); } } -fn precommitted_profiles( +fn baseline_precommitted_profiles( ) -> Result, AkitaError> { let mut profiles = Vec::new(); for &num_vars in DEFAULT_STANDALONE_PRECOMMIT_NUM_VARS { for &num_polys in DEFAULT_STANDALONE_PRECOMMIT_NUM_POLYNOMIALS { let group = PolynomialGroupLayout::new(num_vars, num_polys); - if let Ok(profile) = standalone_precommit_profile::(group) { - push_unique_profile(&mut profiles, profile); + if let Ok(plan) = plan_standalone_precommit( + group, + &policy_of::(), + honest_fold_policy_of::(), + Cfg::ring_challenge_config, + ) { + push_unique_profile(&mut profiles, plan.selected.profile); } } } - if std::any::TypeId::of::() == std::any::TypeId::of::() - || std::any::TypeId::of::() == std::any::TypeId::of::() - { - push_unique_profile( - &mut profiles, - standalone_precommit_profile::(PolynomialGroupLayout::new(16, 1))?, - ); - } - if std::any::TypeId::of::() == std::any::TypeId::of::() { - push_unique_profile( - &mut profiles, - standalone_precommit_profile::(PolynomialGroupLayout::new(15, 2))?, - ); - } - if std::any::TypeId::of::() == std::any::TypeId::of::() { - push_unique_profile( - &mut profiles, - standalone_precommit_profile::(PolynomialGroupLayout::new(20, 1))?, - ); - } - if std::any::TypeId::of::() == std::any::TypeId::of::() { - push_unique_profile( - &mut profiles, - standalone_precommit_profile::(PolynomialGroupLayout::new(15, 2))?, - ); + profiles.sort_by_key(CommittedGroupProfile::canonical_descriptor_bytes); + Ok(profiles) +} + +fn require_precommitted_profile( + profiles: &mut Vec, + group: PolynomialGroupLayout, +) -> Result<(), AkitaError> { + let profile = plan_standalone_precommit( + group, + &policy_of::(), + honest_fold_policy_of::(), + Cfg::ring_challenge_config, + )? + .selected + .profile; + push_unique_profile(profiles, profile); + Ok(()) +} + +fn fp128_onehot_precommitted_profiles() -> Result, AkitaError> { + let mut profiles = baseline_precommitted_profiles::()?; + for group in [ + PolynomialGroupLayout::new(16, 1), + PolynomialGroupLayout::new(15, 2), + PolynomialGroupLayout::new(20, 1), + ] { + require_precommitted_profile::(&mut profiles, group)?; } + profiles.sort_by_key(CommittedGroupProfile::canonical_descriptor_bytes); + Ok(profiles) +} +fn fp128_onehot_multichunk_precommitted_profiles() -> Result, AkitaError> +{ + let mut profiles = baseline_precommitted_profiles::()?; + require_precommitted_profile::( + &mut profiles, + PolynomialGroupLayout::new(16, 1), + )?; profiles.sort_by_key(CommittedGroupProfile::canonical_descriptor_bytes); Ok(profiles) } -fn group_batch_keys( - family: &GeneratedFamily, -) -> Result)>, AkitaError> { - let mut direct = direct_profile_group_batch_keys_for_cfg::()?; - if !family.emit_group_batch { - direct.sort_by(|left, right| runtime_schedule_key_cmp(&left.0, &right.0)); - return Ok(direct); - } - if Cfg::decomposition().log_commit_bound != 1 { - direct.sort_by(|left, right| runtime_schedule_key_cmp(&left.0, &right.0)); - return Ok(direct); - } - let mut keys = supported_group_batch_keys::(direct)?; +fn fp128_dense_precommitted_profiles() -> Result, AkitaError> { + let mut profiles = baseline_precommitted_profiles::()?; + require_precommitted_profile::(&mut profiles, PolynomialGroupLayout::new(15, 2))?; + profiles.sort_by_key(CommittedGroupProfile::canonical_descriptor_bytes); + Ok(profiles) +} + +fn sorted_group_batch_keys( + mut keys: Vec<(AkitaScheduleLookupKey, Vec)>, +) -> Vec<(AkitaScheduleLookupKey, Vec)> { keys.sort_by(|left, right| runtime_schedule_key_cmp(&left.0, &right.0)); - Ok(keys) + keys } -fn direct_profile_group_batch_keys_for_cfg( +fn no_group_batch_keys( ) -> Result)>, AkitaError> { - if std::any::TypeId::of::() == std::any::TypeId::of::() { - let mut keys = recursive_onehot_profile_keys::()?; - keys.push(heterogeneous_onehot_catalog_key()?); - keys.extend(onehot_group_batch_test_keys::()?); - return Ok(keys); - } - if std::any::TypeId::of::() == std::any::TypeId::of::() { - return recursive_onehot_profile_keys::(); - } - if std::any::TypeId::of::() == std::any::TypeId::of::() { - let group = PolynomialGroupLayout::new(14, 1); - let precommitted = standalone_precommit_profile::(group)?; - return Ok(vec![( - AkitaScheduleLookupKey { - final_group: group, - precommitteds: vec![precommitted], - }, - vec![honest_fold_policy_of::()], - )]); - } Ok(Vec::new()) } -fn recursive_profile_group_batch_keys( - _family: &GeneratedFamily, +fn fp128_onehot_group_batch_keys( ) -> Result)>, AkitaError> { - recursive_profile_group_batch_keys_for_recursive_cfg::() + let mut keys = recursive_onehot_profile_keys::()?; + keys.push(heterogeneous_onehot_catalog_key()?); + keys.extend(onehot_group_batch_test_keys::()?); + Ok(sorted_group_batch_keys(keys)) } -fn recursive_profile_group_batch_keys_for_recursive_cfg( +fn fp128_onehot_multichunk_group_batch_keys( ) -> Result)>, AkitaError> { - if std::any::TypeId::of::() - == std::any::TypeId::of::>() - { - return recursive_onehot_profile_keys::(); - } - if std::any::TypeId::of::() - == std::any::TypeId::of::>() - { - return recursive_onehot_profile_keys::(); - } - Ok(Vec::new()) + Ok(sorted_group_batch_keys(recursive_onehot_profile_keys::< + fp128::OneHotMultiChunk, + >()?)) +} + +fn fp128_onehot_multichunk_w2r2_group_batch_keys( +) -> Result)>, AkitaError> { + type Cfg = fp128::OneHotMultiChunkW2R2; + let group = PolynomialGroupLayout::new(14, 1); + let precommitted = plan_standalone_precommit( + group, + &policy_of::(), + honest_fold_policy_of::(), + Cfg::ring_challenge_config, + )? + .selected + .profile; + Ok(vec![( + AkitaScheduleLookupKey { + final_group: group, + precommitteds: vec![precommitted], + }, + vec![honest_fold_policy_of::()], + )]) } fn recursive_onehot_profile_keys( ) -> Result)>, AkitaError> { let precommitted_group = PolynomialGroupLayout::new(16, 1); - let precommitted = standalone_precommit_profile::(precommitted_group)?; + let precommitted = plan_standalone_precommit( + precommitted_group, + &policy_of::(), + honest_fold_policy_of::(), + BaseCfg::ring_challenge_config, + )? + .selected + .profile; Ok(vec![( AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), @@ -481,8 +370,22 @@ fn heterogeneous_onehot_catalog_key( let dense_group = PolynomialGroupLayout::new(15, 2); let onehot_policy = honest_fold_policy_of::(); let dense_policy = honest_fold_policy_of::(); - let onehot = standalone_precommit_profile::(onehot_group)?; - let dense = standalone_precommit_profile::(dense_group)?; + let onehot = plan_standalone_precommit( + onehot_group, + &policy_of::(), + honest_fold_policy_of::(), + fp128::OneHot::ring_challenge_config, + )? + .selected + .profile; + let dense = plan_standalone_precommit( + dense_group, + &policy_of::(), + honest_fold_policy_of::(), + fp128::Dense::ring_challenge_config, + )? + .selected + .profile; Ok(( AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(16, 1), @@ -494,8 +397,22 @@ fn heterogeneous_onehot_catalog_key( fn onehot_group_batch_test_keys( ) -> Result)>, AkitaError> { - let singleton_pre = standalone_precommit_profile::(PolynomialGroupLayout::new(14, 1))?; - let pair_pre = standalone_precommit_profile::(PolynomialGroupLayout::new(14, 2))?; + let singleton_pre = plan_standalone_precommit( + PolynomialGroupLayout::new(14, 1), + &policy_of::(), + honest_fold_policy_of::(), + BaseCfg::ring_challenge_config, + )? + .selected + .profile; + let pair_pre = plan_standalone_precommit( + PolynomialGroupLayout::new(14, 2), + &policy_of::(), + honest_fold_policy_of::(), + BaseCfg::ring_challenge_config, + )? + .selected + .profile; let policy = honest_fold_policy_of::(); Ok(vec![ ( @@ -529,76 +446,8 @@ fn onehot_group_batch_test_keys( ]) } -/// Selected multi-group recursive keys for setup-prefix capacity work. -/// -/// Returns the bounded supported set: generated-catalog multi-group rows under -/// capacity, plus the explicit recursive profiling key(s). This is intentionally -/// not a dense `1..=max_nv` grid. Setup envelope inflation and exact prefix-slot -/// materialization both walk this set; other recursive shapes remain planner- -/// constructible but are admitted only when their slots already fit the -/// materialized artifact (`ensure_prover_schedule_fits_setup` / missing-slot reject). -/// -/// Does not run the planner; callers resolve each selected key. -pub fn recursive_group_batch_candidates_for_capacity( - max_num_vars: usize, - max_num_batched_polys: usize, -) -> Result, AkitaError> { - if !Cfg::recursive_setup_planning() - || Cfg::decomposition().log_commit_bound != 1 - || max_num_batched_polys == 0 - { - return Ok(Vec::new()); - } - - let mut keys = Vec::new(); - if let Some(catalog) = Cfg::schedule_catalog() { - for entry in catalog.entries { - if entry.root.precommitted_groups.is_empty() { - continue; - } - let candidate = AkitaScheduleLookupKey { - final_group: entry.root.final_group.layout, - precommitteds: entry - .root - .precommitted_groups - .iter() - .map(|group| group.descriptor) - .collect(), - }; - if candidate.fits_setup_capacity(max_num_vars, max_num_batched_polys)? { - push_unique_schedule_key(&mut keys, candidate); - } - } - } - - // Explicit profiling keys stay selected even when the recursive catalog - // feature is off or the table has not been regenerated yet. The plain - // recursive adapter and its multi-chunk (distributed-prover) companion share - // the same profiling key shape; they differ only in the chunked witness - // layout the policy prices. - for (candidate, _) in recursive_profile_group_batch_keys_for_recursive_cfg::()? { - if candidate.fits_setup_capacity(max_num_vars, max_num_batched_polys)? { - push_unique_schedule_key(&mut keys, candidate); - } - } - - keys.sort_by(runtime_schedule_key_cmp); - Ok(keys) -} - -fn push_unique_schedule_key( - keys: &mut Vec, - candidate: AkitaScheduleLookupKey, -) { - // Full-key equality: same group shapes with different frozen precommit - // metadata (semantic bases / n_a / n_b) stay distinct. - if !keys.contains(&candidate) { - keys.push(candidate); - } -} - macro_rules! family_row { - (group_batch, $module:literal, $const:literal, $feat:literal, $keys:expr, $cfg:ty) => { + ($module:literal, $const:literal, $feat:literal, $keys:expr, $cfg:ty, $group_keys:expr, $precommitted_profiles:expr) => { GeneratedFamily { module_name: $module, const_name: $const, @@ -606,18 +455,17 @@ macro_rules! family_row { scalar_keys: $keys, regen: regen::<$cfg>, regen_group_batch: regen_group_batch::<$cfg>, - emit_group_batch: true, - group_batch_keys: group_batch_keys::<$cfg>, + group_batch_keys: $group_keys, table_backed: table_backed::<$cfg>, policy: family_policy::<$cfg>, ring_challenge_config: <$cfg as CommitmentConfig>::ring_challenge_config, - precommitted_profiles: precommitted_profiles::<$cfg>, + precommitted_profiles: $precommitted_profiles, explicit_precommitted_group: explicit_precommitted_group::<$cfg>, } }; // Recursion adapter families: like `group_batch`, but grouped keys come from // the fixed recursive profiling shape rather than the generic per-`Cfg` grid. - (recursive, $module:literal, $const:literal, $feat:literal, $keys:expr, $cfg:ty, $base_cfg:ty) => { + (recursive, $module:literal, $const:literal, $feat:literal, $keys:expr, $cfg:ty, $base_cfg:ty, $group_keys:expr, $precommitted_profiles:expr) => { GeneratedFamily { module_name: $module, const_name: $const, @@ -625,8 +473,7 @@ macro_rules! family_row { scalar_keys: $keys, regen: regen::<$cfg>, regen_group_batch: regen_group_batch::<$cfg>, - emit_group_batch: true, - group_batch_keys: recursive_profile_group_batch_keys::<$cfg>, + group_batch_keys: $group_keys, table_backed: table_backed::<$cfg>, policy: family_policy::<$cfg>, ring_challenge_config: <$cfg as CommitmentConfig>::ring_challenge_config, @@ -634,27 +481,10 @@ macro_rules! family_row { // configuration. Adaptive base configs are catalog-only at // runtime, so asking the recursive adapter to rediscover them // during offline generation would leave this registry empty. - precommitted_profiles: precommitted_profiles::<$base_cfg>, + precommitted_profiles: $precommitted_profiles, explicit_precommitted_group: explicit_precommitted_group::<$base_cfg>, } }; - ($module:literal, $const:literal, $feat:literal, $keys:expr, $cfg:ty) => { - GeneratedFamily { - module_name: $module, - const_name: $const, - schedule_feature: $feat, - scalar_keys: $keys, - regen: regen::<$cfg>, - regen_group_batch: regen_group_batch::<$cfg>, - emit_group_batch: false, - group_batch_keys: group_batch_keys::<$cfg>, - table_backed: table_backed::<$cfg>, - policy: family_policy::<$cfg>, - ring_challenge_config: <$cfg as CommitmentConfig>::ring_challenge_config, - precommitted_profiles: precommitted_profiles::<$cfg>, - explicit_precommitted_group: explicit_precommitted_group::<$cfg>, - } - }; } /// Minimal [`EmitSpec`] for refreshing `generated/mod.rs` wiring only. @@ -667,7 +497,6 @@ pub fn wiring_emit_spec(family: &GeneratedFamily, output_dir: std::path::PathBuf policy: (family.policy)(), keys: Vec::new(), group_batch_keys: Vec::new(), - emit_group_batch: family.emit_group_batch, output_dir, regen: family.regen, regen_group_batch: family.regen_group_batch, @@ -684,7 +513,7 @@ pub fn emit_spec_for_family( generator_command: &'static str, ) -> Result { let policy = (family.policy)(); - let group_batch_keys = (family.group_batch_keys)(family)?; + let group_batch_keys = (family.group_batch_keys)()?; let mut precommitted_profiles = (family.precommitted_profiles)()?; precommitted_profiles.sort_by_key(CommittedGroupProfile::canonical_descriptor_bytes); Ok(EmitSpec { @@ -695,7 +524,6 @@ pub fn emit_spec_for_family( policy, keys: emitted_scalar_keys(family)?, group_batch_keys, - emit_group_batch: family.emit_group_batch, output_dir, regen: family.regen, regen_group_batch: family.regen_group_batch, @@ -709,7 +537,14 @@ fn explicit_precommitted_group( group: PolynomialGroupLayout, ) -> Result<(CommittedGroupProfile, HonestFoldPolicySpec), AkitaError> { Ok(( - standalone_precommit_profile::(group)?, + plan_standalone_precommit( + group, + &policy_of::(), + honest_fold_policy_of::(), + Cfg::ring_challenge_config, + )? + .selected + .profile, honest_fold_policy_of::(), )) } @@ -720,21 +555,15 @@ fn explicit_precommitted_group( /// here; both the table emitter and the drift-guard test pick it up /// automatically. pub const ALL_GENERATED_FAMILIES: &[GeneratedFamily] = &[ - GeneratedFamily { - module_name: "fp128_onehot", - const_name: "FP128_ONEHOT_SCHEDULES", - schedule_feature: "fp128-onehot", - scalar_keys: FP128_ONEHOT_KEYS, - regen: regen_fp128_onehot, - regen_group_batch: regen_group_batch::, - emit_group_batch: true, - group_batch_keys: group_batch_keys::, - table_backed: table_backed::, - policy: family_policy::, - ring_challenge_config: ::ring_challenge_config, - precommitted_profiles: precommitted_profiles::, - explicit_precommitted_group: explicit_precommitted_group::, - }, + family_row!( + "fp128_onehot", + "FP128_ONEHOT_SCHEDULES", + "fp128-onehot", + FP128_ONEHOT_KEYS, + fp128::OneHot, + fp128_onehot_group_batch_keys, + fp128_onehot_precommitted_profiles + ), family_row!( recursive, "fp128_onehot_recursive", @@ -742,7 +571,9 @@ pub const ALL_GENERATED_FAMILIES: &[GeneratedFamily] = &[ "fp128-onehot-recursive", &[], RecursiveCommitmentConfig, - fp128::OneHot + fp128::OneHot, + recursive_onehot_profile_keys::, + fp128_onehot_precommitted_profiles ), family_row!( recursive, @@ -751,87 +582,107 @@ pub const ALL_GENERATED_FAMILIES: &[GeneratedFamily] = &[ "fp128-onehot-recursive-multi-chunk-w8r2", &[], RecursiveCommitmentConfig, - fp128::OneHotMultiChunk + fp128::OneHotMultiChunk, + recursive_onehot_profile_keys::, + fp128_onehot_multichunk_precommitted_profiles + ), + family_row!( + "fp128_dense", + "FP128_DENSE_SCHEDULES", + "fp128-dense", + FP128_DENSE_KEYS, + fp128::Dense, + no_group_batch_keys, + fp128_dense_precommitted_profiles ), - GeneratedFamily { - module_name: "fp128_dense", - const_name: "FP128_DENSE_SCHEDULES", - schedule_feature: "fp128-dense", - scalar_keys: FP128_DENSE_KEYS, - regen: regen_fp128_dense, - regen_group_batch: regen_group_batch::, - emit_group_batch: false, - group_batch_keys: group_batch_keys::, - table_backed: table_backed::, - policy: family_policy::, - ring_challenge_config: ::ring_challenge_config, - precommitted_profiles: precommitted_profiles::, - explicit_precommitted_group: explicit_precommitted_group::, - }, family_row!( - group_batch, "fp128_onehot_multi_chunk", "FP128_ONEHOT_MULTI_CHUNK_SCHEDULES", "fp128-onehot-multi-chunk", FP128_ONEHOT_MULTI_CHUNK_KEYS, - fp128::OneHotMultiChunk + fp128::OneHotMultiChunk, + fp128_onehot_multichunk_group_batch_keys, + fp128_onehot_multichunk_precommitted_profiles ), family_row!( - group_batch, "fp128_onehot_multi_chunk_w2r2", "FP128_ONEHOT_MULTI_CHUNK_W2R2_SCHEDULES", "fp128-onehot-multi-chunk-w2r2", FP128_ONEHOT_MULTI_CHUNK_W2R2_KEYS, - fp128::OneHotMultiChunkW2R2 + fp128::OneHotMultiChunkW2R2, + fp128_onehot_multichunk_w2r2_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( - group_batch, "fp128_onehot_multi_chunk_w4r2", "FP128_ONEHOT_MULTI_CHUNK_W4R2_SCHEDULES", "fp128-onehot-multi-chunk-w4r2", FP128_ONEHOT_MULTI_CHUNK_W4R2_KEYS, - fp128::OneHotMultiChunkW4R2 + fp128::OneHotMultiChunkW4R2, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp128_dense_multi_chunk", "FP128_DENSE_MULTI_CHUNK_SCHEDULES", "fp128-dense-multi-chunk", FP128_DENSE_MULTI_CHUNK_KEYS, - fp128::DenseMultiChunk + fp128::DenseMultiChunk, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp64_d128_dense", "FP64_D128_DENSE_SCHEDULES", "fp64-d128-dense", FP64_D128_DENSE_KEYS, - fp64::D128Dense + fp64::D128Dense, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp64_d128_onehot", "FP64_D128_ONEHOT_SCHEDULES", "fp64-d128-onehot", FP64_D128_ONEHOT_KEYS, - fp64::D128OneHot + fp64::D128OneHot, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp64_d256_onehot", "FP64_D256_ONEHOT_SCHEDULES", "fp64-d256-onehot", FP64_D256_ONEHOT_KEYS, - fp64::D256OneHot + fp64::D256OneHot, + no_group_batch_keys, + baseline_precommitted_profiles:: + ), + family_row!( + "fp32_d128_dense", + "FP32_D128_DENSE_SCHEDULES", + "fp32-d128-dense", + FP32_D128_DENSE_KEYS, + fp32::D128Dense, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp32_d128_onehot", "FP32_D128_ONEHOT_SCHEDULES", "fp32-d128-onehot", FP32_D128_ONEHOT_KEYS, - fp32::D128OneHot + fp32::D128OneHot, + no_group_batch_keys, + baseline_precommitted_profiles:: ), family_row!( "fp32_d256_onehot", "FP32_D256_ONEHOT_SCHEDULES", "fp32-d256-onehot", FP32_D256_ONEHOT_KEYS, - fp32::D256OneHot + fp32::D256OneHot, + no_group_batch_keys, + baseline_precommitted_profiles:: ), ]; diff --git a/crates/akita-planner/src/lib.rs b/crates/akita-planner/src/lib.rs index c9a7453ee..23bf0abf7 100644 --- a/crates/akita-planner/src/lib.rs +++ b/crates/akita-planner/src/lib.rs @@ -17,14 +17,15 @@ pub use akita_schedules::{ ChunkedWitnessCfg, DecompositionParams, PlannerCostModelId, PlannerPolicy, - RingDimensionScheduleMode, SelectionPolicyId, SisModulusProfileId, SisSecurityPolicyId, - DEFAULT_SIS_SECURITY_POLICY, + RecursiveSplitSearchPolicy, RingDimensionScheduleMode, SelectionPolicyId, SisModulusProfileId, + SisSecurityPolicyId, DEFAULT_SIS_SECURITY_POLICY, }; pub mod emit; #[cfg(feature = "catalog-gen")] pub mod generated_families; mod planner; +mod policy; pub mod schedule_params; pub use akita_schedules::{ @@ -34,9 +35,10 @@ pub use akita_schedules::{ validate_catalog_identity, validate_generated_schedule_entry, validate_generated_schedule_table, GeneratedScheduleCatalogIdentity, GeneratedScheduleTable, }; -pub use emit::{ - refresh_generated_wiring, run_regen_fmt, write_family_module, - write_precommitted_profiles_module, EmitSpec, -}; +pub use emit::{publish_generated_outputs, render_generated_outputs, EmitSpec, GeneratedOutput}; pub use planner::find_schedule; -pub use schedule_params::{derive_standalone_precommit_profile, suffix_opening_layout}; +pub use policy::InnerBasisSource; +pub use schedule_params::{ + plan_standalone_precommit, suffix_opening_layout, StandalonePrecommitCandidate, + StandalonePrecommitPlan, +}; diff --git a/crates/akita-planner/src/planner.rs b/crates/akita-planner/src/planner.rs index 3bb4c0b23..caf3503c2 100644 --- a/crates/akita-planner/src/planner.rs +++ b/crates/akita-planner/src/planner.rs @@ -4,178 +4,65 @@ use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; use akita_types::sis::{ compute_num_digits_field_width, decomposed_s_block_ring_count, decomposed_t_ring_count, - decomposed_w_ring_count, num_digits_inner, num_digits_open, rounded_up_collision_inf_norm, - rounded_up_role_a_inf_norm, HonestFoldPolicy, HonestFoldPolicySpec, HonestFoldSizingQuery, - InnerCommitMatrixParams, OpenCommitMatrixParams, OuterCommitMatrixParams, + decomposed_w_ring_count, num_digits_open, rounded_up_role_a_inf_norm, HonestFoldPolicy, + HonestFoldPolicySpec, HonestFoldSizingQuery, InnerCommitMatrixParams, OpenCommitMatrixParams, + OuterCommitMatrixParams, }; use akita_types::{ AkitaScheduleLookupKey, CommitmentRingDims, CommittedGroupParams, CommittedGroupProfile, DecompositionParams, OpeningClaimsLayout, PlannedFoldSchedule, PolynomialGroupLayout, - PrecommittedLevelParams, WitnessLayout, + PrecommittedGroupAdmissionPolicy, PrecommittedLevelParams, WitnessLayout, }; use akita_schedules::planner_support::{sis_key_at_dimension, RingDimensionCandidate}; use crate::schedule_params::{ - derive_optimal_suffix_schedule, materialize_candidate_schedule, select_complete_candidate, - RingChallengeConfigFn, ScheduleMemo, SuffixCtx, SuffixState, + derive_selected_suffix_schedule, materialize_candidate_schedule, recursive_split_search_domain, + select_complete_candidate, RingChallengeConfigFn, ScheduleMemo, SuffixCtx, SuffixState, }; use crate::PlannerPolicy; -#[derive(Clone, Debug)] -struct PrecommittedGroupSeed { - layout: CommittedGroupProfile, - honest_fold_policy: HonestFoldPolicySpec, - inner_commit_matrix: InnerCommitMatrixParams, - outer_commit_matrix: OuterCommitMatrixParams, -} - -/// Validate frozen standalone precommit metadata and reconstruct the immutable -/// group-local A/B key facts. This deliberately does not choose or certify a -/// multi-group root opening basis: `log_basis_open` is selected later by the -/// root candidate search. -fn freeze_precommitted_group_layout( - layout: &CommittedGroupProfile, - honest_fold_policy: HonestFoldPolicySpec, - policy: &PlannerPolicy, -) -> Result { - layout.validate_frozen_precommit(policy.decomposition.field_bits())?; - - let d_a = layout.inner_commit_matrix.ring_dimension(); - let d_b = layout.outer_commit_matrix.ring_dimension(); - let outer_decomp = DecompositionParams { - log_basis: layout.log_basis_outer, - ..policy.decomposition - }; - let num_digits_outer = num_digits_open(outer_decomp); - let num_live_blocks = layout.num_live_blocks; - let num_positions_per_block = layout.num_positions_per_block; - let width_s = - decomposed_s_block_ring_count(num_positions_per_block, layout.num_digits_inner) - .ok_or_else(|| AkitaError::InvalidSetup("multi-group A width overflow".to_string()))?; - if num_digits_outer != layout.num_digits_outer - || width_s != layout.inner_commit_matrix.input_width() - { - return Err(AkitaError::InvalidSetup( - "precommitted profile digit depths do not match its frozen matrices".to_string(), - )); - } - let inner_commit_matrix = layout.inner_commit_matrix; - - let norm_t = rounded_up_collision_inf_norm( - policy.sis_security_policy, - policy.sis_modulus_profile, - akita_types::SisMatrixRole::Outer, - d_b, - layout.log_basis_outer, - ) - .ok_or_else(|| AkitaError::InvalidSetup("no multi-group B-role norm".to_string()))?; - let width_t = decomposed_t_ring_count( - layout.inner_commit_matrix.output_rank(), - num_digits_outer, - num_live_blocks, - layout.group.num_polynomials(), - ) - .and_then(|width| width.checked_mul(d_a / d_b)) - .ok_or_else(|| AkitaError::InvalidSetup("setup B width overflow".to_string()))?; - if layout.outer_commit_matrix.coeff_linf_bound() < norm_t { - return Err(AkitaError::InvalidSetup( - "precommitted group B bound is below the selected opening requirement".to_string(), - )); - } - if width_t != layout.outer_commit_matrix.input_width() { - return Err(AkitaError::InvalidSetup( - "precommitted profile B width does not match its exact matrix".to_string(), - )); - } - let outer_commit_matrix = layout.outer_commit_matrix; - - Ok(PrecommittedGroupSeed { - layout: *layout, - honest_fold_policy, - inner_commit_matrix, - outer_commit_matrix, - }) -} +type PrecommittedGroupSeed = (CommittedGroupProfile, HonestFoldPolicySpec); -/// Materialize a frozen precommitted group for a candidate multi-group root -/// `log_basis_open`. This is the phase that assigns the opening basis, recomputes -/// open/fold digit depths from that basis, and checks the frozen A/B bounds still -/// cover the chosen response-basis envelopes. fn materialize_precommitted_group_for_open_basis( - group: &PrecommittedGroupSeed, + (layout, honest_fold_policy): &PrecommittedGroupSeed, policy: &PlannerPolicy, - ring_challenge_cfg: &SparseChallengeConfig, + ring_challenge_cfg: SparseChallengeConfig, log_basis_open: u32, ) -> Result { - if log_basis_open < group.layout.log_basis_inner - || log_basis_open < group.layout.log_basis_outer - { - return Err(AkitaError::InvalidSetup( - "certified opening basis must dominate precommitted inner/outer bases".to_string(), - )); - } - let open_decomp = DecompositionParams { - log_basis: log_basis_open, - ..policy.decomposition - }; - let num_digits_open = num_digits_open(open_decomp); - let ring_dimension = group.layout.inner_commit_matrix.ring_dimension(); - let num_chunks = policy.chunks_at_level(0); - let num_fold_coeffs = group + let ring_dimension = layout.inner_commit_matrix.ring_dimension(); + let num_chunks = crate::policy::chunks_at_level(policy, 0); + let num_fold_coeffs = layout .inner_commit_matrix .input_width() .checked_mul(ring_dimension) .and_then(|count| count.checked_mul(num_chunks)) .ok_or_else(|| AkitaError::InvalidSetup("precommitted fold width overflow".into()))?; - let group_claims = group.layout.group.num_polynomials(); - let num_digits_fold = group - .honest_fold_policy - .num_digits_fold(HonestFoldSizingQuery { - ring_dimension, - num_claims: group_claims, - num_live_blocks: group.layout.num_live_blocks, - num_chunks, - num_fold_coeffs, - log_basis: log_basis_open, - challenge_config: ring_challenge_cfg, - })?; - let required_a_bound = rounded_up_role_a_inf_norm( - policy.sis_security_policy, - policy.sis_table_digest, - policy.sis_modulus_profile, - group.layout.inner_commit_matrix.ring_dimension(), - log_basis_open, - ring_challenge_cfg, + let group_claims = layout.group.num_polynomials(); + let num_digits_fold = honest_fold_policy.num_digits_fold(HonestFoldSizingQuery { + ring_dimension, + num_claims: group_claims, + num_live_blocks: layout.num_live_blocks, + num_chunks, + num_fold_coeffs, + witness_norms: honest_fold_policy + .witness_norms_for_inner_basis(layout.log_basis_inner, ring_dimension), + log_basis_response: log_basis_open, + challenge_config: &ring_challenge_cfg, + })?; + PrecommittedLevelParams::admit( + *layout, num_digits_fold, - policy.ring_subfield_norm_bound, - ) - .ok_or_else(|| AkitaError::InvalidSetup("no precommitted A-role norm".to_string()))?; - if required_a_bound > group.inner_commit_matrix.coeff_linf_bound() { - return Err(AkitaError::InvalidSetup( - "precommitted A bound does not cover the certified opening basis".to_string(), - )); - } - let required_b_bound = rounded_up_collision_inf_norm( - policy.sis_security_policy, - policy.sis_modulus_profile, - akita_types::SisMatrixRole::Outer, - group.layout.outer_commit_matrix.ring_dimension(), + PrecommittedGroupAdmissionPolicy { + decomposition: policy.decomposition, + sis_security_policy: policy.sis_security_policy, + sis_table_digest: policy.sis_table_digest, + sis_modulus_profile: policy.sis_modulus_profile, + ring_subfield_norm_bound: policy.ring_subfield_norm_bound, + }, + ring_challenge_cfg, log_basis_open, ) - .ok_or_else(|| AkitaError::InvalidSetup("no precommitted B-role norm".to_string()))?; - if required_b_bound > group.outer_commit_matrix.coeff_linf_bound() { - return Err(AkitaError::InvalidSetup( - "precommitted B bound does not cover the certified opening basis".to_string(), - )); - } - Ok(PrecommittedLevelParams { - layout: group.layout, - log_basis_open, - fold_challenge_config: *ring_challenge_cfg, - num_digits_open, - num_digits_fold, - }) } struct MultiGroupRootCandidateCtx<'a> { @@ -183,27 +70,8 @@ struct MultiGroupRootCandidateCtx<'a> { dimensions: RingDimensionCandidate<'a>, ring_challenge_cfg: &'a SparseChallengeConfig, final_honest_fold_policy: HonestFoldPolicySpec, -} - -fn multi_group_root_precommitted_group_seeds( - key: &AkitaScheduleLookupKey, - precommitted_honest_fold_policies: &[HonestFoldPolicySpec], - policy: &PlannerPolicy, -) -> Result, AkitaError> { - if precommitted_honest_fold_policies.len() != key.precommitteds.len() { - return Err(AkitaError::InvalidSetup( - "group-batch planning requires one honest fold policy per precommitted profile" - .to_string(), - )); - } - - key.precommitteds - .iter() - .zip(precommitted_honest_fold_policies) - .map(|(layout, honest_policy)| { - freeze_precommitted_group_layout(layout, *honest_policy, policy) - }) - .collect::, _>>() + main_num_polys: usize, + source: crate::InnerBasisSource, } fn precommitted_groups_for_open_basis( @@ -217,11 +85,11 @@ fn precommitted_groups_for_open_basis( .iter() .map(|group| { let ring_challenge_cfg = - ring_challenge_config(group.layout.inner_commit_matrix.ring_dimension())?; + ring_challenge_config(group.0.inner_commit_matrix.ring_dimension())?; materialize_precommitted_group_for_open_basis( group, policy, - &ring_challenge_cfg, + ring_challenge_cfg, log_basis_open, ) }) @@ -264,7 +132,8 @@ pub(crate) fn root_level_candidates_for_basis( ring_challenge_cfg: &SparseChallengeConfig, ring_challenge_config: &dyn Fn(usize) -> Result, root_input_witness_len: usize, - candidate_log_basis: u32, + candidate_log_basis_inner: u32, + candidate_log_basis_open: u32, require_witness_contraction: bool, ) -> Result, AkitaError> { dimensions.validate()?; @@ -278,13 +147,28 @@ pub(crate) fn root_level_candidates_for_basis( ))); } - let precommitted_groups = - multi_group_root_precommitted_group_seeds(key, precommitted_honest_fold_policies, policy)?; + if precommitted_honest_fold_policies.len() != key.precommitteds.len() { + return Err(AkitaError::InvalidSetup( + "group-batch planning requires one honest fold policy per precommitted profile" + .to_string(), + )); + } + let precommitted_groups = key + .precommitteds + .iter() + .copied() + .zip(precommitted_honest_fold_policies.iter().copied()) + .collect::>(); let candidate_ctx = MultiGroupRootCandidateCtx { policy, dimensions, ring_challenge_cfg, final_honest_fold_policy, + main_num_polys: key.final_group.num_polynomials(), + source: crate::schedule_params::root_inner_basis_source( + final_honest_fold_policy, + policy.decomposition.log_commit_bound, + ), }; let opening_batch = key.opening_layout()?; let initial_witness_len_bits = root_input_witness_len @@ -292,6 +176,30 @@ pub(crate) fn root_level_candidates_for_basis( .ok_or_else(|| AkitaError::InvalidSetup("root batch witness bit length overflow".into()))?; let min_block_index_bits: usize = if reduced_vars >= 3 { 1 } else { 0 }; let max_block_index_bits: usize = (reduced_vars - 1).min(usize::BITS as usize - 1); + let num_ring_elems = 1usize.checked_shl(reduced_vars as u32).ok_or_else(|| { + AkitaError::InvalidSetup("root reduced-variable domain is too large".into()) + })?; + let delta_commit = candidate_ctx + .source + .num_digits_inner(policy.decomposition, candidate_log_basis_inner)?; + let delta_open = num_digits_open(DecompositionParams { + log_basis: candidate_log_basis_open, + ..policy.decomposition + }); + let mut split_domain = recursive_split_search_domain( + policy.recursive_split_search_policy, + num_ring_elems, + reduced_vars, + delta_commit, + delta_open, + crate::policy::chunks_at_level(policy, 0), + ); + if min_block_index_bits == 0 { + split_domain.push(0); + } + split_domain.retain(|&split| min_block_index_bits <= split && split <= max_block_index_bits); + split_domain.sort_unstable_by(|left, right| right.cmp(left)); + split_domain.dedup(); let mut candidates = Vec::new(); let shared_opening_ring_dimension = match dimensions { @@ -300,7 +208,7 @@ pub(crate) fn root_level_candidates_for_basis( }; if precommitted_groups.iter().any(|group| { !group - .layout + .0 .inner_commit_matrix .ring_dimension() .is_multiple_of(shared_opening_ring_dimension) @@ -313,14 +221,14 @@ pub(crate) fn root_level_candidates_for_basis( policy, ring_challenge_config, shared_opening_ring_dimension, - candidate_log_basis, + candidate_log_basis_open, )?; - for block_index_bits in (min_block_index_bits..=max_block_index_bits).rev() { + for block_index_bits in split_domain { let position_index_bits = reduced_vars - block_index_bits; let Some(mut candidate_params) = root_final_group_level_params_candidate( &candidate_ctx, - key.final_group.num_polynomials(), - candidate_log_basis, + candidate_log_basis_inner, + candidate_log_basis_open, position_index_bits, block_index_bits, &candidate_precommitted_groups, @@ -329,7 +237,7 @@ pub(crate) fn root_level_candidates_for_basis( else { continue; }; - candidate_params.witness_chunk = policy.witness_chunk_for_level(0); + candidate_params.witness_chunk = crate::policy::witness_chunk_at_level(policy, 0); let Some(output_witness_len) = root_batch_next_w_len(field_bits, &candidate_params, &opening_batch)? else { @@ -337,7 +245,7 @@ pub(crate) fn root_level_candidates_for_basis( }; if require_witness_contraction && output_witness_len - .checked_mul(candidate_log_basis as usize) + .checked_mul(candidate_log_basis_open as usize) .ok_or_else(|| { AkitaError::InvalidSetup("root batch next witness bit length overflow".into()) })? @@ -353,8 +261,8 @@ pub(crate) fn root_level_candidates_for_basis( fn root_final_group_level_params_candidate( ctx: &MultiGroupRootCandidateCtx<'_>, - main_num_polys: usize, - log_basis: u32, + log_basis_inner: u32, + log_basis_open: u32, position_index_bits: usize, block_index_bits: usize, precommitted_groups: &[PrecommittedLevelParams], @@ -366,15 +274,12 @@ fn root_final_group_level_params_candidate( let family = policy.sis_modulus_profile; let decomp = ctx.policy.decomposition; let level_decomp = DecompositionParams { - log_basis, - ..decomp - }; - let log_basis_inner = log_basis; - let witness_decomp = DecompositionParams { - log_basis: log_basis_inner, + log_basis: log_basis_open, ..decomp }; - let num_digits_inner = num_digits_inner(witness_decomp, true); + let num_digits_inner = ctx + .source + .num_digits_inner(ctx.policy.decomposition, log_basis_inner)?; let num_digits_outer = num_digits_open(level_decomp); let num_digits_open = num_digits_outer; let Some(num_live_blocks) = 1usize.checked_shl(block_index_bits as u32) else { @@ -392,7 +297,7 @@ fn root_final_group_level_params_candidate( else { return Ok(None); }; - let num_chunks = policy.chunks_at_level(0); + let num_chunks = crate::policy::chunks_at_level(policy, 0); let Some(num_fold_coeffs) = width_s .checked_mul(d_a) .and_then(|count| count.checked_mul(num_chunks)) @@ -403,11 +308,14 @@ fn root_final_group_level_params_candidate( .final_honest_fold_policy .num_digits_fold(HonestFoldSizingQuery { ring_dimension: d_a, - num_claims: main_num_polys, + num_claims: ctx.main_num_polys, num_live_blocks, num_chunks, num_fold_coeffs, - log_basis, + witness_norms: ctx + .final_honest_fold_policy + .witness_norms_for_inner_basis(log_basis_inner, d_a), + log_basis_response: log_basis_open, challenge_config: ctx.ring_challenge_cfg, }) else { @@ -418,7 +326,7 @@ fn root_final_group_level_params_candidate( policy.sis_table_digest, family, d_a, - log_basis, + log_basis_open, ctx.ring_challenge_cfg, num_digits_fold, policy.ring_subfield_norm_bound, @@ -434,7 +342,7 @@ fn root_final_group_level_params_candidate( let n_a = inner_commit_matrix.output_rank(); let Some(width_t) = - decomposed_t_ring_count(n_a, num_digits_outer, num_live_blocks, main_num_polys) + decomposed_t_ring_count(n_a, num_digits_outer, num_live_blocks, ctx.main_num_polys) else { return Ok(None); }; @@ -442,7 +350,7 @@ fn root_final_group_level_params_candidate( policy, akita_types::SisMatrixRole::Outer, width_t, - log_basis, + log_basis_open, ) else { return Ok(None); }; @@ -453,7 +361,7 @@ fn root_final_group_level_params_candidate( }; let Some(main_d_width) = - decomposed_w_ring_count(num_digits_open, num_live_blocks, main_num_polys) + decomposed_w_ring_count(num_digits_open, num_live_blocks, ctx.main_num_polys) else { return Ok(None); }; @@ -461,7 +369,7 @@ fn root_final_group_level_params_candidate( policy, akita_types::SisMatrixRole::Open, main_d_width, - log_basis, + log_basis_open, ) else { return Ok(None); }; @@ -479,8 +387,8 @@ fn root_final_group_level_params_candidate( let params = CommittedGroupParams { payload_mode: akita_types::CommitmentPayloadMode::Compressed, log_basis_inner, - log_basis_outer: log_basis, - log_basis_open: log_basis, + log_basis_outer: log_basis_open, + log_basis_open, inner_commit_matrix, outer_commit_matrix, open_commit_matrix, @@ -536,7 +444,7 @@ pub fn find_schedule( ) -> Result { akita_schedules::planner_support::validate_policy(policy)?; key.validate(policy.decomposition.field_bits())?; - if matches!( + let direct_grouped_policy = if matches!( policy.ring_dimension_schedule_mode, crate::RingDimensionScheduleMode::AdaptiveDimension { .. } ) { @@ -561,26 +469,23 @@ pub fn find_schedule( crate::RingDimensionScheduleMode::UniformDimension { ring_dimension: uniform_suffix_dimension, }; - grouped_policy.selection_policy = crate::SelectionPolicyId::MinEstimatedProofPayload; - return find_schedule( - key, - final_honest_fold_policy, - precommitted_honest_fold_policies, - &grouped_policy, - ring_challenge_config, - ); + Some(grouped_policy) + } else { + None } - } + } else { + None + }; let ring_challenge_config: RingChallengeConfigFn<'_> = &ring_challenge_config; let scalar_policy; let active_policy = if key.precommitteds.is_empty() { // Empty-precommit keys still enter through the root-key planner, but // recursive adapters must not leak their setup-first objective into // scalar catalog rows. - scalar_policy = policy.direct_only(); + scalar_policy = crate::policy::direct_only_policy(*policy); &scalar_policy } else { - policy + direct_grouped_policy.as_ref().unwrap_or(policy) }; let setup_field_budget = if active_policy.recursive_setup_planning { active_policy.setup_field_budget @@ -625,7 +530,7 @@ pub fn find_schedule( .ok_or_else(|| AkitaError::InvalidSetup("adaptive A domain is empty".into()))?, ), }; - let suffix = derive_optimal_suffix_schedule( + let suffix = derive_selected_suffix_schedule( &suffix_ctx, &mut memo, SuffixState { @@ -640,15 +545,14 @@ pub fn find_schedule( )?; let best = match active_policy.selection_policy { crate::SelectionPolicyId::MinEstimatedProofPayload => { - select_complete_candidate(active_policy, suffix.best_by_payload_per_lb.values())? + select_complete_candidate(active_policy, suffix.payload_candidates())? } crate::SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload => { select_complete_candidate(active_policy, &suffix.mixed_frontier)? } - crate::SelectionPolicyId::MinFirstDirectSetupThenPayload => select_complete_candidate( - active_policy, - suffix.best_by_first_direct_setup_per_lb.values(), - )?, + crate::SelectionPolicyId::MinFirstDirectSetupThenPayload => { + select_complete_candidate(active_policy, suffix.setup_candidates())? + } }; let Some(best) = best.cloned() else { @@ -670,11 +574,15 @@ pub fn find_schedule( ))); }; let first_direct_setup_field_len = if active_policy.recursive_setup_planning { - Some(best.first_direct_setup_field_len.ok_or_else(|| { - AkitaError::InvalidSetup( - "recursive setup schedule is missing its first direct setup size".into(), - ) - })?) + Some( + best.first_direct_setup_field_len + .ok_or_else(|| { + AkitaError::InvalidSetup( + "recursive setup schedule is missing its first direct setup size".into(), + ) + })? + .get(), + ) } else { None }; @@ -682,7 +590,7 @@ pub fn find_schedule( best.total_bytes, best.setup_field_elements, first_direct_setup_field_len, - best.folds, - best.terminal, + best.folds.to_vec(), + best.terminal.as_ref().clone(), ) } diff --git a/crates/akita-planner/src/policy.rs b/crates/akita-planner/src/policy.rs new file mode 100644 index 000000000..e4cd992b1 --- /dev/null +++ b/crates/akita-planner/src/policy.rs @@ -0,0 +1,97 @@ +//! Offline interpretation of catalog-bound planner policy data. + +use akita_field::AkitaError; +use akita_schedules::{ChunkedWitnessCfg, DecompositionParams, PlannerPolicy, SelectionPolicyId}; +use akita_types::MAX_I16_LOG_BASIS; + +/// Coefficient source whose A-matrix decomposition basis is being selected. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum InnerBasisSource { + /// Raw coefficients that may benefit from a full basis sweep. + RawCoefficients { log_bound: u32 }, + /// Unit one-hot coefficients already represented by one exact digit. + UnitOneHot, + /// A recursive witness already represented as balanced digits. + BalancedDigits { log_basis: u32 }, +} + +impl InnerBasisSource { + /// Inclusive A/source basis domain for this coefficient shape. + pub fn search_range(self, policy: &PlannerPolicy) -> Result<(u32, u32), AkitaError> { + let (min, max) = policy.inner_basis_range; + match self { + Self::RawCoefficients { log_bound } => Ok((min, max.min(log_bound.max(min)))), + Self::UnitOneHot => Ok((min, min)), + Self::BalancedDigits { log_basis } + if (1..=MAX_I16_LOG_BASIS).contains(&log_basis) => + { + Ok((log_basis, log_basis)) + } + Self::BalancedDigits { log_basis } => Err(AkitaError::InvalidSetup(format!( + "recursive digit basis {log_basis} is outside the supported range [1, {MAX_I16_LOG_BASIS}]" + ))), + } + } + + /// Exact source digit depth for a selected A basis. + pub fn num_digits_inner( + self, + decomposition: DecompositionParams, + selected_log_basis: u32, + ) -> Result { + match self { + Self::RawCoefficients { log_bound } => Ok(akita_types::sis::num_digits_inner_for_bound( + DecompositionParams { + log_basis: selected_log_basis, + ..decomposition + }, + log_bound, + )), + Self::UnitOneHot => Ok(1), + Self::BalancedDigits { log_basis } if log_basis == selected_log_basis => Ok(1), + Self::BalancedDigits { log_basis } => Err(AkitaError::InvalidSetup(format!( + "balanced source basis {log_basis} cannot be re-decomposed at basis {selected_log_basis}" + ))), + } + } +} + +pub(crate) fn direct_only_policy(mut policy: PlannerPolicy) -> PlannerPolicy { + policy.recursive_setup_planning = false; + policy.selection_policy = + SelectionPolicyId::for_policy(false, policy.ring_dimension_schedule_mode); + policy +} + +pub(crate) fn chunks_at_level(policy: &PlannerPolicy, fold_level: usize) -> usize { + let chunk = policy.witness_chunk; + if chunk.uses_multi_chunk() && fold_level < chunk.num_activated_levels { + chunk.num_chunks + } else { + 1 + } +} + +pub(crate) fn witness_chunk_at_level( + policy: &PlannerPolicy, + fold_level: usize, +) -> ChunkedWitnessCfg { + let num_chunks = chunks_at_level(policy, fold_level); + if num_chunks > 1 { + ChunkedWitnessCfg { + num_chunks, + num_activated_levels: policy.witness_chunk.num_activated_levels, + } + } else { + ChunkedWitnessCfg::default() + } +} + +pub(crate) fn log_basis_search_range_at_level(policy: &PlannerPolicy, level: usize) -> (u32, u32) { + let (configured_min, max) = policy.opening_basis_range; + if level == 0 { + (configured_min, configured_min) + } else { + (configured_min, max) + } +} diff --git a/crates/akita-planner/src/schedule_params.rs b/crates/akita-planner/src/schedule_params.rs index 45cc6e327..ff312de46 100644 --- a/crates/akita-planner/src/schedule_params.rs +++ b/crates/akita-planner/src/schedule_params.rs @@ -6,14 +6,16 @@ //! exactly the shape generated catalog emission consumes. This keeps the DP a //! pure function of `(policy, key, dimension domain)` for offline table generation. +use std::{num::NonZeroUsize, sync::Arc}; + use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; use akita_types::sis::{ decomposed_s_block_ring_count, decomposed_t_ring_count, decomposed_w_ring_count, - num_digits_inner, num_digits_open, num_digits_setup_prefix_commit, - rounded_up_collision_inf_norm, rounded_up_role_a_inf_norm, BalancedSignedDigitFoldPolicy, - FoldWitnessNorms, HonestFoldPolicy, HonestFoldPolicySpec, HonestFoldSizingQuery, - InnerCommitMatrixParams, OpenCommitMatrixParams, OuterCommitMatrixParams, + num_digits_inner_for_bound, num_digits_open, rounded_up_collision_inf_norm, + rounded_up_role_a_inf_norm, BalancedSignedDigitFoldPolicy, FoldWitnessNorms, HonestFoldPolicy, + HonestFoldPolicySpec, HonestFoldSizingQuery, InnerCommitMatrixParams, OpenCommitMatrixParams, + OuterCommitMatrixParams, }; use akita_types::{ dyadic_block_ranges, padded_setup_prefix_len, AkitaScheduleLookupKey, CommitmentRingDims, @@ -25,10 +27,11 @@ use akita_types::{ level_proof_bytes, try_extension_opening_reduction_level_bytes, PlannedFoldSchedule, }; -use crate::PlannerPolicy; +use crate::{InnerBasisSource, PlannerPolicy}; mod candidate; mod objective; +mod pareto; mod setup_score; mod suffix_dp; #[cfg(test)] @@ -40,13 +43,26 @@ pub(crate) use akita_schedules::planner_support::{ }; pub use akita_types::suffix_opening_layout; pub(crate) use candidate::{ - derive_candidate_level_params, derive_candidate_level_params_all_splits, + derive_candidate_level_params, derive_candidate_level_params_split_frontier, + recursive_split_search_domain, SetupPrefixSearchCache, }; pub(crate) use objective::select_complete_candidate; pub(crate) use setup_score::{ level_setup_field_elements, terminal_setup_field_elements, MixedScore, }; -pub(crate) use suffix_dp::{derive_optimal_suffix_schedule, ScheduleMemo, SuffixCtx, SuffixState}; +pub(crate) use suffix_dp::{derive_selected_suffix_schedule, ScheduleMemo, SuffixCtx, SuffixState}; + +pub(crate) fn root_inner_basis_source( + honest_fold_policy: HonestFoldPolicySpec, + log_bound: u32, +) -> InnerBasisSource { + match honest_fold_policy { + HonestFoldPolicySpec::UnitOneHot(_) => InnerBasisSource::UnitOneHot, + HonestFoldPolicySpec::BalancedSignedDigit(_) => { + InnerBasisSource::RawCoefficients { log_bound } + } + } +} fn dimension_candidates( policy: &PlannerPolicy, @@ -178,46 +194,121 @@ fn componentwise_dimensions_at_most( && dimensions.d_d() <= ceiling.d_d() } +#[derive(Clone, Debug, Default)] +pub(crate) struct CandidateFoldChain { + head: Option>, + len: usize, +} + +#[derive(Debug)] +struct CandidateFoldNode { + step: CandidateFoldStep, + tail: Option>, +} + +impl CandidateFoldChain { + pub(crate) fn is_empty(&self) -> bool { + self.head.is_none() + } + + pub(crate) fn len(&self) -> usize { + self.len + } + + pub(crate) fn first(&self) -> Option<&CandidateFoldStep> { + self.head.as_deref().map(|node| &node.step) + } + + pub(crate) fn prepend(&self, step: CandidateFoldStep) -> Self { + Self { + head: Some(Arc::new(CandidateFoldNode { + step, + tail: self.head.clone(), + })), + len: self.len + 1, + } + } + + pub(crate) fn to_vec(&self) -> Vec { + let mut folds = Vec::with_capacity(self.len); + let mut node = self.head.as_deref(); + while let Some(current) = node { + folds.push(current.step.clone()); + node = current.tail.as_deref(); + } + folds + } +} + #[derive(Clone, Debug)] pub(crate) struct ScheduleCandidate { - pub(crate) first_direct_setup_field_len: Option, + pub(crate) first_direct_setup_field_len: Option, pub(crate) total_bytes: usize, pub(crate) setup_field_elements: usize, - pub(crate) folds: Vec, - pub(crate) terminal: CandidateTerminalResponse, + pub(crate) folds: CandidateFoldChain, + pub(crate) terminal: Arc, } -impl ScheduleCandidate { - pub(crate) fn first_fold_params(&self) -> Option<&CommittedGroupParams> { - self.folds.first().map(|fold| &fold.params) +#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd)] +pub(crate) struct SetupPrefixCapacity(usize); + +impl SetupPrefixCapacity { + pub(crate) const MAX: Self = Self(usize::MAX); + + pub(crate) fn for_natural_len(natural_len: usize) -> Self { + Self(padded_setup_prefix_len(natural_len)) } - pub(crate) fn first_direct_setup_field_len_or_max(&self) -> usize { - self.first_direct_setup_field_len.unwrap_or(usize::MAX) + pub(crate) const fn field_elements(self) -> usize { + self.0 } +} - pub(crate) fn direct_frontier_score(&self) -> (usize, usize) { - (self.total_bytes, self.setup_field_elements) +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub(crate) struct CandidateMetrics { + pub(crate) first_direct_setup_capacity: SetupPrefixCapacity, + pub(crate) proof_bytes: usize, + pub(crate) setup_field_elements: usize, +} + +impl ScheduleCandidate { + pub(crate) fn first_fold_params(&self) -> Option<&CommittedGroupParams> { + self.folds.first().map(|fold| fold.params.as_ref()) } - pub(crate) fn recursive_setup_frontier_score(&self) -> (usize, usize, usize) { - ( - self.first_direct_setup_field_len_or_max(), - self.total_bytes, - self.setup_field_elements, - ) + pub(crate) fn metrics(&self) -> CandidateMetrics { + CandidateMetrics { + first_direct_setup_capacity: self + .first_direct_setup_field_len + .map_or(SetupPrefixCapacity::MAX, |natural_len| { + SetupPrefixCapacity::for_natural_len(natural_len.get()) + }), + proof_bytes: self.total_bytes, + setup_field_elements: self.setup_field_elements, + } } } pub(crate) fn candidate_schedule_descriptor_bytes( choice: &ScheduleCandidate, ) -> Result, AkitaError> { + if choice.folds.is_empty() { + return Ok(akita_types::TerminalFoldStep { + params: akita_types::TerminalFoldParams { + witness: choice.terminal.params.clone(), + sparse_challenge_config: choice.terminal.sparse_challenge_config, + response_shape: choice.terminal.response_shape.clone(), + }, + input_witness_len: choice.terminal.input_witness_len, + } + .canonical_descriptor_bytes()); + } Ok(materialize_candidate_schedule( choice.total_bytes, choice.setup_field_elements, - choice.first_direct_setup_field_len, - choice.folds.clone(), - choice.terminal.clone(), + choice.first_direct_setup_field_len.map(NonZeroUsize::get), + choice.folds.to_vec(), + choice.terminal.as_ref().clone(), )? .schedule .canonical_descriptor_bytes()) @@ -259,20 +350,55 @@ pub(crate) fn layout_candidate_score( Ok((combined, physical_width, chunk_work, imbalance)) } -/// Offline canonical standalone precommit descriptor for one group. -/// -/// Root precommits are selected independently of any future final-group -/// schedule. Adaptive policies use their uniform suffix dimension for both A -/// and B; final groups retain the full per-level adaptive search. -pub fn derive_standalone_precommit_profile( +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct StandalonePrecommitCandidate { + pub profile: CommittedGroupProfile, + pub next_witness_len: usize, + pub ab_setup_field_elements: usize, + pub padded_ab_setup_field_elements: usize, +} + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct StandalonePrecommitPlan { + pub selected: StandalonePrecommitCandidate, + pub pareto_frontier: Vec, +} + +fn matrix_field_elements( + output_rank: usize, + input_width: usize, + ring_dimension: usize, +) -> Result { + output_rank + .checked_mul(input_width) + .and_then(|elements| elements.checked_mul(ring_dimension)) + .ok_or_else(|| AkitaError::InvalidSetup("standalone matrix size overflow".into())) +} + +fn ab_setup_field_elements(params: &CommittedGroupParams) -> Result { + let inner = matrix_field_elements( + params.inner_commit_matrix.output_rank(), + params.inner_commit_matrix.input_width(), + params.inner_commit_matrix.ring_dimension(), + )?; + let outer = matrix_field_elements( + params.outer_commit_matrix.output_rank(), + params.outer_commit_matrix.input_width(), + params.outer_commit_matrix.ring_dimension(), + )?; + Ok(inner.max(outer)) +} + +/// Exhaustively plan the standalone A/B geometry and retain its Pareto frontier. +pub fn plan_standalone_precommit( key: PolynomialGroupLayout, policy: &PlannerPolicy, honest_fold_policy: HonestFoldPolicySpec, ring_challenge_config: impl Fn(usize) -> Result, -) -> Result { +) -> Result { key.validate()?; let schedule_key = AkitaScheduleLookupKey::single(key); - let mut direct_policy = policy.direct_only(); + let mut direct_policy = crate::policy::direct_only_policy(*policy); let precommit_dimension = match policy.ring_dimension_schedule_mode { crate::RingDimensionScheduleMode::UniformDimension { ring_dimension } => ring_dimension, crate::RingDimensionScheduleMode::AdaptiveDimension { @@ -287,42 +413,100 @@ pub fn derive_standalone_precommit_profile( }; direct_policy.selection_policy = crate::SelectionPolicyId::for_policy(false, direct_policy.ring_dimension_schedule_mode); - direct_policy.basis_range = (direct_policy.basis_range.0, direct_policy.basis_range.0); akita_schedules::planner_support::validate_policy(&direct_policy)?; let witness_len = 1usize .checked_shl(key.num_vars() as u32) .ok_or_else(|| AkitaError::InvalidSetup("precommit witness too large".into()))?; - let (min_log_basis, max_log_basis) = direct_policy.log_basis_search_range_at_level(0); - let mut best: Option<(usize, CommittedGroupParams)> = None; - for candidate_log_basis in min_log_basis..=max_log_basis { - let dimensions = akita_schedules::planner_support::RingDimensionCandidate::Fixed( - CommitmentRingDims::uniform(precommit_dimension), - ); - let ring_challenge_cfg = ring_challenge_config(precommit_dimension)?; - for (candidate_params, next_witness_len) in crate::planner::root_level_candidates_for_basis( - &schedule_key, - honest_fold_policy, - &[], - &direct_policy, - dimensions, - &ring_challenge_cfg, - &ring_challenge_config, - witness_len, - candidate_log_basis, - false, - )? { - match &best { - Some((best_len, _)) if *best_len <= next_witness_len => {} - _ => best = Some((next_witness_len, candidate_params)), + let (min_open_basis, max_open_basis) = + crate::policy::log_basis_search_range_at_level(&direct_policy, 0); + let inner_source = root_inner_basis_source( + honest_fold_policy, + direct_policy.decomposition.log_commit_bound, + ); + let (min_inner_basis, max_inner_basis) = inner_source.search_range(&direct_policy)?; + let dimensions = akita_schedules::planner_support::RingDimensionCandidate::Fixed( + CommitmentRingDims::uniform(precommit_dimension), + ); + let ring_challenge_cfg = ring_challenge_config(precommit_dimension)?; + let mut frontier: Vec<(StandalonePrecommitCandidate, Vec)> = Vec::new(); + let objective_coords = |candidate: &StandalonePrecommitCandidate| { + [ + candidate.next_witness_len, + candidate.padded_ab_setup_field_elements, + candidate.ab_setup_field_elements, + ] + }; + + for candidate_open_basis in min_open_basis..=max_open_basis { + for candidate_inner_basis in min_inner_basis..=max_inner_basis { + for (candidate_params, next_witness_len) in + crate::planner::root_level_candidates_for_basis( + &schedule_key, + honest_fold_policy, + &[], + &direct_policy, + dimensions, + &ring_challenge_cfg, + &ring_challenge_config, + witness_len, + candidate_inner_basis, + candidate_open_basis, + false, + )? + { + let setup = ab_setup_field_elements(&candidate_params)?; + let candidate = StandalonePrecommitCandidate { + profile: CommittedGroupProfile::from_params(key, &candidate_params), + next_witness_len, + ab_setup_field_elements: setup, + padded_ab_setup_field_elements: padded_setup_prefix_len(setup), + }; + let descriptor = candidate.profile.canonical_descriptor_bytes(); + pareto::insert( + &mut frontier, + (candidate, descriptor), + |(left, left_descriptor), (right, right_descriptor)| { + pareto::canonical_dominates( + &objective_coords(left), + left_descriptor, + &objective_coords(right), + right_descriptor, + ) + }, + ); } } } - best.map(|(_, params)| CommittedGroupProfile::from_params(key, ¶ms)) + + frontier.sort_by(|(left, left_descriptor), (right, right_descriptor)| { + ( + left.next_witness_len, + left.padded_ab_setup_field_elements, + left.ab_setup_field_elements, + left_descriptor, + ) + .cmp(&( + right.next_witness_len, + right.padded_ab_setup_field_elements, + right.ab_setup_field_elements, + right_descriptor, + )) + }); + let selected = frontier + .first() + .map(|(candidate, _)| candidate.clone()) .ok_or_else(|| { AkitaError::InvalidSetup(format!( "no standalone precommit profile found for layout {key:?} under this policy" )) - }) + })?; + Ok(StandalonePrecommitPlan { + selected, + pareto_frontier: frontier + .into_iter() + .map(|(candidate, _)| candidate) + .collect(), + }) } #[cfg(test)] diff --git a/crates/akita-planner/src/schedule_params/candidate.rs b/crates/akita-planner/src/schedule_params/candidate.rs index 830d63743..527005383 100644 --- a/crates/akita-planner/src/schedule_params/candidate.rs +++ b/crates/akita-planner/src/schedule_params/candidate.rs @@ -1,17 +1,17 @@ use super::*; pub(crate) use akita_schedules::planner_support::planned_next_witness_len; -use akita_schedules::planner_support::{ - grouped_segment_rings, sis_key_at_dimension, RingDimensionCandidate, -}; +use akita_schedules::planner_support::{sis_key_at_dimension, RingDimensionCandidate}; mod recursive; mod setup_prefix; pub(crate) use recursive::{ - derive_candidate_level_params, derive_candidate_level_params_all_splits, + derive_candidate_level_params, derive_candidate_level_params_split_frontier, + recursive_split_search_domain, }; -pub(super) use setup_prefix::derive_setup_prefix_group; +pub(super) use setup_prefix::derive_setup_prefix_groups; +pub(crate) use setup_prefix::SetupPrefixSearchCache; #[cfg(test)] #[path = "../test/schedule_params_candidate.rs"] diff --git a/crates/akita-planner/src/schedule_params/candidate/recursive.rs b/crates/akita-planner/src/schedule_params/candidate/recursive.rs index b78cb9752..df0def7bc 100644 --- a/crates/akita-planner/src/schedule_params/candidate/recursive.rs +++ b/crates/akita-planner/src/schedule_params/candidate/recursive.rs @@ -11,9 +11,12 @@ pub(crate) fn recursive_fold_level_params_candidate( dimensions: RingDimensionCandidate<'_>, num_ring_elems: usize, reduced_vars: usize, - log_basis: u32, + source: crate::InnerBasisSource, + log_basis_inner: u32, + log_basis_open: u32, fold_level: usize, block_index_bits: usize, + current_witness_len: usize, ) -> Result, AkitaError> { if reduced_vars <= 2 || reduced_vars >= 53 @@ -22,19 +25,19 @@ pub(crate) fn recursive_fold_level_params_candidate( { return Ok(None); } - let num_chunks = policy.chunks_at_level(fold_level); + let num_chunks = crate::policy::chunks_at_level(policy, fold_level); let num_positions_per_block = 1usize .checked_shl((reduced_vars - block_index_bits) as u32) .ok_or_else(|| { AkitaError::InvalidSetup("recursive candidate position count overflow".to_string()) })?; let num_live_blocks = num_ring_elems.div_ceil(num_positions_per_block); - let decomp = DecompositionParams { - log_basis, + let open_decomp = DecompositionParams { + log_basis: log_basis_open, ..policy.decomposition }; - let delta_commit = num_digits_inner(decomp, false); - let delta_open = num_digits_open(decomp); + let delta_commit = source.num_digits_inner(policy.decomposition, log_basis_inner)?; + let delta_open = num_digits_open(open_decomp); let Some(width_s) = decomposed_s_block_ring_count(num_positions_per_block, delta_commit) else { return Ok(None); }; @@ -47,7 +50,7 @@ pub(crate) fn recursive_fold_level_params_candidate( }; let fold_policy = BalancedSignedDigitFoldPolicy::preserving_existing_behavior( policy.decomposition.field_bits(), - FoldWitnessNorms::bounded(decomp.log_basis, d_a), + FoldWitnessNorms::bounded(log_basis_inner, d_a), ); let Ok(num_digits_fold) = fold_policy.num_digits_fold(HonestFoldSizingQuery { ring_dimension: d_a, @@ -55,7 +58,8 @@ pub(crate) fn recursive_fold_level_params_candidate( num_live_blocks, num_chunks, num_fold_coeffs, - log_basis: decomp.log_basis, + witness_norms: FoldWitnessNorms::bounded(log_basis_inner, d_a), + log_basis_response: log_basis_open, challenge_config: ring_challenge_cfg, }) else { return Ok(None); @@ -65,7 +69,7 @@ pub(crate) fn recursive_fold_level_params_candidate( policy.sis_table_digest, policy.sis_modulus_profile, d_a, - decomp.log_basis, + log_basis_open, ring_challenge_cfg, num_digits_fold, policy.ring_subfield_norm_bound, @@ -78,6 +82,22 @@ pub(crate) fn recursive_fold_level_params_candidate( ) else { return Ok(None); }; + let physical_witness_len = akita_schedules::planner_support::grouped_segment_rings( + 1, + num_live_blocks, + num_chunks, + num_positions_per_block, + inner_commit_matrix.output_rank(), + delta_commit, + delta_open, + delta_open, + num_digits_fold, + )? + .checked_mul(d_a) + .ok_or_else(|| AkitaError::InvalidSetup("recursive witness body overflow".into()))?; + if physical_witness_len >= current_witness_len { + return Ok(None); + } let Some(native_width_t) = decomposed_t_ring_count( inner_commit_matrix.output_rank(), delta_open, @@ -90,7 +110,7 @@ pub(crate) fn recursive_fold_level_params_candidate( policy, akita_types::SisMatrixRole::Outer, native_width_t, - log_basis, + log_basis_open, ) else { return Ok(None); }; @@ -106,7 +126,7 @@ pub(crate) fn recursive_fold_level_params_candidate( policy, akita_types::SisMatrixRole::Open, native_width_w, - log_basis, + log_basis_open, ) else { return Ok(None); }; @@ -116,9 +136,9 @@ pub(crate) fn recursive_fold_level_params_candidate( }; let params = CommittedGroupParams { payload_mode: akita_types::CommitmentPayloadMode::Compressed, - log_basis_inner: log_basis, - log_basis_outer: log_basis, - log_basis_open: log_basis, + log_basis_inner, + log_basis_outer: log_basis_open, + log_basis_open, inner_commit_matrix, outer_commit_matrix, open_commit_matrix, @@ -130,7 +150,7 @@ pub(crate) fn recursive_fold_level_params_candidate( num_digits_outer: delta_open, num_digits_open: delta_open, num_digits_fold, - witness_chunk: policy.witness_chunk_for_level(fold_level), + witness_chunk: crate::policy::witness_chunk_at_level(policy, fold_level), precommitted_groups: Vec::new(), setup_prefix: None, }; @@ -152,14 +172,17 @@ fn push_recursive_split_candidate(candidates: &mut Vec, reduced_vars: usi } } -pub(super) fn seed_recursive_split_candidates( +const EXHAUSTIVE_SPLIT_VARIABLE_LIMIT: usize = 12; +const LARGE_SPLIT_BALANCE_RADIUS: isize = 2; + +fn bounded_recursive_split_candidates( num_ring_elems: usize, reduced_vars: usize, delta_commit: usize, delta_open: usize, num_chunks: usize, ) -> Vec { - if reduced_vars <= 12 { + if reduced_vars <= EXHAUSTIVE_SPLIT_VARIABLE_LIMIT { return (1..reduced_vars).rev().collect(); } @@ -185,7 +208,7 @@ pub(super) fn seed_recursive_split_candidates( best_distance = Some(distance); } } - for offset in -5..=5 { + for offset in -LARGE_SPLIT_BALANCE_RADIUS..=LARGE_SPLIT_BALANCE_RADIUS { push_recursive_split_candidate(&mut candidates, reduced_vars, center as isize + offset); } } @@ -194,14 +217,30 @@ pub(super) fn seed_recursive_split_candidates( candidates } -/// Lower bound on the final layout score for one recursive split. -/// -/// The true score is `next_witness_len + challenge_work + chunk_work + -/// imbalance`. For any feasible scalar recursive candidate, -/// `next_witness_len` includes at least `D * (e_hat + t_hat + z_hat)`, with -/// `n_A >= 1`, `num_digits_fold >= 1`, and any setup-prefix / relation-tail -/// terms only increasing the witness. A split whose lower bound already exceeds -/// the current best score therefore cannot become optimal. +/// Return the exact split domain selected by the catalog-bound search policy. +pub(crate) fn recursive_split_search_domain( + search_policy: crate::RecursiveSplitSearchPolicy, + num_ring_elems: usize, + reduced_vars: usize, + delta_commit: usize, + delta_open: usize, + num_chunks: usize, +) -> Vec { + match search_policy { + crate::RecursiveSplitSearchPolicy::Exhaustive => (1..reduced_vars).rev().collect(), + crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1 => { + bounded_recursive_split_candidates( + num_ring_elems, + reduced_vars, + delta_commit, + delta_open, + num_chunks, + ) + } + } +} + +/// Inputs shared by conservative recursive split bounds. #[derive(Clone, Copy)] pub(super) struct RecursiveSplitLowerBoundInput { pub(super) num_ring_elems: usize, @@ -213,7 +252,7 @@ pub(super) struct RecursiveSplitLowerBoundInput { pub(super) num_chunks: usize, } -pub(super) fn recursive_split_lower_bound(input: RecursiveSplitLowerBoundInput) -> Option { +fn recursive_witness_body_lower_bound(input: RecursiveSplitLowerBoundInput) -> Option { if input.r == 0 || input.r >= input.reduced_vars { return None; } @@ -230,9 +269,21 @@ pub(super) fn recursive_split_lower_bound(input: RecursiveSplitLowerBoundInput) .checked_add(t_hat_floor)? .checked_add(z_hat_floor)? .checked_mul(input.ring_dimension)?; - let challenge_work = num_live_blocks; + Some(physical_width_floor) +} + +/// Lower bound on the final layout score for one recursive split. +/// +/// The true score adds challenge and chunk work to the next witness. The next +/// witness itself includes at least the physical Z/E/T body returned above; +/// setup-prefix and relation-tail terms can only increase it. +pub(super) fn recursive_split_lower_bound(input: RecursiveSplitLowerBoundInput) -> Option { + let physical_width_floor = recursive_witness_body_lower_bound(input)?; + let p = input.reduced_vars.checked_sub(input.r)?; + let num_positions_per_block = 1usize.checked_shl(p as u32)?; + let num_live_blocks = input.num_ring_elems.div_ceil(num_positions_per_block); physical_width_floor - .checked_add(challenge_work)? + .checked_add(num_live_blocks)? .checked_add(num_live_blocks) } @@ -247,20 +298,22 @@ struct RecursiveLevelSearch { num_chunks: usize, num_ring_elems: usize, reduced_vars: usize, - setup_prefix: Option, + current_witness_len: usize, + setup_prefixes: Vec>, } #[allow(clippy::too_many_arguments)] fn prepare_recursive_level_search( + setup_prefix_cache: Option<&mut SetupPrefixSearchCache>, policy: &PlannerPolicy, ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, dimensions: RingDimensionCandidate<'_>, current_witness_len: usize, - log_basis: u32, + log_basis_open: u32, fold_level: usize, incoming_setup_prefix: Option, ) -> Result, AkitaError> { - let num_chunks = policy.chunks_at_level(fold_level); + let num_chunks = crate::policy::chunks_at_level(policy, fold_level); dimensions.validate()?; let d_a = dimensions.inner(); if current_witness_len == 0 { @@ -284,14 +337,17 @@ fn prepare_recursive_level_search( ))); } - let setup_prefix = match incoming_setup_prefix { + let setup_prefixes = match incoming_setup_prefix { Some(natural_len) => { + let cache = setup_prefix_cache.ok_or_else(|| { + AkitaError::InvalidSetup("setup-prefix planning requires a search cache".into()) + })?; let n_prefix = padded_setup_prefix_len(natural_len); - let Some(group) = derive_setup_prefix_group( + let groups = derive_setup_prefix_groups( + cache, policy, ring_challenge_cfg, - log_basis, - log_basis, + log_basis_open, n_prefix, num_chunks, d_a, @@ -299,48 +355,34 @@ fn prepare_recursive_level_search( RingDimensionCandidate::Fixed(value) => value.d_b(), RingDimensionCandidate::Adaptive { .. } => d_a, }, - )? - else { + )?; + if groups.is_empty() { return Ok(None); - }; - Some(akita_types::setup_prefix_slot_id(natural_len, group)) + } + groups + .into_iter() + .map(|group| Some(akita_types::setup_prefix_slot_id(natural_len, group))) + .collect() } - None => None, + None => vec![None], }; Ok(Some(RecursiveLevelSearch { num_chunks, num_ring_elems, reduced_vars, - setup_prefix, + current_witness_len, + setup_prefixes, })) } #[allow(clippy::too_many_arguments)] -fn recursive_level_candidate_for_split( +fn finalize_recursive_level_candidate( policy: &PlannerPolicy, - payload_mode: akita_types::CommitmentPayloadMode, - ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, - dimensions: RingDimensionCandidate<'_>, search: &RecursiveLevelSearch, - log_basis: u32, - fold_level: usize, - block_index_bits: usize, + setup_prefix: Option<&akita_types::SetupPrefixSlotId>, + mut candidate_params: CommittedGroupParams, ) -> Result, AkitaError> { - let Some(mut candidate_params) = recursive_fold_level_params_candidate( - policy, - ring_challenge_cfg, - dimensions, - search.num_ring_elems, - search.reduced_vars, - log_basis, - fold_level, - block_index_bits, - )? - else { - return Ok(None); - }; - candidate_params.payload_mode = payload_mode; - candidate_params.setup_prefix = search.setup_prefix.clone(); + candidate_params.setup_prefix = setup_prefix.cloned(); if let Some(prefix) = &candidate_params.setup_prefix { let prefix_d_width = prefix .commitment_params @@ -375,94 +417,177 @@ fn recursive_level_candidate_for_split( } #[allow(clippy::too_many_arguments)] -pub(crate) fn derive_candidate_level_params( +fn recursive_level_base_candidate_for_split( policy: &PlannerPolicy, payload_mode: akita_types::CommitmentPayloadMode, ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, dimensions: RingDimensionCandidate<'_>, - current_witness_len: usize, - log_basis: u32, + search: &RecursiveLevelSearch, + source: crate::InnerBasisSource, + log_basis_inner: u32, + log_basis_open: u32, fold_level: usize, - incoming_setup_prefix: Option, -) -> Result, AkitaError> { - let Some(search) = prepare_recursive_level_search( + block_index_bits: usize, +) -> Result, AkitaError> { + let Some(mut candidate_params) = recursive_fold_level_params_candidate( policy, ring_challenge_cfg, dimensions, - current_witness_len, - log_basis, + search.num_ring_elems, + search.reduced_vars, + source, + log_basis_inner, + log_basis_open, fold_level, - incoming_setup_prefix, + block_index_bits, + search.current_witness_len, )? else { return Ok(None); }; + candidate_params.payload_mode = payload_mode; + Ok(Some(candidate_params)) +} - // The exhaustive scan visited larger `r` first and retained the first - // equal-scoring candidate. Keep that tie-break explicit because the - // seed-first search intentionally evaluates splits in a different order. - let mut best: Option<(LayoutCandidateScore, usize, CommittedGroupParams, usize)> = None; - let decomp = DecompositionParams { - log_basis, +#[derive(Clone, Copy)] +struct RecursiveSplitBounds { + score: Option, + witness_body: Option, +} + +#[allow(clippy::too_many_arguments)] +fn walk_recursive_splits( + policy: &PlannerPolicy, + payload_mode: akita_types::CommitmentPayloadMode, + ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, + dimensions: RingDimensionCandidate<'_>, + search: &RecursiveLevelSearch, + source: crate::InnerBasisSource, + log_basis_inner: u32, + log_basis_open: u32, + fold_level: usize, + mut admit_split: impl FnMut(usize, RecursiveSplitBounds) -> bool, + mut visit: impl FnMut(LayoutCandidateScore, usize, CommittedGroupParams, usize), +) -> Result<(), AkitaError> { + let delta_commit = source.num_digits_inner(policy.decomposition, log_basis_inner)?; + let delta_open = num_digits_open(DecompositionParams { + log_basis: log_basis_open, ..policy.decomposition - }; - let delta_commit = num_digits_inner(decomp, false); - let delta_open = num_digits_open(decomp); - let mut evaluated = Vec::new(); - let mut candidates = seed_recursive_split_candidates( + }); + let splits = recursive_split_search_domain( + policy.recursive_split_search_policy, search.num_ring_elems, search.reduced_vars, delta_commit, delta_open, search.num_chunks, ); - candidates.extend((1..search.reduced_vars).rev()); - - // Evaluate a square-root-model seed window first, then finish the exact - // search with a cheap lower-bound filter. The filter may evaluate extra - // splits when the bound is loose, but it never skips a split that can beat - // the current best layout score. - for r in candidates { - if evaluated.contains(&r) { + for r in splits { + let lower_bound_input = RecursiveSplitLowerBoundInput { + num_ring_elems: search.num_ring_elems, + ring_dimension: dimensions.inner(), + reduced_vars: search.reduced_vars, + r, + delta_commit, + delta_open, + num_chunks: search.num_chunks, + }; + if !admit_split( + r, + RecursiveSplitBounds { + score: recursive_split_lower_bound(lower_bound_input), + witness_body: recursive_witness_body_lower_bound(lower_bound_input), + }, + ) { continue; } - evaluated.push(r); - if let Some((best_score, _, _, _)) = &best { - if let Some(lower_bound) = recursive_split_lower_bound(RecursiveSplitLowerBoundInput { - num_ring_elems: search.num_ring_elems, - ring_dimension: dimensions.inner(), - reduced_vars: search.reduced_vars, - r, - delta_commit, - delta_open, - num_chunks: search.num_chunks, - }) { - if lower_bound > best_score.0 { - continue; - } - } - } - let Some((score, candidate_params, next_witness_len)) = - recursive_level_candidate_for_split( - policy, - payload_mode, - ring_challenge_cfg, - dimensions, - &search, - log_basis, - fold_level, - r, - )? + let Some(base_candidate) = recursive_level_base_candidate_for_split( + policy, + payload_mode, + ring_challenge_cfg, + dimensions, + search, + source, + log_basis_inner, + log_basis_open, + fold_level, + r, + )? else { continue; }; - if best.as_ref().is_none_or(|(best_score, best_r, _, _)| { - recursive_candidate_order_key(score, r) - < recursive_candidate_order_key(*best_score, *best_r) - }) { - best = Some((score, r, candidate_params, next_witness_len)); + for setup_prefix in &search.setup_prefixes { + let Some((score, params, next_witness_len)) = finalize_recursive_level_candidate( + policy, + search, + setup_prefix.as_ref(), + base_candidate.clone(), + )? + else { + continue; + }; + visit(score, r, params, next_witness_len); } } + Ok(()) +} + +#[allow(clippy::too_many_arguments)] +pub(crate) fn derive_candidate_level_params( + setup_prefix_cache: Option<&mut SetupPrefixSearchCache>, + policy: &PlannerPolicy, + payload_mode: akita_types::CommitmentPayloadMode, + ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, + dimensions: RingDimensionCandidate<'_>, + current_witness_len: usize, + source: crate::InnerBasisSource, + log_basis_inner: u32, + log_basis_open: u32, + fold_level: usize, + incoming_setup_prefix: Option, +) -> Result, AkitaError> { + let Some(search) = prepare_recursive_level_search( + setup_prefix_cache, + policy, + ring_challenge_cfg, + dimensions, + current_witness_len, + log_basis_open, + fold_level, + incoming_setup_prefix, + )? + else { + return Ok(None); + }; + + // Larger `r` wins exact score ties inside the policy-selected domain. + let mut best: Option<(LayoutCandidateScore, usize, CommittedGroupParams, usize)> = None; + let best_score = std::cell::Cell::new(None::); + walk_recursive_splits( + policy, + payload_mode, + ring_challenge_cfg, + dimensions, + &search, + source, + log_basis_inner, + log_basis_open, + fold_level, + |_, bounds| { + best_score + .get() + .is_none_or(|score| bounds.score.is_none_or(|bound| bound <= score.0)) + }, + |score, r, candidate_params, next_witness_len| { + if best.as_ref().is_none_or(|(best_score, best_r, _, _)| { + recursive_candidate_order_key(score, r) + < recursive_candidate_order_key(*best_score, *best_r) + }) { + best_score.set(Some(score)); + best = Some((score, r, candidate_params, next_witness_len)); + } + }, + )?; let Some((_, _, candidate_params, next_witness_len)) = best else { return Ok(None); @@ -475,23 +600,33 @@ pub(crate) fn derive_candidate_level_params( Ok(Some((candidate_params, next_witness_len))) } +/// Derive the candidate frontier over recursive splits. +/// +/// This is exhaustive through [`EXHAUSTIVE_SPLIT_VARIABLE_LIMIT`] reduced +/// variables and intentionally bounded above that threshold. Large states use +/// [`recursive_split_search_domain`] to keep catalog generation +/// tractable. #[allow(clippy::too_many_arguments)] -pub(crate) fn derive_candidate_level_params_all_splits( +pub(crate) fn derive_candidate_level_params_split_frontier( + setup_prefix_cache: Option<&mut SetupPrefixSearchCache>, policy: &PlannerPolicy, payload_mode: akita_types::CommitmentPayloadMode, ring_challenge_cfg: &akita_challenges::SparseChallengeConfig, dimensions: RingDimensionCandidate<'_>, current_witness_len: usize, - log_basis: u32, + source: crate::InnerBasisSource, + log_basis_inner: u32, + log_basis_open: u32, fold_level: usize, incoming_setup_prefix: Option, ) -> Result, AkitaError> { let Some(search) = prepare_recursive_level_search( + setup_prefix_cache, policy, ring_challenge_cfg, dimensions, current_witness_len, - log_basis, + log_basis_open, fold_level, incoming_setup_prefix, )? @@ -499,23 +634,26 @@ pub(crate) fn derive_candidate_level_params_all_splits( return Ok(Vec::new()); }; let mut candidates = Vec::new(); - for block_index_bits in (1..search.reduced_vars).rev() { - let Some((_, params, next_witness_len)) = recursive_level_candidate_for_split( - policy, - payload_mode, - ring_challenge_cfg, - dimensions, - &search, - log_basis, - fold_level, - block_index_bits, - )? - else { - continue; - }; - if next_witness_len < current_witness_len { - candidates.push((params, next_witness_len)); - } - } + walk_recursive_splits( + policy, + payload_mode, + ring_challenge_cfg, + dimensions, + &search, + source, + log_basis_inner, + log_basis_open, + fold_level, + |_, bounds| { + bounds + .witness_body + .is_none_or(|bound| bound < current_witness_len) + }, + |_, _, params, next_witness_len| { + if next_witness_len < current_witness_len { + candidates.push((params, next_witness_len)); + } + }, + )?; Ok(candidates) } diff --git a/crates/akita-planner/src/schedule_params/candidate/setup_prefix.rs b/crates/akita-planner/src/schedule_params/candidate/setup_prefix.rs index e8e374b1c..d39c26c83 100644 --- a/crates/akita-planner/src/schedule_params/candidate/setup_prefix.rs +++ b/crates/akita-planner/src/schedule_params/candidate/setup_prefix.rs @@ -1,4 +1,22 @@ use super::*; +use akita_types::CompressionChainPlan; +use std::collections::HashMap; +use std::sync::Arc; + +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +struct SetupPrefixSearchKey { + ring_challenge: SparseChallengeConfig, + log_basis_open: u32, + n_prefix: usize, + num_chunks: usize, + inner_ring_dimension: usize, + outer_ring_dimension: usize, +} + +#[derive(Default)] +pub(crate) struct SetupPrefixSearchCache { + entries: HashMap>, +} fn checked_power_of_two_vars(field_len: usize, context: &'static str) -> Result { if field_len == 0 { @@ -13,16 +31,27 @@ fn checked_power_of_two_vars(field_len: usize, context: &'static str) -> Result< } #[allow(clippy::too_many_arguments)] -pub(in crate::schedule_params) fn derive_setup_prefix_group( +pub(in crate::schedule_params) fn derive_setup_prefix_groups( + cache: &mut SetupPrefixSearchCache, policy: &PlannerPolicy, ring_challenge_cfg: &SparseChallengeConfig, - log_basis_outer: u32, log_basis_open: u32, n_prefix: usize, num_chunks: usize, inner_ring_dimension: usize, outer_ring_dimension: usize, -) -> Result, AkitaError> { +) -> Result, AkitaError> { + let cache_key = SetupPrefixSearchKey { + ring_challenge: *ring_challenge_cfg, + log_basis_open, + n_prefix, + num_chunks, + inner_ring_dimension, + outer_ring_dimension, + }; + if let Some(cached) = cache.entries.get(&cache_key) { + return Ok(cached.to_vec()); + } if outer_ring_dimension == 0 || !outer_ring_dimension.is_power_of_two() || !inner_ring_dimension.is_multiple_of(outer_ring_dimension) @@ -42,162 +71,213 @@ pub(in crate::schedule_params) fn derive_setup_prefix_group( "setup prefix length must be a multiple of the ring dimension".to_string(), )); } - if log_basis_outer != log_basis_open { - return Err(AkitaError::InvalidSetup( - "setup-prefix checkpoint requires one consuming inner/outer/open basis".to_string(), - )); - } let ring_slots = n_prefix / inner_ring_dimension; let reduced_vars = checked_power_of_two_vars(ring_slots, "setup prefix ring slots")?; let prefix_num_vars = checked_power_of_two_vars(n_prefix, "setup prefix field length")?; let family = policy.sis_modulus_profile; let d = inner_ring_dimension; - let outer_decomp = DecompositionParams { - log_basis: log_basis_outer, - ..policy.decomposition - }; let open_decomp = DecompositionParams { log_basis: log_basis_open, ..policy.decomposition }; - let num_digits_outer = num_digits_open(outer_decomp); + let num_digits_outer = num_digits_open(open_decomp); let num_digits_open_val = num_digits_open(open_decomp); - let mut best: Option<(LayoutCandidateScore, PrecommittedLevelParams)> = None; + let mut frontier: Vec<( + [usize; 2], + Vec, + LayoutCandidateScore, + PrecommittedLevelParams, + )> = Vec::new(); - // The current protocol has one Stage-1 range polynomial. Until role-specific - // range proofs exist, setup-prefix source, commitment, and opening digits use - // the consuming fold's certified basis and only block geometry is searched. - let log_basis_inner = log_basis_open; - let inner_decomp = DecompositionParams { - log_basis: log_basis_inner, - ..policy.decomposition - }; - let num_digits_inner = num_digits_setup_prefix_commit(inner_decomp); - for block_index_bits in (0..=reduced_vars).rev() { - let Some(num_live_blocks) = 1usize.checked_shl(block_index_bits as u32) else { - continue; - }; - let position_index_bits = reduced_vars - block_index_bits; - let Some(num_positions_per_block) = 1usize.checked_shl(position_index_bits as u32) else { - continue; - }; - let Some(width_s) = - decomposed_s_block_ring_count(num_positions_per_block, num_digits_inner) - else { - continue; - }; - let Some(num_fold_coeffs) = width_s - .checked_mul(d) - .and_then(|count| count.checked_mul(num_chunks)) - else { - continue; - }; - let fold_policy = BalancedSignedDigitFoldPolicy::preserving_existing_behavior( - policy.decomposition.field_bits(), - FoldWitnessNorms::bounded(inner_decomp.log_basis, d), - ); - let Ok(num_digits_fold) = fold_policy.num_digits_fold(HonestFoldSizingQuery { - ring_dimension: d, - num_claims: 1, - num_live_blocks, - num_chunks, - num_fold_coeffs, - log_basis: log_basis_open, - challenge_config: ring_challenge_cfg, - }) else { - continue; - }; - let Some(norm_s) = rounded_up_role_a_inf_norm( - policy.sis_security_policy, - policy.sis_table_digest, - family, - d, - log_basis_open, - ring_challenge_cfg, - num_digits_fold, - policy.ring_subfield_norm_bound, - ) else { - continue; - }; - let Ok(inner_commit_matrix) = InnerCommitMatrixParams::try_new_with_min_rank( - sis_key_at_dimension( - policy, - akita_types::SisMatrixRole::Inner, - inner_ring_dimension, - norm_s, - ), - width_s, - ) else { - continue; - }; - let Some(norm_t) = rounded_up_collision_inf_norm( - policy.sis_security_policy, - family, - akita_types::SisMatrixRole::Outer, - outer_ring_dimension, - log_basis_open, - ) else { - continue; - }; - let Some(width_t) = decomposed_t_ring_count( - inner_commit_matrix.output_rank(), - num_digits_outer, - num_live_blocks, - 1, - ) - .and_then(|width| width.checked_mul(d / outer_ring_dimension)) else { - continue; + let (inner_basis_min, inner_basis_max) = crate::InnerBasisSource::RawCoefficients { + log_bound: policy.decomposition.field_bits(), + } + .search_range(policy)?; + for log_basis_inner in inner_basis_min..=inner_basis_max { + let inner_decomp = DecompositionParams { + log_basis: log_basis_inner, + ..policy.decomposition }; - let Ok(outer_commit_matrix) = OuterCommitMatrixParams::try_new_with_min_rank( - sis_key_at_dimension( - policy, + let num_digits_inner = + num_digits_inner_for_bound(inner_decomp, policy.decomposition.field_bits()); + for block_index_bits in (0..=reduced_vars).rev() { + let Some(num_live_blocks) = 1usize.checked_shl(block_index_bits as u32) else { + continue; + }; + let position_index_bits = reduced_vars - block_index_bits; + let Some(num_positions_per_block) = 1usize.checked_shl(position_index_bits as u32) + else { + continue; + }; + if num_live_blocks < num_chunks { + continue; + } + let Some(width_s) = + decomposed_s_block_ring_count(num_positions_per_block, num_digits_inner) + else { + continue; + }; + let Some(num_fold_coeffs) = width_s + .checked_mul(d) + .and_then(|count| count.checked_mul(num_chunks)) + else { + continue; + }; + let fold_policy = BalancedSignedDigitFoldPolicy::preserving_existing_behavior( + policy.decomposition.field_bits(), + FoldWitnessNorms::bounded(inner_decomp.log_basis, d), + ); + let Ok(num_digits_fold) = fold_policy.num_digits_fold(HonestFoldSizingQuery { + ring_dimension: d, + num_claims: 1, + num_live_blocks, + num_chunks, + num_fold_coeffs, + witness_norms: FoldWitnessNorms::bounded(log_basis_inner, d), + log_basis_response: log_basis_open, + challenge_config: ring_challenge_cfg, + }) else { + continue; + }; + let Some(norm_s) = rounded_up_role_a_inf_norm( + policy.sis_security_policy, + policy.sis_table_digest, + family, + d, + log_basis_open, + ring_challenge_cfg, + num_digits_fold, + policy.ring_subfield_norm_bound, + ) else { + continue; + }; + let Ok(inner_commit_matrix) = InnerCommitMatrixParams::try_new_with_min_rank( + sis_key_at_dimension( + policy, + akita_types::SisMatrixRole::Inner, + inner_ring_dimension, + norm_s, + ), + width_s, + ) else { + continue; + }; + let Some(norm_t) = rounded_up_collision_inf_norm( + policy.sis_security_policy, + family, akita_types::SisMatrixRole::Outer, outer_ring_dimension, - norm_t, - ), - width_t, - ) else { - continue; - }; - let layout = CommittedGroupProfile { - version: CommittedGroupProfile::VERSION, - group: PolynomialGroupLayout::singleton(prefix_num_vars), - num_live_ring_elements_per_claim: ring_slots, - num_positions_per_block, - num_live_blocks, - log_basis_inner, - num_digits_inner, - inner_commit_matrix, - log_basis_outer, - num_digits_outer, - outer_commit_matrix, - }; - let params = PrecommittedLevelParams { - layout, - log_basis_open, - fold_challenge_config: *ring_challenge_cfg, - num_digits_open: num_digits_open_val, - num_digits_fold, - }; - let physical_width = grouped_segment_rings( - 1, - num_live_blocks, - num_chunks, - num_positions_per_block, - params.layout.inner_commit_matrix.output_rank(), - num_digits_inner, - num_digits_outer, - num_digits_open_val, - num_digits_fold, - )?; - let score = layout_candidate_score(physical_width, num_live_blocks, num_chunks)?; - if best - .as_ref() - .is_none_or(|(best_score, _)| score < *best_score) - { - best = Some((score, params)); + log_basis_open, + ) else { + continue; + }; + let Some(width_t) = decomposed_t_ring_count( + inner_commit_matrix.output_rank(), + num_digits_outer, + num_live_blocks, + 1, + ) + .and_then(|width| width.checked_mul(d / outer_ring_dimension)) else { + continue; + }; + let Ok(outer_commit_matrix) = OuterCommitMatrixParams::try_new_with_min_rank( + sis_key_at_dimension( + policy, + akita_types::SisMatrixRole::Outer, + outer_ring_dimension, + norm_t, + ), + width_t, + ) else { + continue; + }; + let layout = CommittedGroupProfile { + version: CommittedGroupProfile::VERSION, + group: PolynomialGroupLayout::singleton(prefix_num_vars), + num_live_ring_elements_per_claim: ring_slots, + num_positions_per_block, + num_live_blocks, + log_basis_inner, + num_digits_inner, + inner_commit_matrix, + log_basis_outer: log_basis_open, + num_digits_outer, + outer_commit_matrix, + }; + let params = PrecommittedLevelParams { + layout, + log_basis_open, + fold_challenge_config: *ring_challenge_cfg, + num_digits_open: num_digits_open_val, + num_digits_fold, + }; + let physical_width = akita_schedules::planner_support::grouped_segment_rings( + 1, + num_live_blocks, + num_chunks, + num_positions_per_block, + params.layout.inner_commit_matrix.output_rank(), + num_digits_inner, + num_digits_outer, + num_digits_open_val, + num_digits_fold, + )?; + let score = layout_candidate_score(physical_width, num_live_blocks, num_chunks)?; + let compression_source_coefficients = params + .layout + .outer_commit_matrix + .output_rank() + .checked_mul(params.layout.outer_commit_matrix.ring_dimension()) + .ok_or_else(|| { + AkitaError::InvalidSetup( + "setup-prefix outer compression source overflow".into(), + ) + })?; + if CompressionChainPlan::try_for_complete_source( + params.layout.outer_commit_matrix.sis_modulus_profile(), + compression_source_coefficients, + )? + .is_none() + { + continue; + } + let setup_fields = akita_types::setup_prefix_slot_field_elements( + &akita_types::setup_prefix_slot_id(n_prefix, params.clone()), + )?; + let padded_setup_fields = padded_setup_prefix_len(setup_fields); + let coords = [physical_width, padded_setup_fields]; + let descriptor = params.canonical_descriptor_bytes(); + crate::schedule_params::pareto::insert( + &mut frontier, + (coords, descriptor, score, params), + |(best, best_descriptor, best_score, _), + (candidate, candidate_descriptor, candidate_score, _)| { + let best_tie = (*best_score, best_descriptor.as_slice()); + let candidate_tie = (*candidate_score, candidate_descriptor.as_slice()); + crate::schedule_params::pareto::canonical_dominates( + best, + &best_tie, + candidate, + &candidate_tie, + ) + }, + ); } } - Ok(best.map(|(_, params)| params)) + frontier.sort_by_key(|(coords, _, score, params)| { + ( + coords[0], + coords[1], + *score, + params.layout.log_basis_inner, + params.layout.num_live_blocks, + ) + }); + let result: Arc<[PrecommittedLevelParams]> = frontier + .into_iter() + .map(|(_, _, _, params)| params) + .collect(); + cache.entries.insert(cache_key, Arc::clone(&result)); + Ok(result.to_vec()) } diff --git a/crates/akita-planner/src/schedule_params/objective.rs b/crates/akita-planner/src/schedule_params/objective.rs index 0f2c80e8e..13c0c04ab 100644 --- a/crates/akita-planner/src/schedule_params/objective.rs +++ b/crates/akita-planner/src/schedule_params/objective.rs @@ -17,7 +17,8 @@ pub(crate) enum CompleteScheduleScore { descriptor: Vec, }, RecursiveSetup { - first_direct_setup_field_len: usize, + /// Power-of-two allocation covering the first non-offloaded setup prefix. + first_direct_setup_capacity: usize, proof_bytes: usize, setup_field_elements: usize, descriptor: Vec, @@ -29,30 +30,31 @@ pub(crate) fn complete_schedule_score( candidate: &ScheduleCandidate, ) -> Result { let descriptor = candidate_schedule_descriptor_bytes(candidate)?; + let metrics = candidate.metrics(); match policy.selection_policy { SelectionPolicyId::MinEstimatedProofPayload => Ok(CompleteScheduleScore::Direct { - proof_bytes: candidate.total_bytes, - setup_field_elements: candidate.setup_field_elements, + proof_bytes: metrics.proof_bytes, + setup_field_elements: metrics.setup_field_elements, descriptor, }), SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload => { Ok(CompleteScheduleScore::MixedDimension { - setup_field_elements: candidate.setup_field_elements, - proof_bytes: candidate.total_bytes, + setup_field_elements: metrics.setup_field_elements, + proof_bytes: metrics.proof_bytes, descriptor, }) } SelectionPolicyId::MinFirstDirectSetupThenPayload => { - let first_direct_setup_field_len = + let _first_direct_setup_field_len = candidate.first_direct_setup_field_len.ok_or_else(|| { AkitaError::InvalidSetup( "recursive setup candidate is missing its first direct setup size".into(), ) })?; Ok(CompleteScheduleScore::RecursiveSetup { - first_direct_setup_field_len, - proof_bytes: candidate.total_bytes, - setup_field_elements: candidate.setup_field_elements, + first_direct_setup_capacity: metrics.first_direct_setup_capacity.field_elements(), + proof_bytes: metrics.proof_bytes, + setup_field_elements: metrics.setup_field_elements, descriptor, }) } diff --git a/crates/akita-planner/src/schedule_params/pareto.rs b/crates/akita-planner/src/schedule_params/pareto.rs new file mode 100644 index 000000000..0a1d00cca --- /dev/null +++ b/crates/akita-planner/src/schedule_params/pareto.rs @@ -0,0 +1,77 @@ +/// Insert one candidate into a Pareto frontier. +/// +/// `dominates(left, right)` owns the objective's exact equivalence class, +/// coordinate ordering, and canonical tie-break. The skip/retain dual is kept +/// here so callers cannot hand-maintain inconsistent logical negations. +pub(super) fn insert( + frontier: &mut Vec, + candidate: T, + dominates: impl Fn(&T, &T) -> bool, +) -> bool { + if frontier.iter().any(|other| dominates(other, &candidate)) { + return false; + } + frontier.retain(|other| !dominates(&candidate, other)); + frontier.push(candidate); + true +} + +/// Componentwise minimization with a canonical ordered tie-key. +pub(super) fn canonical_dominates( + left_coords: &[usize; N], + left_tie_key: &K, + right_coords: &[usize; N], + right_tie_key: &K, +) -> bool { + left_coords + .iter() + .zip(right_coords) + .all(|(left, right)| left <= right) + && (left_coords != right_coords || left_tie_key <= right_tie_key) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn canonical_tie_keeps_only_smallest_descriptor() { + let mut frontier = Vec::new(); + let dominates = |left: &([usize; 2], Vec), right: &([usize; 2], Vec)| { + canonical_dominates(&left.0, &left.1, &right.0, &right.1) + }; + assert!(insert(&mut frontier, ([2, 3], vec![2]), dominates)); + assert!(insert(&mut frontier, ([2, 3], vec![1]), dominates)); + assert!(!insert(&mut frontier, ([2, 3], vec![3]), dominates)); + assert_eq!(frontier, vec![([2, 3], vec![1])]); + } + + #[test] + fn incomparable_coordinates_are_retained() { + let mut frontier = Vec::new(); + let dominates = |left: &([usize; 2], Vec), right: &([usize; 2], Vec)| { + canonical_dominates(&left.0, &left.1, &right.0, &right.1) + }; + assert!(insert(&mut frontier, ([1, 4], vec![1]), dominates)); + assert!(insert(&mut frontier, ([4, 1], vec![2]), dominates)); + assert_eq!(frontier.len(), 2); + } + + #[test] + fn composite_tie_key_uses_score_before_descriptor() { + let low_score = (4usize, vec![9u8]); + let low_descriptor = (5usize, vec![1u8]); + assert!(canonical_dominates( + &[2, 3], + &low_score, + &[2, 3], + &low_descriptor, + )); + assert!(!canonical_dominates( + &[2, 3], + &low_descriptor, + &[2, 3], + &low_score, + )); + } +} diff --git a/crates/akita-planner/src/schedule_params/suffix_dp.rs b/crates/akita-planner/src/schedule_params/suffix_dp.rs index 2fd0d7ec2..985515aee 100644 --- a/crates/akita-planner/src/schedule_params/suffix_dp.rs +++ b/crates/akita-planner/src/schedule_params/suffix_dp.rs @@ -1,5 +1,6 @@ use std::{ - collections::{BTreeMap, HashMap}, + collections::{hash_map::Entry, BTreeMap, HashMap, VecDeque}, + num::NonZeroUsize, sync::Arc, }; @@ -13,182 +14,22 @@ use akita_types::{ use crate::{planner::root_level_candidates_for_basis, PlannerPolicy}; use super::{ - derive_candidate_level_params, derive_candidate_level_params_all_splits, dimension_candidates, - level_setup_field_elements, stage3_payload_bytes_for_successor, suffix_opening_layout, - terminal_setup_field_elements, CandidateFoldStep, CandidateTerminalResponse, MixedScore, - ScheduleCandidate, + derive_candidate_level_params, derive_candidate_level_params_split_frontier, + dimension_candidates, level_setup_field_elements, stage3_payload_bytes_for_successor, + suffix_opening_layout, terminal_setup_field_elements, CandidateFoldStep, + CandidateTerminalResponse, MixedScore, ScheduleCandidate, SetupPrefixSearchCache, }; use akita_schedules::planner_support::MAX_RECURSION_DEPTH; -/// Result of the suffix DP at one state. Each selection objective retains the -/// candidates its parent needs because proof-size and setup-envelope pricing -/// depend on the child's first step: -/// -/// - `best_by_first_direct_setup_per_lb` — lexicographically best fold-first -/// schedule by first direct setup scan and then proof payload, per first-fold -/// `log_basis`. An entry with no ordinary folds terminates directly on the -/// current witness; otherwise it consumes `incoming_setup_prefix` when one -/// is present. -/// - `best_by_payload_per_lb` — smallest-payload fold-first schedule per -/// first-fold `log_basis`, used after an earlier direct edge has fixed the -/// setup-size objective. -/// - `mixed_frontier` — nondominated setup-envelope/proof candidates for the -/// direct adaptive-dimension objective. -#[derive(Clone)] -pub(crate) struct SuffixResult { - pub(crate) best_by_first_direct_setup_per_lb: BTreeMap, - pub(crate) best_by_payload_per_lb: BTreeMap, - /// Nondominated setup-envelope/proof candidates used by adaptive scalar - /// planning. Candidates with different first folds remain distinct because - /// the parent proof price and canonical descriptor can distinguish them. - pub(crate) mixed_frontier: Vec, -} - -fn mixed_score(candidate: &ScheduleCandidate) -> MixedScore { - MixedScore { - setup_field_elements: candidate.setup_field_elements, - proof_bytes: candidate.total_bytes, - } -} - -fn dominates_mixed_score(left: MixedScore, right: MixedScore) -> bool { - left.setup_field_elements <= right.setup_field_elements - // A setup-only improvement cannot prune `right`: a parent can mask - // both setup footprints, leaving proof bytes and the descriptor to - // decide the complete schedule. - && left.proof_bytes < right.proof_bytes -} - -fn insert_mixed_frontier( - policy: &PlannerPolicy, - frontier: &mut Vec, - candidate: ScheduleCandidate, -) { - if policy.selection_policy - != crate::SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload - || !policy.admits_setup_field_elements(candidate.setup_field_elements) - { - return; - } - let same_first_fold = - |other: &ScheduleCandidate| other.first_fold_params() == candidate.first_fold_params(); - if frontier.iter().any(|other| { - same_first_fold(other) && dominates_mixed_score(mixed_score(other), mixed_score(&candidate)) - }) { - return; - } - frontier.retain(|other| { - !same_first_fold(other) - || !dominates_mixed_score(mixed_score(&candidate), mixed_score(other)) - }); - frontier.push(candidate); -} +mod frontier; +mod prune; +mod state; +mod terminal; -/// Parent-visible first-fold class. A parent edge prices the child's outgoing -/// commitment payload, so suffixes with different first payload sizes are not -/// interchangeable even when they use the same digit basis. -#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] -pub(crate) struct FirstFoldKey { - log_basis: u32, - outer_payload_bytes: usize, - stage3_payload_bytes: usize, -} - -#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] -struct ParentPayloadKey { - outer_payload_bytes: usize, - stage3_payload_bytes: usize, -} - -/// Like [`terminal_direct_suffix_cost`], but returns `None` when the fold at -/// `terminal_fold_level` is multi-chunk. The suffix DP uses this to skip the -/// fold-then-direct branch without aborting fold-then-fold exploration. -pub(super) fn try_terminal_direct_suffix_cost( - input_witness_len: usize, - terminal_lp: &CommittedGroupParams, - field_bits: u32, - key: PolynomialGroupLayout, - terminal_fold_level: usize, - opening_layout: Option<&OpeningClaimsLayout>, -) -> Result, AkitaError> { - if terminal_lp.witness_chunk.num_chunks > 1 { - return Ok(None); - } - let result = terminal_direct_suffix_cost( - input_witness_len, - terminal_lp, - field_bits, - key, - terminal_fold_level, - opening_layout, - ); - match result { - Ok(candidate) => Ok(Some(candidate)), - // Candidate construction is an optimization search. A geometry whose - // fixed inner matrix cannot admit the directly checked terminal response is - // infeasible, not a fatal planner error. - Err(AkitaError::InvalidSetup(_)) => Ok(None), - Err(error) => Err(error), - } -} - -pub(crate) fn terminal_direct_suffix_cost( - input_witness_len: usize, - terminal_lp: &CommittedGroupParams, - field_bits: u32, - key: PolynomialGroupLayout, - terminal_fold_level: usize, - opening_layout: Option<&OpeningClaimsLayout>, -) -> Result<(CandidateTerminalResponse, usize), AkitaError> { - // Scalar same-point root fold: polynomial count at the root, 1 recursively. - let num_polynomials = if terminal_fold_level == 0 { - key.num_polynomials() - } else { - 1 - }; - // The terminal-direct (cleartext) witness is single-chunk by construction: - // the prover emits the global folded response and one shared `r̂` tail, so - // chunking the cleartext tail is unsupported. The last fold level must be - // single-chunk (only the leading activated levels are chunked). Reject here - // to match `resolve.rs` and avoid a cryptic prover-side layout mismatch. - if terminal_lp.witness_chunk.num_chunks > 1 { - return Err(AkitaError::InvalidSetup( - "terminal-direct witness does not support a multi-chunk last fold level".to_string(), - )); - } - if opening_layout.is_some() || num_polynomials != 1 || terminal_lp.has_precommitted_groups() { - return Err(AkitaError::InvalidSetup( - "terminal direct response must be a scalar flat fold".to_string(), - )); - } - let (terminal_params, admission_cap) = - akita_types::TerminalCommittedGroupParams::try_from_expanded_group(terminal_lp.clone())?; - let witness_shape = TerminalResponseShape::derive(&terminal_params, admission_cap)?; - let terminal_bytes = terminal_response_bytes(field_bits, &witness_shape); - let direct = CandidateTerminalResponse { - params: terminal_params, - sparse_challenge_config: terminal_lp.fold_challenge_config, - input_witness_len, - estimated_direct_payload_bytes: 0, - response_shape: witness_shape, - estimated_payload_bytes: terminal_bytes, - }; - Ok((direct, terminal_bytes)) -} - -pub(crate) type ScheduleMemo = HashMap< - ( - usize, - usize, - u32, - usize, - usize, - usize, - usize, - akita_types::CommitmentPayloadPhase, - ), - Arc, ->; +use frontier::{consider_child_suffixes, FrontierProjection, ProjectedFrontier}; +use state::*; +pub(crate) use state::{ScheduleMemo, SuffixCtx, SuffixState}; +pub(crate) use terminal::try_terminal_direct_suffix_cost; fn offloaded_witness_contracts( input_witness_len: usize, @@ -218,7 +59,7 @@ fn offloaded_witness_contracts( struct ChildEdge<'a> { policy: &'a PlannerPolicy, - candidate_params: &'a CommittedGroupParams, + candidate_params: Arc, current_witness_len: usize, next_witness_len: usize, natural_setup_field_len: usize, @@ -229,86 +70,43 @@ struct ChildEdge<'a> { setup_field_budget: Option, } -#[derive(Clone, Copy)] -struct ChildObjectives { - first_direct_setup_then_payload: bool, - payload: bool, +struct PendingScheduleCandidate { + first_direct_setup_field_len: Option, + total_bytes: usize, + setup_field_elements: usize, + first_fold: CandidateFoldStep, + suffix_folds: super::CandidateFoldChain, + terminal: Arc, } -fn consider_child_suffixes( - edge: &ChildEdge<'_>, - child_candidates: &BTreeMap, - objectives: ChildObjectives, - best_by_setup: &mut BTreeMap, - best_by_payload: &mut BTreeMap, -) -> Result<(), AkitaError> { - for suffix in child_candidates.values() { - let Some(candidate) = child_choice(edge, suffix)? else { - continue; - }; - update_candidate_frontiers( - edge.policy, - candidate, - objectives, - best_by_setup, - best_by_payload, - )?; +impl PendingScheduleCandidate { + fn metrics(&self) -> super::CandidateMetrics { + super::CandidateMetrics { + first_direct_setup_capacity: self + .first_direct_setup_field_len + .map_or(super::SetupPrefixCapacity::MAX, |natural_len| { + super::SetupPrefixCapacity::for_natural_len(natural_len.get()) + }), + proof_bytes: self.total_bytes, + setup_field_elements: self.setup_field_elements, + } } - Ok(()) -} - -fn parent_payload_key( - policy: &PlannerPolicy, - candidate: &ScheduleCandidate, -) -> Result { - let Some(first) = candidate.first_fold_params() else { - return Ok(ParentPayloadKey { - outer_payload_bytes: 0, - stage3_payload_bytes: 0, - }); - }; - let outer_payload_bytes = first - .outer_payload_geometry()? - .transmitted_coefficients() - .checked_mul(akita_types::layout::field_bytes( - policy.decomposition.field_bits(), - )) - .ok_or_else(|| AkitaError::InvalidSetup("first-fold payload size overflow".into()))?; - Ok(ParentPayloadKey { - outer_payload_bytes, - stage3_payload_bytes: stage3_payload_bytes_for_successor(policy, Some(first))?, - }) -} -fn update_candidate_frontiers( - policy: &PlannerPolicy, - candidate: ScheduleCandidate, - objectives: ChildObjectives, - best_by_setup: &mut BTreeMap, - best_by_payload: &mut BTreeMap, -) -> Result<(), AkitaError> { - let parent_key = parent_payload_key(policy, &candidate)?; - let improves_setup = objectives.first_direct_setup_then_payload - && best_by_setup.get(&parent_key).is_none_or(|best| { - candidate.recursive_setup_frontier_score() < best.recursive_setup_frontier_score() - }); - let improves_payload = objectives.payload - && best_by_payload - .get(&parent_key) - .is_none_or(|best| candidate.direct_frontier_score() < best.direct_frontier_score()); - if improves_setup { - best_by_setup.insert(parent_key, candidate.clone()); - } - if improves_payload { - best_by_payload.insert(parent_key, candidate); + fn into_candidate(self) -> ScheduleCandidate { + ScheduleCandidate { + first_direct_setup_field_len: self.first_direct_setup_field_len, + total_bytes: self.total_bytes, + setup_field_elements: self.setup_field_elements, + folds: self.suffix_folds.prepend(self.first_fold), + terminal: self.terminal, + } } - Ok(()) } fn child_choice( edge: &ChildEdge<'_>, suffix: &ScheduleCandidate, -) -> Result, AkitaError> { +) -> Result, AkitaError> { let child_is_terminal = suffix.folds.is_empty(); if edge.require_child_fold && child_is_terminal { return Ok(None); @@ -317,7 +115,9 @@ fn child_choice( if child_is_terminal || suffix.folds.len() == 1 { return Ok(None); } - if suffix.first_direct_setup_field_len_or_max() >= edge.natural_setup_field_len { + if suffix.metrics().first_direct_setup_capacity + >= super::SetupPrefixCapacity::for_natural_len(edge.natural_setup_field_len) + { return Ok(None); } } @@ -325,7 +125,7 @@ fn child_choice( let direct_payload_bytes = level_proof_bytes( edge.policy.decomposition.field_bits(), edge.policy.challenge_field_bits()?, - edge.candidate_params, + &edge.candidate_params, suffix.first_fold_params(), edge.next_witness_len, Some(if child_is_terminal { @@ -359,22 +159,25 @@ fn child_choice( let first_direct_setup_field_len = if edge.offloaded { suffix.first_direct_setup_field_len } else { - Some(edge.natural_setup_field_len) + Some( + NonZeroUsize::new(edge.natural_setup_field_len).ok_or_else(|| { + AkitaError::InvalidSetup("direct setup field length must be nonzero".into()) + })?, + ) }; - let mut folds = Vec::with_capacity(1 + suffix.folds.len()); - folds.push(CandidateFoldStep { - params: edge.candidate_params.clone(), + let first_fold = CandidateFoldStep { + params: Arc::clone(&edge.candidate_params), input_witness_len: edge.current_witness_len, output_witness_len: edge.next_witness_len, estimated_direct_payload_bytes: direct_payload_bytes, estimated_stage3_payload_bytes: stage3_payload_bytes, - }); - folds.extend(suffix.folds.iter().cloned()); - Ok(Some(ScheduleCandidate { + }; + Ok(Some(PendingScheduleCandidate { first_direct_setup_field_len, total_bytes, setup_field_elements, - folds, + first_fold, + suffix_folds: suffix.folds.clone(), terminal: suffix.terminal.clone(), })) } @@ -388,75 +191,11 @@ fn consider_mixed_child_suffixes( let Some(candidate) = child_choice(edge, suffix)? else { continue; }; - insert_mixed_frontier(edge.policy, frontier, candidate); + insert_mixed_frontier(edge.policy, frontier, candidate.into_candidate()); } Ok(()) } -fn empty_suffix_result() -> Arc { - Arc::new(SuffixResult { - best_by_first_direct_setup_per_lb: BTreeMap::new(), - best_by_payload_per_lb: BTreeMap::new(), - mixed_frontier: Vec::new(), - }) -} - -/// DP-invariant inputs for the suffix search. -/// -/// `policy`, `ring_challenge_cfg`, and `num_vars` are constant across the whole -/// recursion, so they are carried in one context value rather than as -/// per-call arguments (keeps the recursive signature small). -#[derive(Clone, Copy)] -pub(crate) struct SuffixCtx<'a> { - pub(crate) policy: &'a PlannerPolicy, - pub(crate) default_ring_challenge_cfg: &'a akita_challenges::SparseChallengeConfig, - pub(crate) ring_challenge_config: - &'a dyn Fn(usize) -> Result, - pub(crate) num_vars: usize, - pub(crate) key: PolynomialGroupLayout, - pub(crate) setup_field_budget: Option, - pub(crate) root_lookup_key: Option<&'a AkitaScheduleLookupKey>, - pub(crate) root_honest_fold_policy: Option, - pub(crate) precommitted_honest_fold_policies: &'a [akita_types::sis::HonestFoldPolicySpec], - pub(crate) level_zero_is_root: bool, -} - -#[derive(Clone, Copy)] -pub(crate) struct SuffixState { - pub(crate) level: usize, - pub(crate) current_witness_len: usize, - pub(crate) current_lb: u32, - pub(crate) incoming_setup_prefix: Option, - pub(crate) dimension_ceiling: CommitmentRingDims, - pub(crate) payload_phase: akita_types::CommitmentPayloadPhase, -} - -impl SuffixState { - fn memo_key( - self, - ) -> ( - usize, - usize, - u32, - usize, - usize, - usize, - usize, - akita_types::CommitmentPayloadPhase, - ) { - ( - self.level, - self.current_witness_len, - self.current_lb, - self.incoming_setup_prefix.unwrap_or(0), - self.dimension_ceiling.d_a(), - self.dimension_ceiling.d_b(), - self.dimension_ceiling.d_d(), - self.payload_phase, - ) - } -} - #[allow(clippy::too_many_arguments)] fn price_level_candidate_with_children( ctx: &SuffixCtx<'_>, @@ -465,14 +204,24 @@ fn price_level_candidate_with_children( next_witness_len: usize, eor_bytes: usize, natural_len: usize, - direct_child: &SuffixResult, + direct_child: Option<&SuffixResult>, offloaded_child: Option<&SuffixResult>, require_child_fold: bool, - best_for_this_lb: &mut BTreeMap, - best_payload_for_this_lb: &mut BTreeMap, + frontier: &mut ProjectedFrontier, mixed_frontier: &mut Vec, ) -> Result<(), AkitaError> { let policy = ctx.policy; + // Only a prefix-consuming state is read through the setup projection by + // an offloaded parent. The top-level recursive objective also reads the + // root setup projection. Ordinary direct suffixes are consumed solely + // through the payload projection, so retaining a parallel setup winner + // there duplicates frontier work and memo ownership with no observer. + let direct_projection = + if state.incoming_setup_prefix.is_some() || (ctx.level_zero_is_root && state.level == 0) { + FrontierProjection::Both + } else { + FrontierProjection::Payload + }; // Branch A: terminate directly on the witness entering this state. // There is no alternative terminal-shaped predecessor output: the // predecessor produces one canonical witness, and the terminal inner @@ -508,22 +257,15 @@ fn price_level_candidate_with_children( })?; direct_step.estimated_direct_payload_bytes = level_proof_size; let candidate = ScheduleCandidate { - first_direct_setup_field_len: Some(natural_len), + first_direct_setup_field_len: Some(NonZeroUsize::new(natural_len).ok_or_else( + || AkitaError::InvalidSetup("direct setup field length must be nonzero".into()), + )?), total_bytes: total, setup_field_elements: terminal_setup_field_elements(&direct_step.params)?, - folds: Vec::new(), - terminal: direct_step, + folds: super::CandidateFoldChain::default(), + terminal: Arc::new(direct_step), }; - update_candidate_frontiers( - policy, - candidate.clone(), - ChildObjectives { - first_direct_setup_then_payload: true, - payload: true, - }, - best_for_this_lb, - best_payload_for_this_lb, - )?; + frontier.consider_candidate(policy, candidate.clone(), direct_projection)?; insert_mixed_frontier(policy, mixed_frontier, candidate); } } @@ -531,7 +273,7 @@ fn price_level_candidate_with_children( let level_setup_field_elements = level_setup_field_elements(candidate_params)?; let direct_edge = ChildEdge { policy, - candidate_params, + candidate_params: Arc::new(candidate_params.clone()), current_witness_len: state.current_witness_len, next_witness_len, natural_setup_field_len: natural_len, @@ -541,17 +283,22 @@ fn price_level_candidate_with_children( require_child_fold, setup_field_budget: ctx.setup_field_budget, }; - consider_child_suffixes( - &direct_edge, - &direct_child.best_by_payload_per_lb, - ChildObjectives { - first_direct_setup_then_payload: true, - payload: true, - }, - best_for_this_lb, - best_payload_for_this_lb, - )?; - consider_mixed_child_suffixes(&direct_edge, &direct_child.mixed_frontier, mixed_frontier)?; + if let Some(direct_child) = direct_child { + consider_child_suffixes( + &direct_edge, + direct_child.payload_candidates(), + state.incoming_setup_prefix, + direct_projection, + frontier, + )?; + if state.incoming_setup_prefix.is_none() { + consider_mixed_child_suffixes( + &direct_edge, + &direct_child.mixed_frontier, + mixed_frontier, + )?; + } + } if let Some(offloaded_child) = offloaded_child { let offloaded_edge = ChildEdge { offloaded: true, @@ -559,23 +306,17 @@ fn price_level_candidate_with_children( }; consider_child_suffixes( &offloaded_edge, - &offloaded_child.best_by_first_direct_setup_per_lb, - ChildObjectives { - first_direct_setup_then_payload: true, - payload: false, - }, - best_for_this_lb, - best_payload_for_this_lb, + offloaded_child.setup_candidates(), + state.incoming_setup_prefix, + FrontierProjection::FirstDirectSetup, + frontier, )?; consider_child_suffixes( &offloaded_edge, - &offloaded_child.best_by_payload_per_lb, - ChildObjectives { - first_direct_setup_then_payload: false, - payload: true, - }, - best_for_this_lb, - best_payload_for_this_lb, + offloaded_child.payload_candidates(), + state.incoming_setup_prefix, + FrontierProjection::Payload, + frontier, )?; } @@ -583,17 +324,17 @@ fn price_level_candidate_with_children( } /// Shared inputs for root-level `CommittedGroupParams` candidates. -/// Suffix DP for the optimal recursive schedule at +/// Suffix DP for the selected recursive schedule at /// `(level, current_witness_len, current_lb)`. /// -/// At each state, `best_by_first_direct_setup_per_lb` keeps one candidate per -/// `log_basis` (from +/// At each state, the projected maps keep the setup and payload winners for +/// each parent-visible first-fold key (from /// [`derive_candidate_level_params`]). A candidate may terminate on the current /// witness when there is no incoming setup prefix, or fold again and consume /// `incoming_setup_prefix` when present. Fold-again edges plan exactly one child /// state: recursive setup edges pass the outgoing setup prefix to the child, /// while direct edges plan the ordinary no-prefix child. -pub(crate) fn derive_optimal_suffix_schedule( +pub(crate) fn derive_selected_suffix_schedule( ctx: &SuffixCtx<'_>, memo: &mut ScheduleMemo, state: SuffixState, @@ -619,7 +360,7 @@ pub(crate) fn derive_optimal_suffix_schedule( dimension_ceiling, payload_phase, } = state; - let memo_key = state.memo_key(); + let memo_key = state.memo_key(policy); if depth <= MAX_RECURSION_DEPTH { if let Some(cached) = memo.get(&memo_key) { return Ok(Arc::clone(cached)); @@ -627,14 +368,17 @@ pub(crate) fn derive_optimal_suffix_schedule( } if depth > MAX_RECURSION_DEPTH { - let result = empty_suffix_result(); - memo.insert(memo_key, Arc::clone(&result)); - return Ok(result); + // Depth-overflow states are never read from the memo: the lookup above + // is deliberately restricted to admissible depths. Caching these + // write-only empty results used to evict hot exact suffixes during wide + // searches and could turn one catalog row into millions of redundant + // recomputations. + return Ok(empty_suffix_result()); } - - let mut best_by_first_direct_setup_per_lb: BTreeMap = - BTreeMap::new(); - let mut best_by_payload_per_lb: BTreeMap = BTreeMap::new(); + let retains_setup_projection = + incoming_setup_prefix.is_some() || (level_zero_is_root && level == 0); + let mut payload_only = BTreeMap::new(); + let mut setup_and_payload: BTreeMap = BTreeMap::new(); let mut mixed_frontier = Vec::new(); let root_level_key = root_lookup_key.filter(|_| level == 0); if root_level_key.is_some() && incoming_setup_prefix.is_some() { @@ -679,48 +423,72 @@ pub(crate) fn derive_optimal_suffix_schedule( incoming_setup_prefix, )?) }; - let (min_log_basis, max_log_basis) = policy.log_basis_search_range_at_level(level); - for lb in min_log_basis..=max_log_basis { - if lb < current_lb { + let inner_source = if level_zero_is_root && level == 0 { + super::root_inner_basis_source( + root_honest_fold_policy.ok_or_else(|| { + AkitaError::InvalidSetup("root batch is missing its honest fold policy".into()) + })?, + policy.decomposition.log_commit_bound, + ) + } else { + crate::InnerBasisSource::BalancedDigits { + log_basis: current_lb, + } + }; + let (min_inner_basis, max_inner_basis) = inner_source.search_range(policy)?; + let (min_open_basis, max_open_basis) = + crate::policy::log_basis_search_range_at_level(policy, level); + // Every opening basis contributes to one state frontier. In particular, + // terminal-direct candidates have no first fold and therefore share the + // `None` key; they must be compared by the canonical objective instead of + // being overwritten by the last basis visited. + let mut frontier = ProjectedFrontier::default(); + for open_lb in min_open_basis..=max_open_basis { + if open_lb < current_lb { continue; } - let mut best_for_this_lb = BTreeMap::::new(); - let mut best_payload_for_this_lb = BTreeMap::::new(); - - let (current_opening_layout, candidates, require_child_fold) = if let Some(root_key) = - root_level_key - { - let current_opening_layout = root_opening_layout.as_ref().ok_or_else(|| { + let current_opening_layout = if root_level_key.is_some() { + root_opening_layout.as_ref().ok_or_else(|| { AkitaError::InvalidSetup("root batch opening layout is missing".to_string()) - })?; - let mut candidates = Vec::new(); - for dimensions in dimension_candidates(policy, level, dimension_ceiling)? { - let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( - policy.challenge_field_bits()?, - policy.claim_ext_degree, - level, - eor_key, - current_witness_len, - dimensions.inner(), - )? - else { - continue; - }; - let ring_challenge_cfg = match dimensions { - akita_schedules::planner_support::RingDimensionCandidate::Fixed(value) - if value == CommitmentRingDims::uniform(policy.uniform_ring_dimension) => - { - *default_ring_challenge_cfg - } - _ => { - let Ok(config) = ring_challenge_config(dimensions.inner()) else { - continue; - }; - config - } - }; - candidates.extend( - root_level_candidates_for_basis( + })? + } else { + scalar_opening_layout.as_ref().ok_or_else(|| { + AkitaError::InvalidSetup("scalar suffix opening layout is missing".to_string()) + })? + }; + let require_child_fold = + root_level_key.is_some_and(|root_key| !root_key.precommitteds.is_empty()); + let mut candidates = Vec::new(); + + for inner_lb in min_inner_basis..=max_inner_basis { + if let Some(root_key) = root_level_key { + for dimensions in dimension_candidates(policy, level, dimension_ceiling)? { + let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( + policy.challenge_field_bits()?, + policy.claim_ext_degree, + level, + eor_key, + current_witness_len, + dimensions.inner(), + )? + else { + continue; + }; + let ring_challenge_cfg = match dimensions { + akita_schedules::planner_support::RingDimensionCandidate::Fixed(value) + if value + == CommitmentRingDims::uniform(policy.uniform_ring_dimension) => + { + *default_ring_challenge_cfg + } + _ => { + let Ok(config) = ring_challenge_config(dimensions.inner()) else { + continue; + }; + config + } + }; + let dimension_candidates = root_level_candidates_for_basis( root_key, root_honest_fold_policy.ok_or_else(|| { AkitaError::InvalidSetup( @@ -733,88 +501,87 @@ pub(crate) fn derive_optimal_suffix_schedule( &ring_challenge_cfg, ring_challenge_config, current_witness_len, - lb, + inner_lb, + open_lb, true, - )? - .into_iter() - .map(|(params, next_witness_len)| (params, next_witness_len, eor_bytes)), - ); - } - ( - current_opening_layout, - candidates, - !root_key.precommitteds.is_empty(), - ) - } else { - let mut candidates = Vec::new(); - let exhaustive_splits = matches!( - policy.ring_dimension_schedule_mode, - crate::RingDimensionScheduleMode::AdaptiveDimension { - num_search_levels, - .. - } if level < num_search_levels - ); - for dimensions in dimension_candidates(policy, level, dimension_ceiling)? { - let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( - policy.challenge_field_bits()?, - policy.claim_ext_degree, - level, - eor_key, - current_witness_len, - dimensions.inner(), - )? - else { - continue; - }; - let Ok(ring_challenge_cfg) = ring_challenge_config(dimensions.inner()) else { - continue; - }; - for &mode in payload_phase.candidate_modes(level, incoming_setup_prefix.is_some()) { - let level_candidates = if exhaustive_splits { - derive_candidate_level_params_all_splits( - policy, - mode, - &ring_challenge_cfg, - dimensions, - current_witness_len, - lb, - level, - incoming_setup_prefix, - )? - } else { - derive_candidate_level_params( - policy, - mode, - &ring_challenge_cfg, - dimensions, - current_witness_len, - lb, - level, - incoming_setup_prefix, - )? - .into_iter() - .collect() - }; + )?; candidates.extend( - level_candidates + dimension_candidates .into_iter() .map(|(params, next_witness_len)| { (params, next_witness_len, eor_bytes) }), ); } + } else { + for dimensions in dimension_candidates(policy, level, dimension_ceiling)? { + let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( + policy.challenge_field_bits()?, + policy.claim_ext_degree, + level, + eor_key, + current_witness_len, + dimensions.inner(), + )? + else { + continue; + }; + let Ok(ring_challenge_cfg) = ring_challenge_config(dimensions.inner()) else { + continue; + }; + for &mode in + payload_phase.candidate_modes(level, incoming_setup_prefix.is_some()) + { + let retain_split_frontier = incoming_setup_prefix.is_some() + || matches!( + policy.ring_dimension_schedule_mode, + crate::RingDimensionScheduleMode::AdaptiveDimension { + num_search_levels, + .. + } if level < num_search_levels + ); + let level_candidates = if retain_split_frontier { + derive_candidate_level_params_split_frontier( + Some(&mut memo.setup_prefixes), + policy, + mode, + &ring_challenge_cfg, + dimensions, + current_witness_len, + inner_source, + inner_lb, + open_lb, + level, + incoming_setup_prefix, + )? + } else { + derive_candidate_level_params( + Some(&mut memo.setup_prefixes), + policy, + mode, + &ring_challenge_cfg, + dimensions, + current_witness_len, + inner_source, + inner_lb, + open_lb, + level, + incoming_setup_prefix, + )? + .into_iter() + .collect() + }; + candidates.extend(level_candidates.into_iter().map( + |(params, next_witness_len)| (params, next_witness_len, eor_bytes), + )); + } + } } - if candidates.is_empty() { - continue; - } - ( - scalar_opening_layout.as_ref().ok_or_else(|| { - AkitaError::InvalidSetup("scalar suffix opening layout is missing".to_string()) - })?, - candidates, - false, - ) - }; + } + let candidates = prune::level_candidates(current_opening_layout, candidates)?; + if candidates.is_empty() { + continue; + } for (candidate_params, next_witness_len, eor_bytes) in candidates { if let Some(natural_prefix_len) = incoming_setup_prefix { @@ -825,36 +592,51 @@ pub(crate) fn derive_optimal_suffix_schedule( padded_prefix_len, policy.decomposition.field_bits(), next_witness_len, - lb, + open_lb, policy.min_offloaded_witness_contraction, )? { continue; } } let natural_len = active_setup_field_len(&candidate_params, current_opening_layout)?; - let direct_child = derive_optimal_suffix_schedule( - ctx, - memo, - SuffixState { - level: level + 1, - current_witness_len: next_witness_len, - current_lb: lb, - incoming_setup_prefix: None, - dimension_ceiling: candidate_params.role_dims(), - payload_phase: payload_phase.after(candidate_params.payload_mode), - }, - depth + 1, - )?; + let direct_edge_is_admissible = incoming_setup_prefix.is_none_or(|incoming_len| { + akita_types::padded_setup_prefix_len(natural_len) + < akita_types::padded_setup_prefix_len(incoming_len) + }); + let direct_child = if !direct_edge_is_admissible { + None + } else if depth == MAX_RECURSION_DEPTH { + Some(empty_suffix_result()) + } else { + Some(derive_selected_suffix_schedule( + ctx, + memo, + SuffixState { + level: level + 1, + current_witness_len: next_witness_len, + current_lb: open_lb, + incoming_setup_prefix: None, + dimension_ceiling: candidate_params.role_dims(), + payload_phase: payload_phase.after(candidate_params.payload_mode), + }, + depth + 1, + )?) + }; let offloaded_child = if policy.recursive_setup_planning && candidate_params.payload_mode.is_compressed() + // An offloaded edge accepts only a child suffix with at + // least two folds. At the last two admissible depths that + // topology cannot fit, so planning the child can only + // produce results that `child_choice` rejects. + && depth + 2 < MAX_RECURSION_DEPTH { - Some(derive_optimal_suffix_schedule( + Some(derive_selected_suffix_schedule( ctx, memo, SuffixState { level: level + 1, current_witness_len: next_witness_len, - current_lb: lb, + current_lb: open_lb, incoming_setup_prefix: Some(natural_len), dimension_ceiling: candidate_params.role_dims(), payload_phase, @@ -871,66 +653,25 @@ pub(crate) fn derive_optimal_suffix_schedule( next_witness_len, eor_bytes, natural_len, - &direct_child, + direct_child.as_deref(), offloaded_child.as_deref(), require_child_fold, - &mut best_for_this_lb, - &mut best_payload_for_this_lb, + &mut frontier, &mut mixed_frontier, )?; } - - for (parent_key, choice) in best_for_this_lb { - let ScheduleCandidate { - first_direct_setup_field_len, - total_bytes, - setup_field_elements, - folds, - terminal, - } = choice; - best_by_first_direct_setup_per_lb.insert( - FirstFoldKey { - log_basis: lb, - outer_payload_bytes: parent_key.outer_payload_bytes, - stage3_payload_bytes: parent_key.stage3_payload_bytes, - }, - ScheduleCandidate { - total_bytes, - setup_field_elements, - first_direct_setup_field_len, - folds, - terminal, - }, - ); - } - for (parent_key, choice) in best_payload_for_this_lb { - let ScheduleCandidate { - first_direct_setup_field_len, - total_bytes, - setup_field_elements, - folds, - terminal, - } = choice; - best_by_payload_per_lb.insert( - FirstFoldKey { - log_basis: lb, - outer_payload_bytes: parent_key.outer_payload_bytes, - stage3_payload_bytes: parent_key.stage3_payload_bytes, - }, - ScheduleCandidate { - total_bytes, - setup_field_elements, - first_direct_setup_field_len, - folds, - terminal, - }, - ); + } + for (key, choices) in frontier.by_parent_cost { + if retains_setup_projection { + setup_and_payload.insert(key, choices); + } else if let Some(choice) = choices.payload { + payload_only.insert(key, choice); } } let result = Arc::new(SuffixResult { - best_by_first_direct_setup_per_lb, - best_by_payload_per_lb, + payload_only, + setup_and_payload, mixed_frontier, }); memo.insert(memo_key, Arc::clone(&result)); diff --git a/crates/akita-planner/src/schedule_params/suffix_dp/frontier.rs b/crates/akita-planner/src/schedule_params/suffix_dp/frontier.rs new file mode 100644 index 000000000..8eab46b55 --- /dev/null +++ b/crates/akita-planner/src/schedule_params/suffix_dp/frontier.rs @@ -0,0 +1,179 @@ +use std::collections::BTreeMap; + +use akita_field::AkitaError; + +use crate::PlannerPolicy; + +use super::{child_choice, FirstFoldKey, PendingScheduleCandidate, ScheduleCandidate}; + +#[derive(Clone, Copy)] +pub(super) enum FrontierProjection { + Both, + FirstDirectSetup, + Payload, +} + +impl FrontierProjection { + const fn includes_first_direct_setup(self) -> bool { + matches!(self, Self::Both | Self::FirstDirectSetup) + } + + const fn includes_payload(self) -> bool { + matches!(self, Self::Both | Self::Payload) + } +} + +pub(super) fn consider_child_suffixes<'a>( + edge: &super::ChildEdge<'_>, + child_candidates: impl IntoIterator, + incoming_setup_prefix: Option, + projection: FrontierProjection, + frontier: &mut ProjectedFrontier, +) -> Result<(), AkitaError> { + for suffix in child_candidates { + let Some(candidate) = child_choice(edge, suffix)? else { + continue; + }; + if incoming_setup_prefix.is_some_and(|natural_len| { + candidate.suffix_folds.is_empty() + || candidate.metrics().first_direct_setup_capacity + >= crate::schedule_params::SetupPrefixCapacity::for_natural_len(natural_len) + }) { + continue; + } + frontier.consider_pending(edge.policy, candidate, projection)?; + } + Ok(()) +} + +fn parent_visible_cost(first: Option<&akita_types::CommittedGroupParams>) -> FirstFoldKey { + FirstFoldKey { + descriptor: first.map(akita_types::CommittedGroupParams::canonical_descriptor_bytes), + } +} + +fn first_parent_visible_cost(candidate: &ScheduleCandidate) -> FirstFoldKey { + parent_visible_cost(candidate.first_fold_params()) +} + +fn setup_score( + metrics: super::super::CandidateMetrics, +) -> (crate::schedule_params::SetupPrefixCapacity, usize, usize) { + ( + metrics.first_direct_setup_capacity, + metrics.proof_bytes, + metrics.setup_field_elements, + ) +} + +fn payload_score(metrics: super::super::CandidateMetrics) -> (usize, usize) { + (metrics.proof_bytes, metrics.setup_field_elements) +} + +#[derive(Clone, Default)] +pub(crate) struct ObjectiveChoices { + pub(crate) setup: Option, + pub(crate) payload: Option, +} + +#[derive(Default)] +pub(super) struct ProjectedFrontier { + pub(super) by_parent_cost: BTreeMap, +} + +impl ProjectedFrontier { + pub(super) fn could_improve( + &self, + policy: &PlannerPolicy, + parent_cost: &FirstFoldKey, + metrics: super::super::CandidateMetrics, + projection: FrontierProjection, + ) -> bool { + let choices = self.by_parent_cost.get(parent_cost); + let setup = policy.recursive_setup_planning + && projection.includes_first_direct_setup() + && choices + .and_then(|choices| choices.setup.as_ref()) + .is_none_or(|best| { + let best = best.metrics(); + setup_score(metrics) <= setup_score(best) + }); + let payload = projection.includes_payload() + && choices + .and_then(|choices| choices.payload.as_ref()) + .is_none_or(|best| { + let best = best.metrics(); + payload_score(metrics) <= payload_score(best) + }); + setup || payload + } + + fn consider( + &mut self, + policy: &PlannerPolicy, + parent_cost: FirstFoldKey, + candidate: ScheduleCandidate, + projection: FrontierProjection, + ) -> Result<(), AkitaError> { + let metrics = candidate.metrics(); + let choices = self.by_parent_cost.entry(parent_cost).or_default(); + if policy.recursive_setup_planning && projection.includes_first_direct_setup() { + let score = setup_score(metrics); + let improves = if let Some(best) = choices.setup.as_ref() { + let best_metrics = best.metrics(); + let best_score = setup_score(best_metrics); + score < best_score + || (score == best_score + && super::super::candidate_schedule_descriptor_bytes(&candidate)? + < super::super::candidate_schedule_descriptor_bytes(best)?) + } else { + true + }; + if improves { + choices.setup = Some(candidate.clone()); + } + } + if projection.includes_payload() { + let score = payload_score(metrics); + let improves = if let Some(best) = choices.payload.as_ref() { + let best_metrics = best.metrics(); + let best_score = payload_score(best_metrics); + score < best_score + || (score == best_score + && super::super::candidate_schedule_descriptor_bytes(&candidate)? + < super::super::candidate_schedule_descriptor_bytes(best)?) + } else { + true + }; + if improves { + choices.payload = Some(candidate); + } + } + Ok(()) + } + + pub(super) fn consider_candidate( + &mut self, + policy: &PlannerPolicy, + candidate: ScheduleCandidate, + projection: FrontierProjection, + ) -> Result<(), AkitaError> { + let parent_cost = first_parent_visible_cost(&candidate); + self.consider(policy, parent_cost, candidate, projection) + } + + fn consider_pending( + &mut self, + policy: &PlannerPolicy, + pending: PendingScheduleCandidate, + projection: FrontierProjection, + ) -> Result<(), AkitaError> { + let parent_cost = FirstFoldKey { + descriptor: Some(pending.first_fold.params.canonical_descriptor_bytes()), + }; + if self.could_improve(policy, &parent_cost, pending.metrics(), projection) { + self.consider(policy, parent_cost, pending.into_candidate(), projection)?; + } + Ok(()) + } +} diff --git a/crates/akita-planner/src/schedule_params/suffix_dp/prune.rs b/crates/akita-planner/src/schedule_params/suffix_dp/prune.rs new file mode 100644 index 000000000..6f7a3d65d --- /dev/null +++ b/crates/akita-planner/src/schedule_params/suffix_dp/prune.rs @@ -0,0 +1,53 @@ +use akita_field::AkitaError; +use akita_types::{active_setup_field_len, CommittedGroupParams, OpeningClaimsLayout}; + +use crate::schedule_params::level_setup_field_elements; +use crate::schedule_params::pareto; + +type LevelFrontierEntry = ([usize; 5], Vec, CommittedGroupParams, usize, usize); + +pub(super) fn level_candidates( + opening_layout: &OpeningClaimsLayout, + candidates: Vec<(CommittedGroupParams, usize, usize)>, +) -> Result, AkitaError> { + let mut frontier: Vec = Vec::new(); + for (params, next_witness_len, eor_bytes) in candidates { + let outer_payload_coeffs = params.outer_payload_geometry()?.transmitted_coefficients(); + let coords = [ + akita_types::padded_setup_prefix_len(active_setup_field_len(¶ms, opening_layout)?), + level_setup_field_elements(¶ms)?, + outer_payload_coeffs, + params + .outer_commit_matrix + .output_rank() + .checked_mul(params.role_dims().d_b()) + .ok_or_else(|| AkitaError::InvalidSetup("B output dimension overflow".into()))?, + params + .open_commit_matrix + .output_rank() + .checked_mul(params.role_dims().d_d()) + .ok_or_else(|| AkitaError::InvalidSetup("D output dimension overflow".into()))?, + ]; + let descriptor = params.canonical_descriptor_bytes(); + pareto::insert( + &mut frontier, + (coords, descriptor, params, next_witness_len, eor_bytes), + |(best, best_descriptor, best_params, best_next_witness_len, _), + (candidate, candidate_descriptor, candidate_params, candidate_next_witness_len, _)| { + best_params.payload_mode == candidate_params.payload_mode + && best_params.role_dims() == candidate_params.role_dims() + && best_next_witness_len == candidate_next_witness_len + && pareto::canonical_dominates( + best, + best_descriptor, + candidate, + candidate_descriptor, + ) + }, + ); + } + Ok(frontier + .into_iter() + .map(|(_, _, params, next_witness_len, eor_bytes)| (params, next_witness_len, eor_bytes)) + .collect()) +} diff --git a/crates/akita-planner/src/schedule_params/suffix_dp/state.rs b/crates/akita-planner/src/schedule_params/suffix_dp/state.rs new file mode 100644 index 000000000..c469f0caf --- /dev/null +++ b/crates/akita-planner/src/schedule_params/suffix_dp/state.rs @@ -0,0 +1,253 @@ +use super::*; + +/// Result of the suffix DP at one state. Each selection objective retains the +/// candidates its parent needs because proof-size and setup-envelope pricing +/// depend on the child's first step: +/// +/// - setup and payload winners keyed by the parent-visible first fold. Direct +/// states store only payload winners; prefix/root states share each key +/// between both projections. The setup projection is lexicographically best +/// by first direct setup scan and then proof payload. The payload projection +/// is the smallest-payload schedule used after an earlier direct edge has +/// fixed the setup-size objective. +/// - `mixed_frontier` — nondominated setup-envelope/proof candidates for the +/// direct adaptive-dimension objective. +pub(crate) struct SuffixResult { + pub(super) payload_only: BTreeMap, + pub(super) setup_and_payload: BTreeMap, + /// Nondominated setup-envelope/proof candidates used by adaptive scalar + /// planning. Candidates with different first folds remain distinct because + /// the parent proof price and canonical descriptor can distinguish them. + pub(crate) mixed_frontier: Vec, +} + +impl SuffixResult { + pub(crate) fn payload_candidates(&self) -> impl Iterator { + self.payload_only.values().chain( + self.setup_and_payload + .values() + .filter_map(|choices| choices.payload.as_ref()), + ) + } + + pub(crate) fn setup_candidates(&self) -> impl Iterator { + self.setup_and_payload + .values() + .filter_map(|choices| choices.setup.as_ref()) + } +} + +fn mixed_score(candidate: &ScheduleCandidate) -> MixedScore { + MixedScore { + setup_field_elements: candidate.setup_field_elements, + proof_bytes: candidate.total_bytes, + } +} + +pub(super) fn dominates_mixed_score(left: MixedScore, right: MixedScore) -> bool { + left.setup_field_elements <= right.setup_field_elements + // A setup-only improvement cannot prune `right`: a parent can mask + // both setup footprints, leaving proof bytes and the descriptor to + // decide the complete schedule. + && left.proof_bytes < right.proof_bytes +} + +pub(super) fn insert_mixed_frontier( + policy: &PlannerPolicy, + frontier: &mut Vec, + candidate: ScheduleCandidate, +) { + if policy.selection_policy + != crate::SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload + || !policy.admits_setup_field_elements(candidate.setup_field_elements) + { + return; + } + crate::schedule_params::pareto::insert(frontier, candidate, |left, right| { + left.first_fold_params() == right.first_fold_params() + && dominates_mixed_score(mixed_score(left), mixed_score(right)) + }); +} + +/// Parent-visible first-fold class. A parent edge prices the child's outgoing +/// commitment payload, so suffixes with different first payload sizes are not +/// interchangeable even when they use the same digit basis. +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +pub(crate) struct FirstFoldKey { + pub(super) descriptor: Option>, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub(super) struct ScheduleMemoKey { + pub(super) level: usize, + pub(super) current_witness_len: usize, + pub(super) current_lb: u32, + pub(super) incoming_setup_prefix: Option, + pub(super) d_a: usize, + pub(super) d_b: usize, + pub(super) d_d: usize, + pub(super) payload_phase: akita_types::CommitmentPayloadPhase, +} + +impl ScheduleMemoKey { + const fn is_direct(self) -> bool { + self.incoming_setup_prefix.is_none() + } +} + +pub(crate) struct ScheduleMemo { + entries: HashMap, + direct_insertion_order: VecDeque, + prefixed_insertion_order: VecDeque, + pub(super) setup_prefixes: SetupPrefixSearchCache, +} + +pub(super) struct MemoEntry { + pub(super) result: Arc, + pub(super) referenced: bool, +} + +const MAX_SUFFIX_SEARCH_CACHE_ENTRIES: usize = 262_144; +// Prefix layouts create a much wider stream of one-off states than ordinary +// suffixes. Separate FIFO quotas prevent that stream from evicting the direct +// states reused across basis, dimension, and split candidates while preserving +// the original hard bound on total cached results. +const MAX_DIRECT_SUFFIX_CACHE_ENTRIES: usize = 196_608; +const MAX_PREFIXED_SUFFIX_CACHE_ENTRIES: usize = + MAX_SUFFIX_SEARCH_CACHE_ENTRIES - MAX_DIRECT_SUFFIX_CACHE_ENTRIES; +const MAX_SECOND_CHANCE_PROBES: usize = 16; + +pub(super) fn evict_suffix_entry( + entries: &mut HashMap, + insertion_order: &mut VecDeque, +) { + let mut probes = 0; + while let Some(evicted) = insertion_order.pop_front() { + let recently_referenced = probes < MAX_SECOND_CHANCE_PROBES + && entries.get_mut(&evicted).is_some_and(|entry| { + let referenced = entry.referenced; + entry.referenced = false; + referenced + }); + if recently_referenced { + insertion_order.push_back(evicted); + probes += 1; + } else { + entries.remove(&evicted); + break; + } + } +} + +impl ScheduleMemo { + pub(crate) fn new() -> Self { + Self { + entries: HashMap::new(), + direct_insertion_order: VecDeque::new(), + prefixed_insertion_order: VecDeque::new(), + setup_prefixes: SetupPrefixSearchCache::default(), + } + } + + pub(super) fn get(&mut self, key: &ScheduleMemoKey) -> Option<&Arc> { + self.entries.get_mut(key).map(|entry| { + entry.referenced = true; + &entry.result + }) + } + + pub(super) fn insert(&mut self, key: ScheduleMemoKey, result: Arc) { + if let Entry::Occupied(mut existing) = self.entries.entry(key) { + existing.insert(MemoEntry { + result, + referenced: true, + }); + return; + } + let (insertion_order, capacity) = if key.is_direct() { + ( + &mut self.direct_insertion_order, + MAX_DIRECT_SUFFIX_CACHE_ENTRIES, + ) + } else { + ( + &mut self.prefixed_insertion_order, + MAX_PREFIXED_SUFFIX_CACHE_ENTRIES, + ) + }; + if insertion_order.len() >= capacity { + evict_suffix_entry(&mut self.entries, insertion_order); + } + insertion_order.push_back(key); + self.entries.insert( + key, + MemoEntry { + result, + referenced: false, + }, + ); + } +} + +pub(super) fn empty_suffix_result() -> Arc { + Arc::new(SuffixResult { + payload_only: BTreeMap::new(), + setup_and_payload: BTreeMap::new(), + mixed_frontier: Vec::new(), + }) +} + +/// DP-invariant inputs for the suffix search. +/// +/// `policy`, `ring_challenge_cfg`, and `num_vars` are constant across the whole +/// recursion, so they are carried in one context value rather than as +/// per-call arguments (keeps the recursive signature small). +#[derive(Clone, Copy)] +pub(crate) struct SuffixCtx<'a> { + pub(crate) policy: &'a PlannerPolicy, + pub(crate) default_ring_challenge_cfg: &'a akita_challenges::SparseChallengeConfig, + pub(crate) ring_challenge_config: + &'a dyn Fn(usize) -> Result, + pub(crate) num_vars: usize, + pub(crate) key: PolynomialGroupLayout, + pub(crate) setup_field_budget: Option, + pub(crate) root_lookup_key: Option<&'a AkitaScheduleLookupKey>, + pub(crate) root_honest_fold_policy: Option, + pub(crate) precommitted_honest_fold_policies: &'a [akita_types::sis::HonestFoldPolicySpec], + pub(crate) level_zero_is_root: bool, +} + +#[derive(Clone, Copy)] +pub(crate) struct SuffixState { + pub(crate) level: usize, + pub(crate) current_witness_len: usize, + pub(crate) current_lb: u32, + pub(crate) incoming_setup_prefix: Option, + pub(crate) dimension_ceiling: CommitmentRingDims, + pub(crate) payload_phase: akita_types::CommitmentPayloadPhase, +} + +impl SuffixState { + pub(super) fn memo_key(self, policy: &PlannerPolicy) -> ScheduleMemoKey { + let memo_dimensions = match policy.ring_dimension_schedule_mode { + crate::RingDimensionScheduleMode::AdaptiveDimension { + num_search_levels, + uniform_suffix_dimension, + .. + } if self.level >= num_search_levels => { + CommitmentRingDims::uniform(uniform_suffix_dimension) + } + _ => self.dimension_ceiling, + }; + ScheduleMemoKey { + level: self.level, + current_witness_len: self.current_witness_len, + current_lb: self.current_lb, + incoming_setup_prefix: self.incoming_setup_prefix, + d_a: memo_dimensions.d_a(), + d_b: memo_dimensions.d_b(), + d_d: memo_dimensions.d_d(), + payload_phase: self.payload_phase, + } + } +} diff --git a/crates/akita-planner/src/schedule_params/suffix_dp/terminal.rs b/crates/akita-planner/src/schedule_params/suffix_dp/terminal.rs new file mode 100644 index 000000000..6b50dd272 --- /dev/null +++ b/crates/akita-planner/src/schedule_params/suffix_dp/terminal.rs @@ -0,0 +1,77 @@ +use super::*; + +/// Like [`terminal_direct_suffix_cost`], but returns `None` when the fold at +/// `terminal_fold_level` is multi-chunk. The suffix DP uses this to skip the +/// fold-then-direct branch without aborting fold-then-fold exploration. +pub(crate) fn try_terminal_direct_suffix_cost( + input_witness_len: usize, + terminal_lp: &CommittedGroupParams, + field_bits: u32, + key: PolynomialGroupLayout, + terminal_fold_level: usize, + opening_layout: Option<&OpeningClaimsLayout>, +) -> Result, AkitaError> { + if terminal_lp.witness_chunk.num_chunks > 1 { + return Ok(None); + } + let result = terminal_direct_suffix_cost( + input_witness_len, + terminal_lp, + field_bits, + key, + terminal_fold_level, + opening_layout, + ); + match result { + Ok(candidate) => Ok(Some(candidate)), + // Candidate construction is an optimization search. A geometry whose + // fixed inner matrix cannot admit the directly checked terminal response is + // infeasible, not a fatal planner error. + Err(AkitaError::InvalidSetup(_)) => Ok(None), + Err(error) => Err(error), + } +} + +pub(crate) fn terminal_direct_suffix_cost( + input_witness_len: usize, + terminal_lp: &CommittedGroupParams, + field_bits: u32, + key: PolynomialGroupLayout, + terminal_fold_level: usize, + opening_layout: Option<&OpeningClaimsLayout>, +) -> Result<(CandidateTerminalResponse, usize), AkitaError> { + // Scalar same-point root fold: polynomial count at the root, 1 recursively. + let num_polynomials = if terminal_fold_level == 0 { + key.num_polynomials() + } else { + 1 + }; + // The terminal-direct (cleartext) witness is single-chunk by construction: + // the prover emits the global folded response and one shared `r̂` tail, so + // chunking the cleartext tail is unsupported. The last fold level must be + // single-chunk (only the leading activated levels are chunked). Reject here + // to match `resolve.rs` and avoid a cryptic prover-side layout mismatch. + if terminal_lp.witness_chunk.num_chunks > 1 { + return Err(AkitaError::InvalidSetup( + "terminal-direct witness does not support a multi-chunk last fold level".to_string(), + )); + } + if opening_layout.is_some() || num_polynomials != 1 || terminal_lp.has_precommitted_groups() { + return Err(AkitaError::InvalidSetup( + "terminal direct response must be a scalar flat fold".to_string(), + )); + } + let (terminal_params, admission_cap) = + akita_types::TerminalCommittedGroupParams::try_from_expanded_group(terminal_lp.clone())?; + let witness_shape = TerminalResponseShape::derive(&terminal_params, admission_cap)?; + let terminal_bytes = terminal_response_bytes(field_bits, &witness_shape); + let direct = CandidateTerminalResponse { + params: terminal_params, + sparse_challenge_config: terminal_lp.fold_challenge_config, + input_witness_len, + estimated_direct_payload_bytes: 0, + response_shape: witness_shape, + estimated_payload_bytes: terminal_bytes, + }; + Ok((direct, terminal_bytes)) +} diff --git a/crates/akita-planner/src/test/objective.rs b/crates/akita-planner/src/test/objective.rs index 8eba51bf7..f50cdf516 100644 --- a/crates/akita-planner/src/test/objective.rs +++ b/crates/akita-planner/src/test/objective.rs @@ -54,13 +54,13 @@ fn mixed_dimension_score_prefers_proof_only_after_setup_ties() { #[test] fn recursive_score_uses_total_setup_only_after_primary_coordinates() { let smaller_proof = CompleteScheduleScore::RecursiveSetup { - first_direct_setup_field_len: 10, + first_direct_setup_capacity: 16, proof_bytes: 99, setup_field_elements: 1_000, descriptor: vec![2], }; let smaller_total_setup = CompleteScheduleScore::RecursiveSetup { - first_direct_setup_field_len: 10, + first_direct_setup_capacity: 16, proof_bytes: 100, setup_field_elements: 1, descriptor: vec![1], @@ -68,10 +68,31 @@ fn recursive_score_uses_total_setup_only_after_primary_coordinates() { assert!(smaller_proof < smaller_total_setup); let same_proof_smaller_total_setup = CompleteScheduleScore::RecursiveSetup { - first_direct_setup_field_len: 10, + first_direct_setup_capacity: 16, proof_bytes: 99, setup_field_elements: 999, descriptor: vec![3], }; assert!(same_proof_smaller_total_setup < smaller_proof); } + +#[test] +fn recursive_score_compares_padded_capacity_not_natural_length() { + let natural_9 = super::super::SetupPrefixCapacity::for_natural_len(9); + let natural_15 = super::super::SetupPrefixCapacity::for_natural_len(15); + assert_eq!(natural_9, natural_15); + + let better_proof_with_larger_natural_length = CompleteScheduleScore::RecursiveSetup { + first_direct_setup_capacity: natural_15.field_elements(), + proof_bytes: 99, + setup_field_elements: 1_000, + descriptor: vec![2], + }; + let worse_proof_with_smaller_natural_length = CompleteScheduleScore::RecursiveSetup { + first_direct_setup_capacity: natural_9.field_elements(), + proof_bytes: 100, + setup_field_elements: 1, + descriptor: vec![1], + }; + assert!(better_proof_with_larger_natural_length < worse_proof_with_smaller_natural_length); +} diff --git a/crates/akita-planner/src/test/schedule_params.rs b/crates/akita-planner/src/test/schedule_params.rs index f5d1dc4c5..181a5a5fb 100644 --- a/crates/akita-planner/src/test/schedule_params.rs +++ b/crates/akita-planner/src/test/schedule_params.rs @@ -194,6 +194,35 @@ fn mixed_domain_search_beats_or_ties_uniform_d64() { ); } +#[cfg(feature = "catalog-gen")] +#[test] +fn terminal_candidates_compete_across_opening_bases() { + use akita_config::{policy_of, proof_optimized::fp32::D128OneHot, CommitmentConfig}; + + let dimensions = RingDimensionSearchDomain::uniform(D128OneHot::D).unwrap(); + let selected = find_schedule( + PolynomialGroupLayout::singleton(14), + &policy_of::(), + D128OneHot::root_honest_fold_policy(), + &dimensions, + D128OneHot::ring_challenge_config, + ) + .unwrap(); + + assert!(selected.schedule.recursive_folds.is_empty()); + assert_eq!(selected.schedule.terminal.params.witness.log_basis_inner, 3); + assert_eq!( + selected + .schedule + .terminal + .params + .witness + .inner_commit_matrix + .coeff_linf_bound(), + 262_143, + ); +} + #[cfg(feature = "catalog-gen")] #[test] fn adaptive_dimension_search_is_canonical() { @@ -746,7 +775,7 @@ fn exact_payload_ties_prefer_the_smaller_setup_envelope() { ); assert_eq!( selected.estimate.estimated_proof_payload_bytes().unwrap(), - 90_728 + 88_888 ); } @@ -760,13 +789,15 @@ fn recursive_exact_cutover_proof_size_is_documented() { type Recursive = RecursiveCommitmentConfig; let precommit_layout = PolynomialGroupLayout::singleton(16); - let descriptor = derive_standalone_precommit_profile( + let descriptor = plan_standalone_precommit( precommit_layout, &policy_of::(), OneHot::root_honest_fold_policy(), OneHot::ring_challenge_config, ) - .unwrap(); + .unwrap() + .selected + .profile; assert_eq!(descriptor.inner_commit_matrix.ring_dimension(), 64); assert_eq!(descriptor.outer_commit_matrix.ring_dimension(), 64); let key = AkitaScheduleLookupKey { @@ -787,7 +818,7 @@ fn recursive_exact_cutover_proof_size_is_documented() { assert_eq!( planned.estimate.estimated_proof_payload_bytes().unwrap(), - 96_876 + 91_832 ); } @@ -800,13 +831,15 @@ fn recursive_adaptive_search_selects_schedule_dimensions_and_setup_prefixes() { use akita_types::AkitaScheduleLookupKey; let precommit_layout = PolynomialGroupLayout::singleton(16); - let descriptor = derive_standalone_precommit_profile( + let descriptor = plan_standalone_precommit( precommit_layout, &policy_of::(), OneHot::root_honest_fold_policy(), OneHot::ring_challenge_config, ) - .unwrap(); + .unwrap() + .selected + .profile; assert_eq!(descriptor.inner_commit_matrix.ring_dimension(), 64); assert_eq!(descriptor.outer_commit_matrix.ring_dimension(), 64); let key = AkitaScheduleLookupKey { diff --git a/crates/akita-planner/src/test/schedule_params_candidate.rs b/crates/akita-planner/src/test/schedule_params_candidate.rs index 1f543b07e..11a7d63d0 100644 --- a/crates/akita-planner/src/test/schedule_params_candidate.rs +++ b/crates/akita-planner/src/test/schedule_params_candidate.rs @@ -1,7 +1,4 @@ -use super::recursive::{ - recursive_candidate_order_key, recursive_split_lower_bound, seed_recursive_split_candidates, - RecursiveSplitLowerBoundInput, -}; +use super::recursive::{recursive_candidate_order_key, recursive_split_search_domain}; use super::*; use akita_challenges::SparseChallengeConfig; use akita_types::{PolynomialGroupLayout, SisModulusProfileId}; @@ -41,7 +38,7 @@ fn grouped_level_params() -> CommittedGroupParams { } #[test] -fn planned_next_witness_len_rejects_multi_group_root_level_params() { +fn scalar_next_witness_len_rejects_multi_group_root_level_params() { let grouped = grouped_level_params(); let err = planned_next_witness_len(128, &grouped, 1, 1) .expect_err("multi-group root suffix sizing must use output_witness_len"); @@ -49,49 +46,84 @@ fn planned_next_witness_len_rejects_multi_group_root_level_params() { } #[test] -fn seed_recursive_split_candidates_falls_back_to_exhaustive_for_small_domains() { - assert_eq!( - seed_recursive_split_candidates(64, 5, 1, 22, 1), - vec![4, 3, 2, 1] +fn recursive_candidate_order_preserves_exhaustive_tie_break() { + let score = (100, 90, 5, 0); + assert!( + recursive_candidate_order_key(score, 9) < recursive_candidate_order_key(score, 8), + "the old descending exhaustive scan retained the larger split on a tie" ); -} - -#[test] -fn seed_recursive_split_candidates_includes_endpoints_and_unique_window() { - let candidates = seed_recursive_split_candidates(8192, 13, 1, 22, 1); - assert!(candidates.contains(&1)); - assert!(candidates.contains(&12)); assert!( - candidates.windows(2).all(|pair| pair[0] > pair[1]), - "candidates must be unique and descending: {candidates:?}" + recursive_candidate_order_key((99, 98, 1, 0), 1) < recursive_candidate_order_key(score, 9), + "the exact layout score must remain the primary objective" ); } #[test] -fn recursive_split_lower_bound_prices_score_floor() { +fn recursive_split_policy_controls_the_shared_search_domain() { + assert_eq!( + recursive_split_search_domain( + crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, + 1 << 12, + 12, + 4, + 4, + 1, + ), + (1..12).rev().collect::>() + ); assert_eq!( - recursive_split_lower_bound(RecursiveSplitLowerBoundInput { - num_ring_elems: 100, - ring_dimension: 64, - reduced_vars: 7, - r: 3, - delta_commit: 1, - delta_open: 4, - num_chunks: 2, - }), - Some(5646) + recursive_split_search_domain( + crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, + 1 << 16, + 16, + 4, + 4, + 1, + ), + vec![15, 10, 9, 8, 7, 6, 1] + ); + assert_eq!( + recursive_split_search_domain( + crate::RecursiveSplitSearchPolicy::Exhaustive, + 1 << 16, + 16, + 4, + 4, + 1, + ), + (1..16).rev().collect::>() ); } +#[cfg(feature = "catalog-gen")] #[test] -fn recursive_candidate_order_preserves_exhaustive_tie_break() { - let score = (100, 90, 5, 0); - assert!( - recursive_candidate_order_key(score, 9) < recursive_candidate_order_key(score, 8), - "the old descending exhaustive scan retained the larger split on a tie" - ); - assert!( - recursive_candidate_order_key((99, 98, 1, 0), 1) < recursive_candidate_order_key(score, 9), - "the exact layout score must remain the primary objective" - ); +fn setup_prefix_frontier_excludes_unsupported_compression_sources() { + use akita_config::{ + policy_of, proof_optimized::fp128::OneHot, CommitmentConfig, RecursiveCommitmentConfig, + }; + + type Recursive = RecursiveCommitmentConfig; + let policy = policy_of::(); + let challenge = Recursive::ring_challenge_config(64).expect("challenge config"); + let mut cache = SetupPrefixSearchCache::default(); + for log_prefix in 12..=20 { + let groups = derive_setup_prefix_groups( + &mut cache, + &policy, + &challenge, + 3, + 1usize << log_prefix, + 1, + 64, + 64, + ) + .expect("setup-prefix frontier"); + for params in groups { + akita_types::setup_prefix_slot_field_elements(&akita_types::setup_prefix_slot_id( + 1usize << log_prefix, + params, + )) + .expect("frontier candidate must support its compression source"); + } + } } diff --git a/crates/akita-planner/src/test/suffix_dp.rs b/crates/akita-planner/src/test/suffix_dp.rs index caebfe2a4..a1d24bd39 100644 --- a/crates/akita-planner/src/test/suffix_dp.rs +++ b/crates/akita-planner/src/test/suffix_dp.rs @@ -1,5 +1,85 @@ use super::{dominates_mixed_score, offloaded_witness_contracts}; use crate::schedule_params::MixedScore; +use std::collections::VecDeque; + +#[test] +fn suffix_cache_gives_referenced_entry_a_second_chance() { + let key = |level| super::ScheduleMemoKey { + level, + current_witness_len: 1024, + current_lb: 3, + incoming_setup_prefix: None, + d_a: 64, + d_b: 64, + d_d: 64, + payload_phase: akita_types::CommitmentPayloadPhase::CompressedPrefix, + }; + let hot = key(1); + let cold = key(2); + let mut entries = std::collections::HashMap::from([ + ( + hot, + super::MemoEntry { + result: super::empty_suffix_result(), + referenced: true, + }, + ), + ( + cold, + super::MemoEntry { + result: super::empty_suffix_result(), + referenced: false, + }, + ), + ]); + let mut insertion_order = VecDeque::from([hot, cold]); + + super::evict_suffix_entry(&mut entries, &mut insertion_order); + + assert!(entries.contains_key(&hot)); + assert!(!entries.contains_key(&cold)); + assert_eq!(insertion_order, VecDeque::from([hot])); +} + +#[test] +fn memo_key_discards_dimension_history_after_adaptive_cutoff() { + let mut policy = akita_config::policy_of::(); + let crate::RingDimensionScheduleMode::AdaptiveDimension { + num_search_levels, .. + } = policy.ring_dimension_schedule_mode + else { + panic!("test preset must be adaptive"); + }; + let state = |level, dimension_ceiling| super::SuffixState { + level, + current_witness_len: 1024, + current_lb: 3, + incoming_setup_prefix: None, + dimension_ceiling, + payload_phase: akita_types::CommitmentPayloadPhase::CompressedPrefix, + }; + let d64 = akita_types::CommitmentRingDims::uniform(64); + let d256 = akita_types::CommitmentRingDims::uniform(256); + + assert_ne!( + state(num_search_levels - 1, d64).memo_key(&policy), + state(num_search_levels - 1, d256).memo_key(&policy), + "dimension ceilings remain semantically active during adaptive search" + ); + assert_eq!( + state(num_search_levels, d64).memo_key(&policy), + state(num_search_levels, d256).memo_key(&policy), + "uniform suffix states must not retain dead dimension history" + ); + + policy.ring_dimension_schedule_mode = + crate::RingDimensionScheduleMode::UniformDimension { ring_dimension: 64 }; + assert_ne!( + state(num_search_levels, d64).memo_key(&policy), + state(num_search_levels, d256).memo_key(&policy), + "uniform-mode keys retain the explicit caller ceiling" + ); +} #[test] fn mixed_frontier_keeps_lower_payload_child_until_parent_masks_setup() { diff --git a/crates/akita-planner/src/test/unpruned_search.rs b/crates/akita-planner/src/test/unpruned_search.rs index 79a1e7518..92d284979 100644 --- a/crates/akita-planner/src/test/unpruned_search.rs +++ b/crates/akita-planner/src/test/unpruned_search.rs @@ -39,7 +39,8 @@ fn enumerate_suffixes( } let field_bits = policy.decomposition.field_bits(); let challenge_field_bits = policy.challenge_field_bits()?; - let (min_log_basis, max_log_basis) = policy.log_basis_search_range_at_level(level); + let (min_log_basis, max_log_basis) = + crate::policy::log_basis_search_range_at_level(policy, level); let mut schedules = Vec::new(); for log_basis in min_log_basis.max(current_log_basis)..=max_log_basis { @@ -68,7 +69,8 @@ fn enumerate_suffixes( }; for &payload_mode in payload_phase.candidate_modes(level, false) { let candidates = if level < akita_schedules::ADAPTIVE_SEARCH_LEVELS { - derive_candidate_level_params_all_splits( + derive_candidate_level_params_split_frontier( + None, policy, payload_mode, &ring_challenge, @@ -76,12 +78,17 @@ fn enumerate_suffixes( *candidate_dimensions, ), input_witness_len, + crate::InnerBasisSource::BalancedDigits { + log_basis: current_log_basis, + }, + current_log_basis, log_basis, level, None, )? } else { derive_candidate_level_params( + None, policy, payload_mode, &ring_challenge, @@ -89,6 +96,10 @@ fn enumerate_suffixes( *candidate_dimensions, ), input_witness_len, + crate::InnerBasisSource::BalancedDigits { + log_basis: current_log_basis, + }, + current_log_basis, log_basis, level, None, @@ -122,7 +133,7 @@ fn enumerate_suffixes( })?; terminal.estimated_direct_payload_bytes = direct_bytes; schedules.push(ScheduleCandidate { - first_direct_setup_field_len: Some( + first_direct_setup_field_len: std::num::NonZeroUsize::new( akita_types::active_setup_field_len( ¶ms, &suffix_opening_layout(input_witness_len, None)?, @@ -136,8 +147,8 @@ fn enumerate_suffixes( }, )?, setup_field_elements: terminal_setup_field_elements(&terminal.params)?, - folds: Vec::new(), - terminal, + folds: CandidateFoldChain::default(), + terminal: Arc::new(terminal), }); } @@ -175,17 +186,15 @@ fn enumerate_suffixes( "unpruned traversal fold proof size overflow".into(), ) })?; - let mut folds = Vec::with_capacity(child.folds.len() + 1); - folds.push(CandidateFoldStep { - params: params.clone(), + let folds = child.folds.prepend(CandidateFoldStep { + params: Arc::new(params.clone()), input_witness_len, output_witness_len, estimated_direct_payload_bytes: direct_bytes, estimated_stage3_payload_bytes: 0, }); - folds.extend(child.folds.iter().cloned()); schedules.push(ScheduleCandidate { - first_direct_setup_field_len: Some( + first_direct_setup_field_len: std::num::NonZeroUsize::new( akita_types::active_setup_field_len( ¶ms, &suffix_opening_layout(input_witness_len, None)?, @@ -225,7 +234,7 @@ pub(super) fn find_schedule( let input_witness_len = 1usize.checked_shl(key.num_vars() as u32).ok_or_else(|| { AkitaError::InvalidSetup("unpruned traversal root witness too large".into()) })?; - let (min_log_basis, max_log_basis) = policy.log_basis_search_range_at_level(0); + let (min_log_basis, max_log_basis) = crate::policy::log_basis_search_range_at_level(policy, 0); let mut complete = Vec::new(); let schedule_key = akita_types::AkitaScheduleLookupKey::single(key); let ctx = UnprunedCtx { @@ -234,96 +243,100 @@ pub(super) fn find_schedule( ring_challenge_config: &ring_challenge_config, key, }; + let inner_source = + root_inner_basis_source(honest_fold_policy, policy.decomposition.log_commit_bound); + let (min_inner_basis, max_inner_basis) = inner_source.search_range(policy)?; for log_basis in min_log_basis..=max_log_basis { - for root_dimensions in dimensions.candidates() { - let alpha = root_dimensions.d_a().trailing_zeros() as usize; - let reduced_vars = key.num_vars().saturating_sub(alpha); - if reduced_vars == 0 { - continue; - } - let Ok(ring_challenge) = ring_challenge_config(root_dimensions.d_a()) else { - continue; - }; - for (root_params, output_witness_len) in - crate::planner::root_level_candidates_for_basis( - &schedule_key, - honest_fold_policy, - &[], - policy, - akita_schedules::planner_support::RingDimensionCandidate::Fixed( - *root_dimensions, - ), - &ring_challenge, - &ring_challenge_config, - input_witness_len, - log_basis, - true, - )? - { - let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( - policy.challenge_field_bits()?, - policy.claim_ext_degree, - 0, - key, - input_witness_len, - root_dimensions.d_a(), - )? - else { + for inner_basis in min_inner_basis..=max_inner_basis { + for root_dimensions in dimensions.candidates() { + let alpha = root_dimensions.d_a().trailing_zeros() as usize; + let reduced_vars = key.num_vars().saturating_sub(alpha); + if reduced_vars == 0 { + continue; + } + let Ok(ring_challenge) = ring_challenge_config(root_dimensions.d_a()) else { continue; }; - for suffix in enumerate_suffixes( - &ctx, - UnprunedState { - level: 1, - input_witness_len: output_witness_len, - current_log_basis: log_basis, - dimension_ceiling: *root_dimensions, - payload_phase: akita_types::CommitmentPayloadPhase::CompressedPrefix, - }, - )? { - let child_is_terminal = suffix.folds.is_empty(); - let root_bytes = level_proof_bytes( - field_bits, - policy.challenge_field_bits()?, - &root_params, - suffix.first_fold_params(), - output_witness_len, - Some(if child_is_terminal { - akita_types::NextWitnessBindingPolicy::TerminalInnerState - } else { - akita_types::NextWitnessBindingPolicy::OuterPayload - }), + for (root_params, output_witness_len) in + crate::planner::root_level_candidates_for_basis( + &schedule_key, + honest_fold_policy, + &[], + policy, + akita_schedules::planner_support::RingDimensionCandidate::Fixed( + *root_dimensions, + ), + &ring_challenge, + &ring_challenge_config, + input_witness_len, + inner_basis, + log_basis, + true, )? - .checked_add(eor_bytes) - .ok_or_else(|| { - AkitaError::InvalidSetup( - "unpruned traversal root proof size overflow".into(), - ) - })?; - let mut folds = Vec::with_capacity(suffix.folds.len() + 1); - folds.push(CandidateFoldStep { - params: root_params.clone(), + { + let Some(eor_bytes) = try_extension_opening_reduction_level_bytes( + policy.challenge_field_bits()?, + policy.claim_ext_degree, + 0, + key, input_witness_len, - output_witness_len, - estimated_direct_payload_bytes: root_bytes, - estimated_stage3_payload_bytes: 0, - }); - folds.extend(suffix.folds.iter().cloned()); - complete.push(ScheduleCandidate { - first_direct_setup_field_len: None, - total_bytes: root_bytes.checked_add(suffix.total_bytes).ok_or_else( - || { - AkitaError::InvalidSetup( - "unpruned traversal proof size overflow".into(), - ) - }, - )?, - setup_field_elements: level_setup_field_elements(&root_params)? - .max(suffix.setup_field_elements), - folds, - terminal: suffix.terminal, - }); + root_dimensions.d_a(), + )? + else { + continue; + }; + for suffix in enumerate_suffixes( + &ctx, + UnprunedState { + level: 1, + input_witness_len: output_witness_len, + current_log_basis: log_basis, + dimension_ceiling: *root_dimensions, + payload_phase: akita_types::CommitmentPayloadPhase::CompressedPrefix, + }, + )? { + let child_is_terminal = suffix.folds.is_empty(); + let root_bytes = level_proof_bytes( + field_bits, + policy.challenge_field_bits()?, + &root_params, + suffix.first_fold_params(), + output_witness_len, + Some(if child_is_terminal { + akita_types::NextWitnessBindingPolicy::TerminalInnerState + } else { + akita_types::NextWitnessBindingPolicy::OuterPayload + }), + )? + .checked_add(eor_bytes) + .ok_or_else(|| { + AkitaError::InvalidSetup( + "unpruned traversal root proof size overflow".into(), + ) + })?; + let folds = suffix.folds.prepend(CandidateFoldStep { + params: Arc::new(root_params.clone()), + input_witness_len, + output_witness_len, + estimated_direct_payload_bytes: root_bytes, + estimated_stage3_payload_bytes: 0, + }); + complete.push(ScheduleCandidate { + first_direct_setup_field_len: None, + total_bytes: root_bytes.checked_add(suffix.total_bytes).ok_or_else( + || { + AkitaError::InvalidSetup( + "unpruned traversal proof size overflow".into(), + ) + }, + )?, + setup_field_elements: level_setup_field_elements(&root_params)? + .max(suffix.setup_field_elements), + folds, + terminal: suffix.terminal, + }); + } } } } @@ -341,7 +354,7 @@ pub(super) fn find_schedule( selected.total_bytes, selected.setup_field_elements, None, - selected.folds, - selected.terminal, + selected.folds.to_vec(), + selected.terminal.as_ref().clone(), ) } diff --git a/crates/akita-prover/src/api/commitment.rs b/crates/akita-prover/src/api/commitment.rs index f39642673..ecb3960d5 100644 --- a/crates/akita-prover/src/api/commitment.rs +++ b/crates/akita-prover/src/api/commitment.rs @@ -5,7 +5,7 @@ use crate::compute::{ tensor_root_projection, CommitInnerPlan, OperationCtx, RootCommitSource, RootPolyMeta, RuntimeCommitBackendFor, RuntimeRootCommitBackend, RuntimeRootCommitPoly, UniformProverStack, }; -use crate::validation::validate_i8_setup_log_basis; +use crate::validation::{signed_digit_kernel_for_setup, validate_i8_setup_log_basis}; use crate::RootTensorProjectionPoly; use akita_config::{ensure_prover_schedule_fits_setup, CommitmentConfig}; use akita_field::unreduced::{HasWide, ReduceTo}; @@ -16,8 +16,8 @@ use akita_types::{ dispatch_for_field, root_tensor_projection_enabled, validate_role_dims, validate_role_dims_for_field, AkitaCommitmentHint, AkitaExpandedSetup, AkitaScheduleLookupKey, Commitment, CommitmentRingDims, CommittedGroup, CommittedGroupParams, CommittedGroupProfile, - CompressionChainPlan, FpExtEncoding, OpeningClaimsLayout, OpeningScheduleSelection, - PolynomialGroupLayout, RingVec, + CompressionChainPlan, FpExtEncoding, InnerCommitMatrixParams, OpeningClaimsLayout, + OpeningScheduleSelection, OuterCommitMatrixParams, PolynomialGroupLayout, RingVec, }; mod inner; @@ -41,81 +41,155 @@ pub type FinalCommittedGroupWithHint = ( OpeningScheduleSelection, ); -pub(crate) fn validate_commit_level_params( - params: &CommittedGroupParams, +#[derive(Clone, Copy)] +struct CommitmentGeometry<'a> { + context: &'static str, + num_positions_per_block: usize, + log_basis_inner: u32, + num_digits_inner: usize, + inner_matrix: &'a InnerCommitMatrixParams, + log_basis_outer: u32, + outer_matrix: &'a OuterCommitMatrixParams, +} + +impl<'a> From<&'a CommittedGroupParams> for CommitmentGeometry<'a> { + fn from(params: &'a CommittedGroupParams) -> Self { + Self { + context: "commit params", + num_positions_per_block: params.num_positions_per_block, + log_basis_inner: params.log_basis_inner, + num_digits_inner: params.num_digits_inner, + inner_matrix: ¶ms.inner_commit_matrix, + log_basis_outer: params.log_basis_outer, + outer_matrix: ¶ms.outer_commit_matrix, + } + } +} + +impl<'a> From<&'a CommittedGroupProfile> for CommitmentGeometry<'a> { + fn from(profile: &'a CommittedGroupProfile) -> Self { + Self { + context: "precommit profile", + num_positions_per_block: profile.num_positions_per_block, + log_basis_inner: profile.log_basis_inner, + num_digits_inner: profile.num_digits_inner, + inner_matrix: &profile.inner_commit_matrix, + log_basis_outer: profile.log_basis_outer, + outer_matrix: &profile.outer_commit_matrix, + } + } +} + +fn validate_commitment_geometry( + geometry: CommitmentGeometry<'_>, setup: &AkitaExpandedSetup, ) -> Result<(), AkitaError> where F: FieldCore + CanonicalField, { - if params.num_live_blocks == 0 || params.num_positions_per_block == 0 { - return Err(AkitaError::InvalidSetup( - "commit params require nonzero num_live_blocks and num_positions_per_block".to_string(), - )); - } - if params.num_digits_inner == 0 || params.num_digits_outer == 0 || params.num_digits_open == 0 { - return Err(AkitaError::InvalidSetup( - "commit params require nonzero digit depths".to_string(), - )); - } - validate_i8_setup_log_basis( - params.log_basis_inner, - "for i8 witness commitment decomposition", + signed_digit_kernel_for_setup( + geometry.log_basis_inner, + "for signed witness commitment decomposition", )?; validate_i8_setup_log_basis( - params.log_basis_outer, + geometry.log_basis_outer, "for i8 outer commitment decomposition", )?; - validate_i8_setup_log_basis(params.log_basis_open, "for i8 opening decomposition")?; - let dims = params.role_dims(); + + // A/B geometry is independent of the D/opening matrix. Mirroring B into + // the opening slot lets the shared role validator enforce only the two + // dimensions represented by this borrowed view. + let dims = CommitmentRingDims { + inner: geometry.inner_matrix.ring_dimension(), + outer: geometry.outer_matrix.ring_dimension(), + opening: geometry.outer_matrix.ring_dimension(), + }; validate_role_dims(dims)?; validate_role_dims_for_field::(dims)?; - let expected_a_width = params + + let expected_a_width = geometry .num_positions_per_block - .checked_mul(params.num_digits_inner) + .checked_mul(geometry.num_digits_inner) .ok_or_else(|| AkitaError::InvalidSetup("A commit width overflow".to_string()))?; - if params.inner_commit_matrix.input_width() != expected_a_width { + if geometry.inner_matrix.input_width() != expected_a_width { return Err(AkitaError::InvalidSetup(format!( - "commit params A width {} does not match num_positions_per_block * num_digits_inner = {expected_a_width}", - params.inner_commit_matrix.input_width() + "{} A width {} does not match num_positions_per_block * num_digits_inner = {expected_a_width}", + geometry.context, + geometry.inner_matrix.input_width() ))); } - if params.outer_commit_matrix.input_width() == 0 { + if geometry.outer_matrix.input_width() == 0 { return Err(AkitaError::InvalidSetup(format!( - "commit params require nonzero B width, got B={}", - params.outer_commit_matrix.input_width() + "{} requires nonzero B width, got B={}", + geometry.context, + geometry.outer_matrix.input_width() ))); } + + for (role, output_rank, input_width, ring_dimension) in [ + ( + "A", + geometry.inner_matrix.output_rank(), + geometry.inner_matrix.input_width(), + dims.d_a(), + ), + ( + "B", + geometry.outer_matrix.output_rank(), + geometry.outer_matrix.input_width(), + dims.d_b(), + ), + ] { + let required = output_rank + .checked_mul(input_width) + .ok_or_else(|| AkitaError::InvalidSetup(format!("{role} setup footprint overflow")))?; + let available = setup.shared_matrix.num_field_elements() / ring_dimension; + if required > available { + return Err(AkitaError::InvalidSetup(format!( + "{role}-role {} requires {required} setup ring elements at d={ring_dimension}, but setup has {available}", + geometry.context + ))); + } + } + Ok(()) +} + +pub(crate) fn validate_commit_level_params( + params: &CommittedGroupParams, + setup: &AkitaExpandedSetup, +) -> Result<(), AkitaError> +where + F: FieldCore + CanonicalField, +{ + if params.num_live_blocks == 0 || params.num_positions_per_block == 0 { + return Err(AkitaError::InvalidSetup( + "commit params require nonzero num_live_blocks and num_positions_per_block".to_string(), + )); + } + if params.num_digits_inner == 0 || params.num_digits_outer == 0 { + return Err(AkitaError::InvalidSetup( + "commit params require nonzero A/B digit depths".to_string(), + )); + } + validate_commitment_geometry::(params.into(), setup)?; + + // D/opening geometry is level-only: standalone commitment profiles freeze + // only the A/B matrices used to materialize the commitment. + if params.num_digits_open == 0 { + return Err(AkitaError::InvalidSetup( + "commit params require nonzero opening digit depth".to_string(), + )); + } + validate_i8_setup_log_basis(params.log_basis_open, "for i8 opening decomposition")?; + let dims = params.role_dims(); + validate_role_dims(dims)?; + validate_role_dims_for_field::(dims)?; if params.open_commit_matrix.input_width() == 0 { return Err(AkitaError::InvalidSetup(format!( "commit params require nonzero D width, got D={}", params.open_commit_matrix.input_width() ))); } - let a_required = params - .inner_commit_matrix - .output_rank() - .checked_mul(params.inner_commit_matrix.input_width()) - .ok_or_else(|| AkitaError::InvalidSetup("A setup footprint overflow".to_string()))?; - let a_available = setup.shared_matrix.num_field_elements() / dims.d_a(); - if a_required > a_available { - return Err(AkitaError::InvalidSetup(format!( - "A-role commit params require {a_required} setup ring elements at d={}, but setup has {a_available}", - dims.d_a() - ))); - } - let b_required = params - .outer_commit_matrix - .output_rank() - .checked_mul(params.outer_commit_matrix.input_width()) - .ok_or_else(|| AkitaError::InvalidSetup("B setup footprint overflow".to_string()))?; - let b_available = setup.shared_matrix.num_field_elements() / dims.d_b(); - if b_required > b_available { - return Err(AkitaError::InvalidSetup(format!( - "B-role commit params require {b_required} setup ring elements at d={}, but setup has {b_available}", - dims.d_b() - ))); - } // Commitment materialization uses only A and B. In particular, a // standalone group extracted from an approved multi-group row may retain // that row's shared D geometry, which is consumed only if the group later @@ -132,46 +206,7 @@ where F: FieldCore + CanonicalField, { profile.validate_frozen_precommit(F::modulus_bits())?; - validate_i8_setup_log_basis( - profile.log_basis_inner, - "for i8 witness commitment decomposition", - )?; - validate_i8_setup_log_basis( - profile.log_basis_outer, - "for i8 outer commitment decomposition", - )?; - let dims = CommitmentRingDims { - inner: profile.inner_commit_matrix.ring_dimension(), - outer: profile.outer_commit_matrix.ring_dimension(), - opening: profile.outer_commit_matrix.ring_dimension(), - }; - validate_role_dims(dims)?; - validate_role_dims_for_field::(dims)?; - let a_required = profile - .inner_commit_matrix - .output_rank() - .checked_mul(profile.inner_commit_matrix.input_width()) - .ok_or_else(|| AkitaError::InvalidSetup("A setup footprint overflow".to_string()))?; - let a_available = setup.shared_matrix.num_field_elements() / dims.d_a(); - if a_required > a_available { - return Err(AkitaError::InvalidSetup(format!( - "A-role precommit profile requires {a_required} setup ring elements at d={}, but setup has {a_available}", - dims.d_a() - ))); - } - let b_required = profile - .outer_commit_matrix - .output_rank() - .checked_mul(profile.outer_commit_matrix.input_width()) - .ok_or_else(|| AkitaError::InvalidSetup("B setup footprint overflow".to_string()))?; - let b_available = setup.shared_matrix.num_field_elements() / dims.d_b(); - if b_required > b_available { - return Err(AkitaError::InvalidSetup(format!( - "B-role precommit profile requires {b_required} setup ring elements at d={}, but setup has {b_available}", - dims.d_b() - ))); - } - Ok(()) + validate_commitment_geometry::(profile.into(), setup) } pub(crate) fn validate_commit_outer_input_nonempty(active_len: usize) -> Result<(), AkitaError> { diff --git a/crates/akita-prover/src/backend/dense/poly.rs b/crates/akita-prover/src/backend/dense/poly.rs index e42cc04a7..9b05767af 100644 --- a/crates/akita-prover/src/backend/dense/poly.rs +++ b/crates/akita-prover/src/backend/dense/poly.rs @@ -2,6 +2,7 @@ use crate::backend::poly_helpers::try_small_i8_cache_from_ring_coeffs; use crate::kernels::linear::try_centered_i8; +use crate::validation::is_i8_log_basis; use akita_algebra::ring::cyclotomic::BalancedDecomposePow2Params; use akita_algebra::CyclotomicRing; use akita_field::parallel::*; @@ -293,6 +294,9 @@ impl DensePoly { num_digits: usize, log_basis: u32, ) -> Option<&[[i8; D]]> { + if !is_i8_log_basis(log_basis) { + return None; + } if let Some(cache) = self.digit_cache.get() { // A cache built at another dimension is not reused: returning // `None` falls back to the uncached path, exactly like a diff --git a/crates/akita-prover/src/backend/poly_helpers/decompose_fold_partitioned.rs b/crates/akita-prover/src/backend/poly_helpers/decompose_fold_partitioned.rs index 15cd94f07..475b7796a 100644 --- a/crates/akita-prover/src/backend/poly_helpers/decompose_fold_partitioned.rs +++ b/crates/akita-prover/src/backend/poly_helpers/decompose_fold_partitioned.rs @@ -4,11 +4,15 @@ use super::rotated_accum::{ accumulate_rotated_digit_plane, decompose_ring_full_challenge_accumulate, should_use_rotated_challenge, }; -use super::{decompose_ring_interleaved, fill_rotated_challenge, sparse_mul_acc, DecomposeParams}; +use super::{ + decompose_ring_interleaved, decompose_ring_interleaved_i16, fill_rotated_challenge, + sparse_mul_acc, sparse_mul_acc_i16, DecomposeParams, +}; use akita_algebra::CyclotomicRing; use akita_challenges::SparseChallenge; use akita_field::parallel::*; use akita_field::CanonicalField; +use akita_types::SignedDigitKernel; type RotatedTable = Option<[[i16; D]; D]>; @@ -46,6 +50,11 @@ enum ElementFoldSource<'a, F: CanonicalField, const D: usize> { }, } +enum DigitScratch { + I8(Vec<[i8; D]>), + I16(Vec<[i16; D]>), +} + impl ElementFoldSource<'_, F, D> { fn num_rings(&self) -> usize { match self { @@ -54,8 +63,22 @@ impl ElementFoldSource<'_, F, D> { } } - fn needs_digit_buf(&self, rotated_tables: &[RotatedTable]) -> bool { - matches!(self, Self::LiveRings { .. }) && rotated_tables.iter().any(Option::is_none) + fn digit_scratch( + &self, + rotated_tables: &[RotatedTable], + num_digits: usize, + ) -> Option> { + match self { + Self::LiveRings { params, .. } if rotated_tables.iter().any(Option::is_none) => Some( + match SignedDigitKernel::for_log_basis(params.log_basis) + .expect("decompose-fold parameters must use a validated signed-digit basis") + { + SignedDigitKernel::I8 => DigitScratch::I8(vec![[0i8; D]; num_digits]), + SignedDigitKernel::I16 => DigitScratch::I16(vec![[0i16; D]; num_digits]), + }, + ), + _ => None, + } } #[allow(clippy::too_many_arguments)] @@ -66,7 +89,7 @@ impl ElementFoldSource<'_, F, D> { acc: &mut [[i32; D]], challenge: &SparseChallenge, rotated: Option<&[[i16; D]; D]>, - digit_buf: Option<&mut [[i8; D]]>, + digit_scratch: Option<&mut DigitScratch>, num_digits: usize, ) { let dst_base = local_elem_idx * num_digits; @@ -101,16 +124,38 @@ impl ElementFoldSource<'_, F, D> { ); } (Self::LiveRings { coeffs, params }, None) => { - let digit_buf = digit_buf.expect("live sparse path requires a digit buffer"); let base = dst_base; - decompose_ring_interleaved::( - &coeffs[ring_idx], - digit_buf, - num_digits, - params, - ); - for digit in 0..num_digits { - sparse_mul_acc::(&digit_buf[digit], challenge, &mut acc[base + digit]); + match digit_scratch.expect("live sparse path requires signed-digit scratch") { + DigitScratch::I8(digit_buf) => { + decompose_ring_interleaved::( + &coeffs[ring_idx], + digit_buf, + num_digits, + params, + ); + for digit in 0..num_digits { + sparse_mul_acc::( + &digit_buf[digit], + challenge, + &mut acc[base + digit], + ); + } + } + DigitScratch::I16(digit_buf) => { + decompose_ring_interleaved_i16::( + &coeffs[ring_idx], + digit_buf, + num_digits, + params, + ); + for digit in 0..num_digits { + sparse_mul_acc_i16::( + &digit_buf[digit], + challenge, + &mut acc[base + digit], + ); + } + } } } } @@ -144,9 +189,7 @@ fn element_partitioned_decompose_fold( } let elems_in_chunk = acc.len() / num_digits; let elem_end = elem_start + elems_in_chunk; - let mut digit_buf = source - .needs_digit_buf(&rotated_tables) - .then(|| vec![[0i8; D]; num_digits]); + let mut digit_scratch = source.digit_scratch(&rotated_tables, num_digits); for (block_idx, challenge) in challenges.iter().enumerate() { let block_start = block_idx * num_positions_per_block; @@ -166,7 +209,7 @@ fn element_partitioned_decompose_fold( acc, challenge, rotated_tables[block_idx].as_ref(), - digit_buf.as_deref_mut(), + digit_scratch.as_mut(), num_digits, ); } diff --git a/crates/akita-prover/src/backend/poly_helpers/mod.rs b/crates/akita-prover/src/backend/poly_helpers/mod.rs index a6f3184bb..b759f482b 100644 --- a/crates/akita-prover/src/backend/poly_helpers/mod.rs +++ b/crates/akita-prover/src/backend/poly_helpers/mod.rs @@ -82,6 +82,64 @@ pub fn decompose_ring_interleaved( } } +/// Signed-i16 counterpart of [`decompose_ring_interleaved`] for bases above 8. +#[inline(never)] +pub fn decompose_ring_interleaved_i16( + ring: &CyclotomicRing, + digit_buf: &mut [[i16; D]], + num_digits: usize, + p: &DecomposeParams, +) { + let bulk_end = D - (D % 3); + for base in (0..bulk_end).step_by(3) { + let canonical = [ + ring.coeffs[base].to_canonical_u128(), + ring.coeffs[base + 1].to_canonical_u128(), + ring.coeffs[base + 2].to_canonical_u128(), + ]; + let (mut carries, first_digits) = if p.overflow_possible { + let (c0, d0) = peel_first_balanced_digit_i32(canonical[0], p); + let (c1, d1) = peel_first_balanced_digit_i32(canonical[1], p); + let (c2, d2) = peel_first_balanced_digit_i32(canonical[2], p); + ([c0, c1, c2], Some([d0, d1, d2])) + } else { + (canonical.map(|coefficient| to_signed(coefficient, p)), None) + }; + for (digit_index, plane) in digit_buf.iter_mut().take(num_digits).enumerate() { + let digits = if digit_index == 0 { + first_digits.unwrap_or_else(|| { + carries + .each_mut() + .map(|carry| extract_balanced_digit(carry, p)) + }) + } else { + carries + .each_mut() + .map(|carry| extract_balanced_digit(carry, p)) + }; + plane[base] = digits[0] as i16; + plane[base + 1] = digits[1] as i16; + plane[base + 2] = digits[2] as i16; + } + } + for idx in bulk_end..D { + let canonical = ring.coeffs[idx].to_canonical_u128(); + let (mut carry, first_digit) = if p.overflow_possible { + let (carry, digit) = peel_first_balanced_digit_i32(canonical, p); + (carry, Some(digit)) + } else { + (to_signed(canonical, p), None) + }; + for (digit_index, plane) in digit_buf.iter_mut().take(num_digits).enumerate() { + plane[idx] = if digit_index == 0 { + first_digit.unwrap_or_else(|| extract_balanced_digit(&mut carry, p)) + } else { + extract_balanced_digit(&mut carry, p) + } as i16; + } + } +} + fn decompose_ring_interleaved_fast( ring: &CyclotomicRing, digit_buf: &mut [[i8; D]], @@ -279,8 +337,8 @@ fn sparse_mul_acc_sub_scalar(digit_plane: &[i8], acc: &mut [i32; } } -pub fn sparse_mul_acc_scalar( - digit_plane: &[i8], +pub(crate) fn sparse_mul_acc_scalar( + digit_plane: &[i8; D], challenge: &SparseChallenge, acc: &mut [i32; D], ) { @@ -311,13 +369,36 @@ pub fn sparse_mul_acc_scalar( } } +pub(crate) fn sparse_mul_acc_i16_scalar( + digit_plane: &[i16; D], + challenge: &SparseChallenge, + acc: &mut [i32; D], +) { + for (&pos, &coeff) in challenge.positions.iter().zip(challenge.coeffs.iter()) { + let p = pos as usize; + let split = D - p; + let scale = i32::from(coeff); + for i in 0..split { + acc[i + p] += scale * i32::from(digit_plane[i]); + } + for i in split..D { + acc[i - split] -= scale * i32::from(digit_plane[i]); + } + } +} + /// Dispatch to NEON / AVX2 / scalar sparse-multiply-accumulate. #[inline(always)] -pub fn sparse_mul_acc( - digit_plane: &[i8], +pub(crate) fn sparse_mul_acc( + digit_plane: &[i8; D], challenge: &SparseChallenge, acc: &mut [i32; D], ) { + assert_eq!(challenge.positions.len(), challenge.coeffs.len()); + assert!(challenge + .positions + .iter() + .all(|&position| position < D as u32)); #[cfg(any( target_arch = "aarch64", all(target_arch = "x86_64", target_feature = "avx2") @@ -355,6 +436,55 @@ pub fn sparse_mul_acc( sparse_mul_acc_scalar::(digit_plane, challenge, acc); } +/// Signed-i16 sparse multiply-accumulate for large inner bases. +#[inline(always)] +pub(crate) fn sparse_mul_acc_i16( + digit_plane: &[i16; D], + challenge: &SparseChallenge, + acc: &mut [i32; D], +) { + assert_eq!(challenge.positions.len(), challenge.coeffs.len()); + assert!(challenge + .positions + .iter() + .all(|&position| position < D as u32)); + #[cfg(any( + target_arch = "aarch64", + all(target_arch = "x86_64", target_feature = "avx2") + ))] + { + if use_simd_decompose_fold() + && challenge + .coeffs + .iter() + .all(|&coeff| coeff.unsigned_abs() <= 2) + { + #[cfg(target_arch = "aarch64")] + unsafe { + decompose_fold_neon::sparse_mul_acc_i16_neon( + digit_plane.as_ptr(), + acc.as_mut_ptr(), + D, + &challenge.positions, + &challenge.coeffs, + ); + } + #[cfg(all(target_arch = "x86_64", target_feature = "avx2"))] + unsafe { + decompose_fold_avx::sparse_mul_acc_i16_avx( + digit_plane.as_ptr(), + acc.as_mut_ptr(), + D, + &challenge.positions, + &challenge.coeffs, + ); + } + return; + } + } + sparse_mul_acc_i16_scalar::(digit_plane, challenge, acc); +} + /// Precompute dense rotation table for a sparse challenge. /// /// `table[c]` holds the small signed coefficients of `challenge * X^c` in the ring @@ -457,438 +587,5 @@ where } #[cfg(test)] -mod tests { - use super::rotated_accum::{ - decompose_ring_full_challenge_accumulate, should_use_rotated_challenge, - }; - use super::{ - balanced_ring_decompose_fold_partitioned, decompose_ring_interleaved, - fill_rotated_challenge, sparse_mul_acc, sparse_mul_acc_scalar, DecomposeParams, - }; - use akita_algebra::CyclotomicRing; - use akita_challenges::SparseChallenge; - use akita_field::CanonicalField; - use akita_field::{Fp64, Prime128Offset275}; - use akita_types::sis::compute_num_digits_field_width; - - /// SIMD-vs-scalar parity for the sparse-multiply-accumulate decompose-fold - /// kernel, exercising whichever SIMD backend is active (NEON / AVX2 / - /// AVX-512). Restricted to `|coeff| <= 2` so the SIMD fast path fires. - /// `D = 128` matches typical small-field schedules and gives both kernels - /// multiple full-width iterations to chew through. - #[test] - fn sparse_mul_acc_simd_matches_scalar_small_coeffs() { - const D: usize = 128; - - // Construct a small-coefficient challenge that hits both positive and - // negative paths for both magnitudes 1 and 2. Positions cover both the - // pure-prefix (split == D, no wrap) and the wrap-around case. - let positions: Vec = (0..32u32).map(|k| k * 4).collect(); - let coeffs: Vec = (0..32) - .map(|k| match k % 4 { - 0 => 1, - 1 => -1, - 2 => 2, - _ => -2, - }) - .collect(); - let challenge = SparseChallenge { - positions: positions.into(), - coeffs: coeffs.into(), - }; - - let digit_plane: [i8; D] = std::array::from_fn(|k| (((7 * k as i64) % 13) - 6) as i8); - - let mut simd_acc = [0i32; D]; - let mut scalar_acc = [0i32; D]; - - sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); - sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); - - assert_eq!( - simd_acc, scalar_acc, - "SIMD sparse_mul_acc disagreed with scalar reference" - ); - } - - /// Edge case: challenge with `pos == 0` so `split == D` and the second - /// (wrap) segment is empty. - #[test] - fn sparse_mul_acc_simd_zero_position() { - const D: usize = 64; - let challenge = SparseChallenge { - positions: vec![0].into(), - coeffs: vec![1].into(), - }; - let digit_plane: [i8; D] = std::array::from_fn(|k| (k as i8) - 32); - - let mut simd_acc = [0i32; D]; - let mut scalar_acc = [0i32; D]; - sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); - sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); - - assert_eq!(simd_acc, scalar_acc); - } - - /// Edge case: challenge with `pos == D - 1` so `split == 1` and the - /// post-split (wrap) segment is the bulk of the work. - #[test] - fn sparse_mul_acc_simd_max_position() { - const D: usize = 64; - let challenge = SparseChallenge { - positions: vec![(D - 1) as u32].into(), - coeffs: vec![-2].into(), - }; - let digit_plane: [i8; D] = std::array::from_fn(|k| ((k as i8) - 32).wrapping_mul(3)); - - let mut simd_acc = [0i32; D]; - let mut scalar_acc = [0i32; D]; - sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); - sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); - - assert_eq!(simd_acc, scalar_acc); - } - - #[test] - fn fused_full_challenge_accumulate_matches_generic_sparse_path() { - type F = Fp64<4294967197>; - const D: usize = 32; - let num_digits = 4; - let ring = CyclotomicRing::from_coefficients(std::array::from_fn(|k| { - let v = ((7 * k as i64) % 17) - 8; - F::from_i64(v) - })); - let challenge = SparseChallenge { - positions: (0..D as u32).collect(), - coeffs: (0..D) - .map(|k| match k % 5 { - 0 => -3, - 1 => -1, - 2 => 1, - 3 => 2, - _ => 4, - }) - .collect(), - }; - let q = (-F::one()).to_canonical_u128() + 1; - let log_basis = 3u32; - let threshold = akita_algebra::ring::cyclotomic::decompose_centering_threshold( - num_digits, log_basis, q, - ); - let params = DecomposeParams { - threshold, - q, - mask: (1i128 << log_basis) - 1, - half_b: 1i128 << (log_basis - 1), - b_val: 1i128 << log_basis, - log_basis, - overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, - }; - - let mut generic_digits = vec![[0i8; D]; num_digits]; - decompose_ring_interleaved::(&ring, &mut generic_digits, num_digits, ¶ms); - let mut generic_acc = vec![[0i32; D]; num_digits]; - for digit in 0..num_digits { - sparse_mul_acc::(&generic_digits[digit], &challenge, &mut generic_acc[digit]); - } - - let mut rotated = vec![[0i16; D]; D]; - fill_rotated_challenge::(&mut rotated, &challenge); - let mut fused_acc = vec![[0i32; D]; num_digits]; - decompose_ring_full_challenge_accumulate::(&ring, &rotated, &mut fused_acc, ¶ms); - - assert_eq!(fused_acc, generic_acc); - } - - #[test] - fn partitioned_full_challenge_accumulate_matches_generic_sparse_path() { - type F = Fp64<4294967197>; - const D: usize = 32; - let num_positions_per_block = 3; - let num_digits = 4; - let coeffs: Vec<_> = (0..6) - .map(|idx| { - CyclotomicRing::from_coefficients(std::array::from_fn(|k| { - let v = (((idx * 11 + k * 7) as i64) % 19) - 9; - F::from_i64(v) - })) - }) - .collect(); - let challenges = vec![ - SparseChallenge { - positions: (0..D as u32).collect(), - coeffs: (0..D) - .map(|k| match k % 4 { - 0 => -2, - 1 => -1, - 2 => 1, - _ => 3, - }) - .collect(), - }, - SparseChallenge { - positions: (0..D as u32).collect(), - coeffs: (0..D) - .map(|k| match k % 5 { - 0 => -3, - 1 => -1, - 2 => 1, - 3 => 2, - _ => 4, - }) - .collect(), - }, - ]; - let q = (-F::one()).to_canonical_u128() + 1; - let log_basis = 3u32; - let threshold = akita_algebra::ring::cyclotomic::decompose_centering_threshold( - num_digits, log_basis, q, - ); - let params = DecomposeParams { - threshold, - q, - mask: (1i128 << log_basis) - 1, - half_b: 1i128 << (log_basis - 1), - b_val: 1i128 << log_basis, - log_basis, - overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, - }; - - let fused = balanced_ring_decompose_fold_partitioned::( - &coeffs, - &challenges, - num_positions_per_block, - num_digits, - ¶ms, - ); - - let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; - let mut digit_buf = vec![[0i8; D]; num_digits]; - for (block_idx, challenge) in challenges.iter().enumerate() { - let block_start = block_idx * num_positions_per_block; - for local_idx in 0..num_positions_per_block { - let ring = &coeffs[block_start + local_idx]; - decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); - let base = local_idx * num_digits; - for digit in 0..num_digits { - sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); - } - } - } - - assert_eq!(fused, generic); - } - - #[test] - fn partitioned_high_density_d32_challenge_uses_rotated_path() { - type F = Fp64<4294967197>; - const D: usize = 32; - let num_positions_per_block = 3; - let num_digits = 4; - let coeffs: Vec<_> = (0..6) - .map(|idx| { - CyclotomicRing::from_coefficients(std::array::from_fn(|k| { - let v = (((idx * 13 + k * 5) as i64) % 23) - 11; - F::from_i64(v) - })) - }) - .collect(); - let high_density = SparseChallenge { - positions: vec![ - 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, - ] - .into(), - coeffs: vec![ - 2, 2, -1, 4, 1, -1, 5, 4, -3, -4, -3, -6, 2, -8, -4, -3, -7, -3, 4, -1, 4, -4, 5, - -2, -4, 6, 6, -3, 4, 4, - ] - .into(), - }; - let sparse = SparseChallenge { - positions: vec![1, 7, 19].into(), - coeffs: vec![2, -1, 3].into(), - }; - assert!(should_use_rotated_challenge::(&high_density)); - assert!(!should_use_rotated_challenge::(&sparse)); - let challenges = vec![high_density, sparse]; - let q = (-F::one()).to_canonical_u128() + 1; - let log_basis = 3u32; - let threshold = akita_algebra::ring::cyclotomic::decompose_centering_threshold( - num_digits, log_basis, q, - ); - let params = DecomposeParams { - threshold, - q, - mask: (1i128 << log_basis) - 1, - half_b: 1i128 << (log_basis - 1), - b_val: 1i128 << log_basis, - log_basis, - overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, - }; - - let mixed = balanced_ring_decompose_fold_partitioned::( - &coeffs, - &challenges, - num_positions_per_block, - num_digits, - ¶ms, - ); - - let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; - let mut digit_buf = vec![[0i8; D]; num_digits]; - for (block_idx, challenge) in challenges.iter().enumerate() { - let block_start = block_idx * num_positions_per_block; - for local_idx in 0..num_positions_per_block { - let ring = &coeffs[block_start + local_idx]; - decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); - let base = local_idx * num_digits; - for digit in 0..num_digits { - sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); - } - } - } - - assert_eq!(mixed, generic); - } - - #[test] - fn partitioned_high_density_d64_challenge_uses_rotated_path() { - type F = Fp64<4294967197>; - const D: usize = 64; - let num_positions_per_block = 2; - let num_digits = 3; - let coeffs: Vec<_> = (0..4) - .map(|idx| { - CyclotomicRing::from_coefficients(std::array::from_fn(|k| { - let v = (((idx * 17 + k * 7) as i64) % 31) - 15; - F::from_i64(v) - })) - }) - .collect(); - let high_density = SparseChallenge { - positions: (0..42u32).collect(), - coeffs: (0..42) - .map(|k| match k % 4 { - 0 => -2, - 1 => -1, - 2 => 1, - _ => 2, - }) - .collect(), - }; - let sparse = SparseChallenge { - positions: vec![1, 17, 33, 49].into(), - coeffs: vec![2, -1, 1, -2].into(), - }; - assert!(should_use_rotated_challenge::(&high_density)); - assert!(!should_use_rotated_challenge::(&sparse)); - let challenges = vec![high_density, sparse]; - let q = (-F::one()).to_canonical_u128() + 1; - let log_basis = 4u32; - let threshold = akita_algebra::ring::cyclotomic::decompose_centering_threshold( - num_digits, log_basis, q, - ); - let params = DecomposeParams { - threshold, - q, - mask: (1i128 << log_basis) - 1, - half_b: 1i128 << (log_basis - 1), - b_val: 1i128 << log_basis, - log_basis, - overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, - }; - - let mixed = balanced_ring_decompose_fold_partitioned::( - &coeffs, - &challenges, - num_positions_per_block, - num_digits, - ¶ms, - ); - - let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; - let mut digit_buf = vec![[0i8; D]; num_digits]; - for (block_idx, challenge) in challenges.iter().enumerate() { - let block_start = block_idx * num_positions_per_block; - for local_idx in 0..num_positions_per_block { - let ring = &coeffs[block_start + local_idx]; - decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); - let base = local_idx * num_digits; - for digit in 0..num_digits { - sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); - } - } - } - - assert_eq!(mixed, generic); - } - - #[test] - fn fp128_overflow_paths_match_direct_and_fused_sparse_path() { - type F = Prime128Offset275; - const D: usize = 32; - - let log_basis = 4u32; - let num_digits = compute_num_digits_field_width(128, log_basis); - let q = (-F::one()).to_canonical_u128() + 1; - let threshold = akita_algebra::ring::cyclotomic::decompose_centering_threshold( - num_digits, log_basis, q, - ); - let i128_max = i128::MAX as u128; - let boundary_values = [ - 0, - threshold, - threshold + 1, - q - i128_max - 1, - q - i128_max, - q - 1, - ]; - let ring = CyclotomicRing::from_coefficients(std::array::from_fn(|k| { - F::from_canonical_u128_reduced(boundary_values[k % boundary_values.len()]) - })); - let challenge = SparseChallenge { - positions: (0..D as u32).collect(), - coeffs: (0..D) - .map(|k| match k % 5 { - 0 => -3, - 1 => -1, - 2 => 1, - 3 => 2, - _ => 4, - }) - .collect(), - }; - let params = DecomposeParams { - threshold, - q, - mask: (1i128 << log_basis) - 1, - half_b: 1i128 << (log_basis - 1), - b_val: 1i128 << log_basis, - log_basis, - overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, - }; - - assert!( - params.overflow_possible, - "test must exercise the overflow path" - ); - - let mut actual_digits = vec![[0i8; D]; num_digits]; - decompose_ring_interleaved::(&ring, &mut actual_digits, num_digits, ¶ms); - let mut expected_digits = vec![[0i8; D]; num_digits]; - ring.balanced_decompose_pow2_i8_into(&mut expected_digits, log_basis); - assert_eq!(actual_digits, expected_digits); - - let mut generic_acc = vec![[0i32; D]; num_digits]; - for digit in 0..num_digits { - sparse_mul_acc::(&actual_digits[digit], &challenge, &mut generic_acc[digit]); - } - - let mut rotated = vec![[0i16; D]; D]; - fill_rotated_challenge::(&mut rotated, &challenge); - let mut fused_acc = vec![[0i32; D]; num_digits]; - decompose_ring_full_challenge_accumulate::(&ring, &rotated, &mut fused_acc, ¶ms); - assert_eq!(fused_acc, generic_acc); - } -} +#[path = "tests.rs"] +mod tests; diff --git a/crates/akita-prover/src/backend/poly_helpers/tests.rs b/crates/akita-prover/src/backend/poly_helpers/tests.rs new file mode 100644 index 000000000..1e00632fb --- /dev/null +++ b/crates/akita-prover/src/backend/poly_helpers/tests.rs @@ -0,0 +1,523 @@ +use super::rotated_accum::{ + decompose_ring_full_challenge_accumulate, should_use_rotated_challenge, +}; +use super::{ + balanced_ring_decompose_fold_partitioned, decompose_ring_interleaved, fill_rotated_challenge, + sparse_mul_acc, sparse_mul_acc_i16, sparse_mul_acc_i16_scalar, sparse_mul_acc_scalar, + DecomposeParams, +}; +use akita_algebra::CyclotomicRing; +use akita_challenges::SparseChallenge; +use akita_field::CanonicalField; +use akita_field::{Fp64, Prime128Offset275}; +use akita_types::sis::compute_num_digits_field_width; + +/// SIMD-vs-scalar parity for the sparse-multiply-accumulate decompose-fold +/// kernel, exercising whichever SIMD backend is active (NEON / AVX2 / +/// AVX-512). Restricted to `|coeff| <= 2` so the SIMD fast path fires. +/// `D = 128` matches typical small-field schedules and gives both kernels +/// multiple full-width iterations to chew through. +#[test] +fn sparse_mul_acc_simd_matches_scalar_small_coeffs() { + const D: usize = 128; + + // Construct a small-coefficient challenge that hits both positive and + // negative paths for both magnitudes 1 and 2. Positions cover both the + // pure-prefix (split == D, no wrap) and the wrap-around case. + let positions: Vec = (0..32u32).map(|k| k * 4).collect(); + let coeffs: Vec = (0..32) + .map(|k| match k % 4 { + 0 => 1, + 1 => -1, + 2 => 2, + _ => -2, + }) + .collect(); + let challenge = SparseChallenge { + positions: positions.into(), + coeffs: coeffs.into(), + }; + + let digit_plane: [i8; D] = std::array::from_fn(|k| (((7 * k as i64) % 13) - 6) as i8); + + let mut simd_acc = [0i32; D]; + let mut scalar_acc = [0i32; D]; + + sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); + sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); + + assert_eq!( + simd_acc, scalar_acc, + "SIMD sparse_mul_acc disagreed with scalar reference" + ); +} + +#[test] +fn sparse_mul_acc_i16_simd_matches_scalar() { + const D: usize = 128; + let challenge = SparseChallenge { + positions: (0..32u32).map(|k| k * 4).collect(), + coeffs: (0..32) + .map(|k| match k % 4 { + 0 => 1, + 1 => -1, + 2 => 2, + _ => -2, + }) + .collect(), + }; + let digit_plane: [i16; D] = std::array::from_fn(|k| (((811 * k as i64) % 1024) - 512) as i16); + let mut simd_acc = [0i32; D]; + let mut scalar_acc = [0i32; D]; + sparse_mul_acc_i16::(&digit_plane, &challenge, &mut simd_acc); + sparse_mul_acc_i16_scalar::(&digit_plane, &challenge, &mut scalar_acc); + assert_eq!(simd_acc, scalar_acc); +} + +#[test] +#[should_panic] +fn sparse_mul_acc_rejects_out_of_range_challenge_before_dispatch() { + const D: usize = 64; + let challenge = SparseChallenge { + positions: vec![D as u32].into(), + coeffs: vec![1].into(), + }; + sparse_mul_acc_i16(&[0; D], &challenge, &mut [0; D]); +} + +#[test] +fn large_basis_partitioned_fold_preserves_i16_digits() { + type F = Prime128Offset275; + const D: usize = 128; + const POSITIONS: usize = 2; + let log_basis = 10; + let num_digits = compute_num_digits_field_width(128, log_basis); + let rings = (0..4) + .map(|ring| { + CyclotomicRing::from_coefficients(std::array::from_fn(|coefficient| { + F::from_canonical_u128_reduced(((ring * D + coefficient) as u128 + 1) * 509) + })) + }) + .collect::>(); + let challenges = vec![ + SparseChallenge { + positions: vec![0, 7, 63].into(), + coeffs: vec![1, -2, 2].into(), + }, + SparseChallenge { + positions: vec![3, 19, 91].into(), + coeffs: vec![-1, 2, 1].into(), + }, + ]; + let q = (-F::one()).to_canonical_u128() + 1; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + let actual = balanced_ring_decompose_fold_partitioned( + &rings, + &challenges, + POSITIONS, + num_digits, + ¶ms, + ); + let mut expected = vec![[0i32; D]; POSITIONS * num_digits]; + for (block, challenge) in challenges.iter().enumerate() { + for position in 0..POSITIONS { + let digits = rings[block * POSITIONS + position] + .balanced_decompose_pow2_i16(num_digits, log_basis); + for digit in 0..num_digits { + sparse_mul_acc_i16_scalar( + &digits[digit], + challenge, + &mut expected[position * num_digits + digit], + ); + } + } + } + assert_eq!(actual, expected); +} + +/// Edge case: challenge with `pos == 0` so `split == D` and the second +/// (wrap) segment is empty. +#[test] +fn sparse_mul_acc_simd_zero_position() { + const D: usize = 64; + let challenge = SparseChallenge { + positions: vec![0].into(), + coeffs: vec![1].into(), + }; + let digit_plane: [i8; D] = std::array::from_fn(|k| (k as i8) - 32); + + let mut simd_acc = [0i32; D]; + let mut scalar_acc = [0i32; D]; + sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); + sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); + + assert_eq!(simd_acc, scalar_acc); +} + +/// Edge case: challenge with `pos == D - 1` so `split == 1` and the +/// post-split (wrap) segment is the bulk of the work. +#[test] +fn sparse_mul_acc_simd_max_position() { + const D: usize = 64; + let challenge = SparseChallenge { + positions: vec![(D - 1) as u32].into(), + coeffs: vec![-2].into(), + }; + let digit_plane: [i8; D] = std::array::from_fn(|k| ((k as i8) - 32).wrapping_mul(3)); + + let mut simd_acc = [0i32; D]; + let mut scalar_acc = [0i32; D]; + sparse_mul_acc::(&digit_plane, &challenge, &mut simd_acc); + sparse_mul_acc_scalar::(&digit_plane, &challenge, &mut scalar_acc); + + assert_eq!(simd_acc, scalar_acc); +} + +#[test] +fn fused_full_challenge_accumulate_matches_generic_sparse_path() { + type F = Fp64<4294967197>; + const D: usize = 32; + let num_digits = 4; + let ring = CyclotomicRing::from_coefficients(std::array::from_fn(|k| { + let v = ((7 * k as i64) % 17) - 8; + F::from_i64(v) + })); + let challenge = SparseChallenge { + positions: (0..D as u32).collect(), + coeffs: (0..D) + .map(|k| match k % 5 { + 0 => -3, + 1 => -1, + 2 => 1, + 3 => 2, + _ => 4, + }) + .collect(), + }; + let q = (-F::one()).to_canonical_u128() + 1; + let log_basis = 3u32; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + let mut generic_digits = vec![[0i8; D]; num_digits]; + decompose_ring_interleaved::(&ring, &mut generic_digits, num_digits, ¶ms); + let mut generic_acc = vec![[0i32; D]; num_digits]; + for digit in 0..num_digits { + sparse_mul_acc::(&generic_digits[digit], &challenge, &mut generic_acc[digit]); + } + + let mut rotated = vec![[0i16; D]; D]; + fill_rotated_challenge::(&mut rotated, &challenge); + let mut fused_acc = vec![[0i32; D]; num_digits]; + decompose_ring_full_challenge_accumulate::(&ring, &rotated, &mut fused_acc, ¶ms); + + assert_eq!(fused_acc, generic_acc); +} + +#[test] +fn partitioned_full_challenge_accumulate_matches_generic_sparse_path() { + type F = Fp64<4294967197>; + const D: usize = 32; + let num_positions_per_block = 3; + let num_digits = 4; + let coeffs: Vec<_> = (0..6) + .map(|idx| { + CyclotomicRing::from_coefficients(std::array::from_fn(|k| { + let v = (((idx * 11 + k * 7) as i64) % 19) - 9; + F::from_i64(v) + })) + }) + .collect(); + let challenges = vec![ + SparseChallenge { + positions: (0..D as u32).collect(), + coeffs: (0..D) + .map(|k| match k % 4 { + 0 => -2, + 1 => -1, + 2 => 1, + _ => 3, + }) + .collect(), + }, + SparseChallenge { + positions: (0..D as u32).collect(), + coeffs: (0..D) + .map(|k| match k % 5 { + 0 => -3, + 1 => -1, + 2 => 1, + 3 => 2, + _ => 4, + }) + .collect(), + }, + ]; + let q = (-F::one()).to_canonical_u128() + 1; + let log_basis = 3u32; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + let fused = balanced_ring_decompose_fold_partitioned::( + &coeffs, + &challenges, + num_positions_per_block, + num_digits, + ¶ms, + ); + + let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; + let mut digit_buf = vec![[0i8; D]; num_digits]; + for (block_idx, challenge) in challenges.iter().enumerate() { + let block_start = block_idx * num_positions_per_block; + for local_idx in 0..num_positions_per_block { + let ring = &coeffs[block_start + local_idx]; + decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); + let base = local_idx * num_digits; + for digit in 0..num_digits { + sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); + } + } + } + + assert_eq!(fused, generic); +} + +#[test] +fn partitioned_high_density_d32_challenge_uses_rotated_path() { + type F = Fp64<4294967197>; + const D: usize = 32; + let num_positions_per_block = 3; + let num_digits = 4; + let coeffs: Vec<_> = (0..6) + .map(|idx| { + CyclotomicRing::from_coefficients(std::array::from_fn(|k| { + let v = (((idx * 13 + k * 5) as i64) % 23) - 11; + F::from_i64(v) + })) + }) + .collect(); + let high_density = SparseChallenge { + positions: vec![ + 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, + ] + .into(), + coeffs: vec![ + 2, 2, -1, 4, 1, -1, 5, 4, -3, -4, -3, -6, 2, -8, -4, -3, -7, -3, 4, -1, 4, -4, 5, -2, + -4, 6, 6, -3, 4, 4, + ] + .into(), + }; + let sparse = SparseChallenge { + positions: vec![1, 7, 19].into(), + coeffs: vec![2, -1, 3].into(), + }; + assert!(should_use_rotated_challenge::(&high_density)); + assert!(!should_use_rotated_challenge::(&sparse)); + let challenges = vec![high_density, sparse]; + let q = (-F::one()).to_canonical_u128() + 1; + let log_basis = 3u32; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + let mixed = balanced_ring_decompose_fold_partitioned::( + &coeffs, + &challenges, + num_positions_per_block, + num_digits, + ¶ms, + ); + + let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; + let mut digit_buf = vec![[0i8; D]; num_digits]; + for (block_idx, challenge) in challenges.iter().enumerate() { + let block_start = block_idx * num_positions_per_block; + for local_idx in 0..num_positions_per_block { + let ring = &coeffs[block_start + local_idx]; + decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); + let base = local_idx * num_digits; + for digit in 0..num_digits { + sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); + } + } + } + + assert_eq!(mixed, generic); +} + +#[test] +fn partitioned_high_density_d64_challenge_uses_rotated_path() { + type F = Fp64<4294967197>; + const D: usize = 64; + let num_positions_per_block = 2; + let num_digits = 3; + let coeffs: Vec<_> = (0..4) + .map(|idx| { + CyclotomicRing::from_coefficients(std::array::from_fn(|k| { + let v = (((idx * 17 + k * 7) as i64) % 31) - 15; + F::from_i64(v) + })) + }) + .collect(); + let high_density = SparseChallenge { + positions: (0..42u32).collect(), + coeffs: (0..42) + .map(|k| match k % 4 { + 0 => -2, + 1 => -1, + 2 => 1, + _ => 2, + }) + .collect(), + }; + let sparse = SparseChallenge { + positions: vec![1, 17, 33, 49].into(), + coeffs: vec![2, -1, 1, -2].into(), + }; + assert!(should_use_rotated_challenge::(&high_density)); + assert!(!should_use_rotated_challenge::(&sparse)); + let challenges = vec![high_density, sparse]; + let q = (-F::one()).to_canonical_u128() + 1; + let log_basis = 4u32; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + let mixed = balanced_ring_decompose_fold_partitioned::( + &coeffs, + &challenges, + num_positions_per_block, + num_digits, + ¶ms, + ); + + let mut generic = vec![[0i32; D]; num_positions_per_block * num_digits]; + let mut digit_buf = vec![[0i8; D]; num_digits]; + for (block_idx, challenge) in challenges.iter().enumerate() { + let block_start = block_idx * num_positions_per_block; + for local_idx in 0..num_positions_per_block { + let ring = &coeffs[block_start + local_idx]; + decompose_ring_interleaved::(ring, &mut digit_buf, num_digits, ¶ms); + let base = local_idx * num_digits; + for digit in 0..num_digits { + sparse_mul_acc::(&digit_buf[digit], challenge, &mut generic[base + digit]); + } + } + } + + assert_eq!(mixed, generic); +} + +#[test] +fn fp128_overflow_paths_match_direct_and_fused_sparse_path() { + type F = Prime128Offset275; + const D: usize = 32; + + let log_basis = 4u32; + let num_digits = compute_num_digits_field_width(128, log_basis); + let q = (-F::one()).to_canonical_u128() + 1; + let threshold = + akita_algebra::ring::cyclotomic::decompose_centering_threshold(num_digits, log_basis, q); + let i128_max = i128::MAX as u128; + let boundary_values = [ + 0, + threshold, + threshold + 1, + q - i128_max - 1, + q - i128_max, + q - 1, + ]; + let ring = CyclotomicRing::from_coefficients(std::array::from_fn(|k| { + F::from_canonical_u128_reduced(boundary_values[k % boundary_values.len()]) + })); + let challenge = SparseChallenge { + positions: (0..D as u32).collect(), + coeffs: (0..D) + .map(|k| match k % 5 { + 0 => -3, + 1 => -1, + 2 => 1, + 3 => 2, + _ => 4, + }) + .collect(), + }; + let params = DecomposeParams { + threshold, + q, + mask: (1i128 << log_basis) - 1, + half_b: 1i128 << (log_basis - 1), + b_val: 1i128 << log_basis, + log_basis, + overflow_possible: q.saturating_sub(threshold) > i128::MAX as u128, + }; + + assert!( + params.overflow_possible, + "test must exercise the overflow path" + ); + + let mut actual_digits = vec![[0i8; D]; num_digits]; + decompose_ring_interleaved::(&ring, &mut actual_digits, num_digits, ¶ms); + let mut expected_digits = vec![[0i8; D]; num_digits]; + ring.balanced_decompose_pow2_i8_into(&mut expected_digits, log_basis); + assert_eq!(actual_digits, expected_digits); + + let mut generic_acc = vec![[0i32; D]; num_digits]; + for digit in 0..num_digits { + sparse_mul_acc::(&actual_digits[digit], &challenge, &mut generic_acc[digit]); + } + + let mut rotated = vec![[0i16; D]; D]; + fill_rotated_challenge::(&mut rotated, &challenge); + let mut fused_acc = vec![[0i32; D]; num_digits]; + decompose_ring_full_challenge_accumulate::(&ring, &rotated, &mut fused_acc, ¶ms); + assert_eq!(fused_acc, generic_acc); +} diff --git a/crates/akita-prover/src/compute/cpu.rs b/crates/akita-prover/src/compute/cpu.rs deleted file mode 100644 index 5068a4dbb..000000000 --- a/crates/akita-prover/src/compute/cpu.rs +++ /dev/null @@ -1,1403 +0,0 @@ -use crate::compute::backend::{ - CompressionComputeBackend, CompressionRowsProducts, ComputeBackendSetup, - CyclicRowsComputeBackend, DigitRowsComputeBackend, -}; -use crate::compute::kernels::{RingSwitchQuotientKernel, RingSwitchRelationKernel}; -use crate::compute::operation_plans::{RingSwitchQuotientPlan, RingSwitchRelationPlan}; -use crate::compute::plans::{DenseCommitInput, RingSwitchRelationRows}; -use crate::compute::requirements::{NttOperationCluster, RoutedNttRequirement}; -use crate::kernels::linear::validate_compression_batch_shape; -use crate::kernels::linear::{ - digit_blocks_are_balanced, fused_quotient_matrix_extent, - fused_split_eq_quotients_prover_bounds, fused_split_eq_quotients_streamed_prover_bounds, - mat_vec_mul_ntt_dense_digits_i8, mat_vec_mul_ntt_digits_i8, mat_vec_mul_ntt_i8, - mat_vec_mul_ntt_i8_dense, mat_vec_mul_ntt_i8_dense_single_row, mat_vec_mul_ntt_raw_digits_i8, - mat_vec_mul_ntt_single_i8, mat_vec_mul_ntt_single_i8_cyclic, selected_crt_i8_capacity_profile, - CrtI8CapacityProfile, -}; -use akita_algebra::CyclotomicRing; -use akita_field::{AkitaError, CanonicalField, FieldCore, HalvingField}; -use akita_types::{ - dispatch_for_field, prepare_ntt_cache, AkitaExpandedSetup, NttCacheKey, NttCacheMode, - NttTransformDomain, PreparedNttCache, -}; -use std::any::Any; -use std::array::from_fn; -use std::collections::HashMap; -#[cfg(test)] -use std::sync::atomic::{AtomicUsize, Ordering}; -use std::sync::{Arc, Mutex, OnceLock}; - -mod compression_cache; -mod ring_switch; -#[cfg(test)] -mod streamed_tests; - -use compression_cache::CompressionNttCache; - -/// CPU backend using the existing Rust/Rayon kernels. -/// -/// The backend owns deployment resource limits. These limits only choose -/// equivalent CPU execution paths and do not affect proof bytes or protocol -/// parameters. -#[derive(Debug, Clone, Copy, Eq, PartialEq)] -pub struct CpuBackend { - max_cached_ring_switch_elements: usize, - commit_scratch_bytes_per_worker: usize, -} - -type NttSlotCell = OnceLock, AkitaError>>; - -impl CpuBackend { - /// Default maximum cached extent for a ring-switch NTT operation. - pub const DEFAULT_MAX_CACHED_RING_SWITCH_ELEMENTS: usize = 1 << 21; - - /// Default temporary sparse commitment memory per worker. - pub const DEFAULT_COMMIT_SCRATCH_BYTES_PER_WORKER: usize = 8 << 20; - - /// CPU backend with the default resource limits. - pub const DEFAULT: Self = Self { - max_cached_ring_switch_elements: Self::DEFAULT_MAX_CACHED_RING_SWITCH_ELEMENTS, - commit_scratch_bytes_per_worker: Self::DEFAULT_COMMIT_SCRATCH_BYTES_PER_WORKER, - }; - - /// Creates a CPU backend with explicit resource limits. - /// - /// A zero ring-switch limit streams every stream-capable ring-switch - /// operation. A limit of [`usize::MAX`] retains every supported operation. - /// The commitment scratch budget must be nonzero. A commitment whose minimum - /// tile does not fit returns [`AkitaError::InvalidSetup`]. - pub fn with_resource_limits( - max_cached_ring_switch_elements: usize, - commit_scratch_bytes_per_worker: usize, - ) -> Result { - if commit_scratch_bytes_per_worker == 0 { - return Err(AkitaError::InvalidSetup( - "CPU commitment scratch bytes per worker must be nonzero".into(), - )); - } - Ok(Self { - max_cached_ring_switch_elements, - commit_scratch_bytes_per_worker, - }) - } - - /// Returns the largest ring-switch operation extent retained as an NTT cache. - pub const fn max_cached_ring_switch_elements(&self) -> usize { - self.max_cached_ring_switch_elements - } - - /// Returns the temporary sparse commitment memory allowed per worker. - pub const fn commit_scratch_bytes_per_worker(&self) -> usize { - self.commit_scratch_bytes_per_worker - } - - #[inline] - pub(crate) fn ntt_operation_uses_cache( - &self, - cluster: NttOperationCluster, - num_ring_elements: usize, - ) -> bool { - let cached = cluster != NttOperationCluster::RingSwitch - || num_ring_elements <= self.max_cached_ring_switch_elements; - tracing::debug!( - ?cluster, - num_ring_elements, - max_cached_ring_switch_elements = self.max_cached_ring_switch_elements, - cached, - "CPU NTT execution policy" - ); - cached - } -} - -impl Default for CpuBackend { - fn default() -> Self { - Self::DEFAULT - } -} - -/// CPU-prepared setup keyed by runtime ring dimension. -/// -/// NTT caches are keyed by [`NttCacheKey`] and built lazily. Each ring -/// dimension/domain pair retains only its largest requested prefix; a covering -/// cell also serves smaller requests. Each cell makes concurrent construction -/// of that prefix single-flight. Diagnostic compression caches remain in a -/// separate namespace. -#[derive(Debug)] -pub struct CpuPreparedSetup { - expanded: Arc>, - shared_ntt: Mutex>>, - compression_ntt: CompressionNttCache, - ntt_i8_capacity_by_ring_d: Mutex>, - #[cfg(test)] - ntt_slot_build_count: AtomicUsize, -} - -struct ErasedCpuNttCache { - ring_d: usize, - cache_bytes: usize, - cache: Arc, -} - -impl core::fmt::Debug for ErasedCpuNttCache { - fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - formatter - .debug_struct("ErasedCpuNttCache") - .field("ring_d", &self.ring_d) - .field("cache_bytes", &self.cache_bytes) - .finish_non_exhaustive() - } -} - -/// CRT/NTT profile and universal i8 capacity metadata for a prepared setup. -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct PreparedCrtNttProfile { - /// Stable profile identifier used by benchmark/report tooling. - pub profile_id: &'static str, - /// Number of CRT primes in the selected profile. - pub num_primes: usize, - /// Maximum bit length of a CRT prime modulus. - pub prime_modulus_bits: u32, - /// Signed storage width used by the CRT NTT representation. - pub limb_bits: u32, - /// Largest balanced i8 log basis accepted by prover i8 kernels. - pub max_i8_log_basis: u32, - /// Safe accumulation width for balanced i8 digits at `max_i8_log_basis`. - pub balanced_digit_safe_width: usize, - /// Safe accumulation width for raw signed i8 recursive-witness inputs. - pub raw_i8_safe_width: usize, -} - -/// One initialized exact-prefix NTT cache entry for diagnostics and profiling. -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct PreparedNttCacheMetric { - /// Exact cache identity. - pub key: NttCacheKey, - /// Bytes used by materialized transform vectors, excluding map metadata. - pub cache_bytes: usize, -} - -impl From for PreparedCrtNttProfile { - fn from(profile: CrtI8CapacityProfile) -> Self { - Self { - profile_id: profile.profile_id, - num_primes: profile.num_primes, - prime_modulus_bits: profile.prime_modulus_bits, - limb_bits: profile.limb_bits, - max_i8_log_basis: profile.max_i8_log_basis, - balanced_digit_safe_width: profile.balanced_digit_safe_width, - raw_i8_safe_width: profile.raw_i8_safe_width, - } - } -} - -impl CpuPreparedSetup { - #[cfg(test)] - pub(crate) fn ntt_slot_build_count(&self) -> usize { - self.ntt_slot_build_count.load(Ordering::Relaxed) - } - - pub(crate) fn with_shared_ntt( - &self, - key: NttCacheKey, - f: impl FnOnce(&PreparedNttCache) -> Result, - ) -> Result { - if key.ring_d != D { - return Err(AkitaError::InvalidSetup( - "NTT prefix requirement ring dimension does not match kernel".into(), - )); - } - let required_num_field_elements = key.num_field_elements()?; - if required_num_field_elements > self.expanded.shared_matrix.num_field_elements() { - return Err(AkitaError::InvalidSetup(format!( - "NTT prefix requires {required_num_field_elements} field elements but setup has {}", - self.expanded.shared_matrix.num_field_elements() - ))); - } - let slot = prepare_ntt_slot_on_prepared(self, key)?; - if slot.ring_d != D { - return Err(AkitaError::InvalidSetup(format!( - "prepared CPU NTT ring_d mismatch: stored {}, requested {D}", - slot.ring_d - ))); - } - let typed = slot - .cache - .downcast_ref::>() - .ok_or_else(|| AkitaError::InvalidSetup("prepared CPU NTT type mismatch".into()))?; - f(typed) - } - - fn with_compression_ntt( - &self, - input_width: usize, - f: impl FnOnce(&PreparedNttCache) -> Result, - ) -> Result { - self.compression_ntt - .with_ntt(self.expanded.as_ref(), input_width, f) - } - - /// In-memory byte footprint of all shared setup NTT caches. - pub fn shared_ntt_cache_bytes(&self) -> usize { - self.shared_ntt - .lock() - .unwrap_or_else(|e| e.into_inner()) - .values() - .filter_map(|entry| entry.get()) - .filter_map(|result| result.as_ref().ok()) - .map(|slot| slot.cache_bytes) - .sum() - } - - /// Drop every built shared matrix NTT slot and return the bytes freed. - /// - /// The small compression NTT cache remains resident across this lifecycle - /// boundary. Removing each released shared key ensures that a later smaller - /// request creates its exact extent instead of rebuilding the released - /// larger prefix. Active readers keep the released slot alive through their - /// `Arc`. - /// Construction already in progress is not cancelled, so callers that need - /// an empty cache after this call must use a quiescent lifecycle boundary. - pub fn drop_built_ntt_slots(&self) -> Result { - let mut freed = 0usize; - let mut cache = self - .shared_ntt - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; - let mut released_keys = Vec::new(); - for (key, cell) in cache.iter() { - let built_bytes = cell - .get() - .and_then(|result| result.as_ref().ok()) - .map(|slot| slot.cache_bytes); - if let Some(bytes) = built_bytes { - freed = freed.checked_add(bytes).ok_or_else(|| { - AkitaError::InvalidSetup( - "released shared matrix NTT cache bytes overflow".into(), - ) - })?; - released_keys.push(*key); - } - } - for key in released_keys { - cache.remove(&key); - } - drop(cache); - if freed > 0 { - tracing::info!(freed_bytes = freed, "dropped built shared matrix NTT slots"); - } - Ok(freed) - } - - /// Initialized shared NTT cache entries in deterministic reporting order. - pub fn shared_ntt_cache_metrics(&self) -> Result, AkitaError> { - let cache = self - .shared_ntt - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; - let mut metrics = cache - .iter() - .filter_map(|(key, entry)| { - entry - .get() - .and_then(|result| result.as_ref().ok()) - .map(|slot| PreparedNttCacheMetric { - key: *key, - cache_bytes: slot.cache_bytes, - }) - }) - .collect::>(); - metrics.sort_by_key(|metric| { - let domain = match metric.key.domain { - NttTransformDomain::Negacyclic => 0, - NttTransformDomain::Cyclic => 1, - }; - (metric.key.ring_d, domain, metric.key.num_ring_elements) - }); - Ok(metrics) - } - - /// Planned resident bytes for max-joined exact base-profile cache keys. - pub fn planned_shared_ntt_cache_bytes( - &self, - keys: impl IntoIterator, - ) -> Result { - let mut joined = HashMap::<(usize, NttTransformDomain), usize>::new(); - for key in keys { - if key.num_field_elements()? > self.expanded.shared_matrix.num_field_elements() { - return Err(AkitaError::InvalidSetup( - "planned NTT prefix exceeds prepared public matrix".into(), - )); - } - joined - .entry((key.ring_d, key.domain)) - .and_modify(|count| *count = (*count).max(key.num_ring_elements)) - .or_insert(key.num_ring_elements); - } - joined - .into_iter() - .try_fold(0usize, |total, ((ring_d, _domain), count)| { - let profile = - dispatch_for_field!(ProtocolDispatchSlot::Ntt, F, ring_d, |RING_D| { - selected_crt_i8_capacity_profile::() - })?; - count - .checked_mul(ring_d) - .and_then(|bytes| bytes.checked_mul(profile.num_primes)) - .and_then(|bytes| bytes.checked_mul(core::mem::size_of::())) - .and_then(|bytes| total.checked_add(bytes)) - .ok_or_else(|| AkitaError::InvalidSetup("planned NTT bytes overflow".into())) - }) - } - - /// In-memory byte footprint of exact-prefix compression NTT caches. - pub fn compression_ntt_cache_bytes(&self) -> usize { - self.compression_ntt.cache_bytes() - } - - /// Complete in-memory byte footprint of all CPU NTT caches. - pub fn ntt_cache_bytes(&self) -> Result { - self.shared_ntt_cache_bytes() - .checked_add(self.compression_ntt_cache_bytes()) - .ok_or_else(|| AkitaError::InvalidSetup("CPU NTT cache bytes overflow".into())) - } - - /// CRT/NTT profile and universal i8 capacity metadata for `ring_d`. - pub fn shared_ntt_profile(&self, ring_d: usize) -> Result { - self.ntt_i8_capacity_by_ring_d - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT profile lock poisoned".into()))? - .get(&ring_d) - .copied() - .map(Into::into) - .ok_or_else(|| { - AkitaError::InvalidSetup(format!( - "prepared setup has no CRT/i8 capacity profile for ring_d={ring_d}" - )) - }) - } -} - -fn build_ntt_slot_for_key( - expanded: &AkitaExpandedSetup, - key: NttCacheKey, -) -> Result { - dispatch_for_field!(ProtocolDispatchSlot::Ntt, F, key.ring_d, |RING_D| { - let view = expanded - .shared_matrix() - .ring_view::(1, key.num_ring_elements)?; - let mode = match key.domain { - NttTransformDomain::Negacyclic => NttCacheMode::Negacyclic, - NttTransformDomain::Cyclic => NttCacheMode::Cyclic, - }; - let cache = Arc::new(prepare_ntt_cache(view, mode)?); - Ok(ErasedCpuNttCache { - ring_d: RING_D, - cache_bytes: cache.cache_bytes(), - cache, - }) - }) -} - -fn record_ntt_profile_on_prepared( - prepared: &CpuPreparedSetup, - key: NttCacheKey, - profile: CrtI8CapacityProfile, -) -> Result<(), AkitaError> { - prepared - .ntt_i8_capacity_by_ring_d - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT profile lock poisoned".into()))? - .entry(key.ring_d) - .or_insert(profile); - Ok(()) -} - -fn prepare_ntt_slot_on_prepared( - prepared: &CpuPreparedSetup, - requested_key: NttCacheKey, -) -> Result, AkitaError> { - let profile = dispatch_for_field!( - ProtocolDispatchSlot::Ntt, - F, - requested_key.ring_d, - |RING_D| selected_crt_i8_capacity_profile::() - )?; - loop { - let (key, entry) = { - let mut cache = prepared - .shared_ntt - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; - if let Some((key, entry)) = cache - .iter() - .filter(|(key, _)| { - key.ring_d == requested_key.ring_d - && key.domain == requested_key.domain - && key.num_ring_elements >= requested_key.num_ring_elements - }) - .min_by_key(|(key, _)| key.num_ring_elements) - .map(|(key, entry)| (*key, Arc::clone(entry))) - { - (key, entry) - } else { - let entry = Arc::new(OnceLock::new()); - cache.insert(requested_key, Arc::clone(&entry)); - (requested_key, entry) - } - }; - let build_result = entry.get_or_init(|| { - #[cfg(test)] - prepared - .ntt_slot_build_count - .fetch_add(1, Ordering::Relaxed); - build_ntt_slot_for_key(prepared.expanded.as_ref(), key).map(Arc::new) - }); - match build_result { - Ok(slot) => { - // Keep smaller prefixes available until the larger build has - // completed successfully. A failed growth must not evict a - // working covering candidate; once the new slot is ready the - // smaller entries are redundant and can be reclaimed. - let mut cache = prepared - .shared_ntt - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; - cache.retain(|cached_key, _| { - cached_key.ring_d != key.ring_d - || cached_key.domain != key.domain - || cached_key.num_ring_elements >= key.num_ring_elements - }); - drop(cache); - record_ntt_profile_on_prepared(prepared, key, profile)?; - return Ok(Arc::clone(slot)); - } - Err(error) => { - let mut cache = prepared - .shared_ntt - .lock() - .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; - if cache - .get(&key) - .is_some_and(|current| Arc::ptr_eq(current, &entry)) - { - cache.remove(&key); - } - drop(cache); - if key == requested_key { - return Err(error.clone()); - } - } - } - } -} - -fn ensure_ntt_slot_on_prepared( - prepared: &CpuPreparedSetup, - key: NttCacheKey, -) -> Result<(), AkitaError> { - prepare_ntt_slot_on_prepared(prepared, key).map(|_| ()) -} - -fn validate_digit_row_request( - row_len: usize, - row_width: usize, - total_ring_elements: usize, -) -> Result<(), AkitaError> { - if row_width == 0 { - return Err(AkitaError::InvalidSetup( - "prepared setup row width must be nonzero".to_string(), - )); - } - let required = row_len.checked_mul(row_width).ok_or_else(|| { - AkitaError::InvalidSetup(format!( - "digit row request overflows: row_len={row_len} row_width={row_width}" - )) - })?; - if required > total_ring_elements { - return Err(AkitaError::InvalidSetup(format!( - "digit row request needs {required} setup ring elements but prepared setup has {total_ring_elements}" - ))); - } - Ok(()) -} - -impl ComputeBackendSetup for CpuBackend -where - F: FieldCore + CanonicalField, -{ - type PreparedSetup = CpuPreparedSetup; - - fn prepare_expanded( - &self, - expanded: Arc>, - ) -> Result { - Ok(CpuPreparedSetup { - expanded, - shared_ntt: Mutex::new(HashMap::new()), - compression_ntt: CompressionNttCache::default(), - ntt_i8_capacity_by_ring_d: Mutex::new(HashMap::new()), - #[cfg(test)] - ntt_slot_build_count: AtomicUsize::new(0), - }) - } - - fn ensure_ntt_slot( - &self, - prepared: &Self::PreparedSetup, - key: NttCacheKey, - ) -> Result<(), AkitaError> { - ensure_ntt_slot_on_prepared(prepared, key) - } - - fn ntt_requirement_is_cached( - &self, - _prepared: &Self::PreparedSetup, - requirement: RoutedNttRequirement, - ) -> Result { - Ok(self.ntt_operation_uses_cache(requirement.cluster, requirement.routing_extent)) - } - - fn release_built_ntt_slots(&self, prepared: &Self::PreparedSetup) -> Result { - prepared.drop_built_ntt_slots() - } - - fn planned_ntt_cache_entry_bytes( - &self, - prepared: &Self::PreparedSetup, - key: NttCacheKey, - ) -> Result { - prepared.planned_shared_ntt_cache_bytes([key]) - } - - fn prepared_expanded_setup<'a>( - &self, - prepared: &'a Self::PreparedSetup, - ) -> &'a AkitaExpandedSetup { - prepared.expanded.as_ref() - } -} - -impl CpuBackend { - pub(crate) fn dense_commit_rows( - &self, - prepared: &CpuPreparedSetup, - n_a: usize, - input: DenseCommitInput<'_, F, D>, - ) -> Result>>, AkitaError> - where - F: FieldCore + CanonicalField, - { - match input { - DenseCommitInput::CachedDigits { - digit_block_slices, - log_basis_inner, - } => { - let row_width = digit_block_slices.first().map_or(0, |digits| digits.len()); - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - n_a, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| { - mat_vec_mul_ntt_dense_digits_i8( - ntt, - n_a, - row_width, - &digit_block_slices, - log_basis_inner, - ) - }, - ) - } - DenseCommitInput::CoeffBlocks { - block_slices, - num_digits_inner, - log_basis_inner, - } => { - let row_width = block_slices.first().map_or(Ok(0usize), |block| { - block.len().checked_mul(num_digits_inner).ok_or_else(|| { - AkitaError::InvalidSetup("dense coefficient row width overflow".to_string()) - }) - })?; - if n_a == 1 { - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - 1, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| { - Ok(mat_vec_mul_ntt_i8_dense_single_row( - ntt, - row_width, - &block_slices, - num_digits_inner, - log_basis_inner, - )? - .into_iter() - .map(|ring| vec![ring]) - .collect()) - }, - ) - } else { - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - n_a, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| { - mat_vec_mul_ntt_i8_dense( - ntt, - n_a, - row_width, - &block_slices, - num_digits_inner, - log_basis_inner, - ) - }, - ) - } - } - } - } - - #[allow(clippy::too_many_arguments)] - pub(crate) fn recursive_witness_commit_rows( - &self, - prepared: &CpuPreparedSetup, - coeffs: &[[i8; D]], - n_rows: usize, - num_positions_per_block: usize, - num_live_blocks: usize, - num_digits_inner: usize, - log_basis_inner: u32, - known_balanced_log_basis: Option, - ) -> Result>>, AkitaError> - where - F: FieldCore + CanonicalField, - { - let row_width = num_positions_per_block - .checked_mul(num_digits_inner) - .ok_or_else(|| AkitaError::InvalidSetup("recursive A width overflow".to_string()))?; - let minimum_ring_elems = num_live_blocks - .saturating_sub(1) - .checked_mul(num_positions_per_block) - .and_then(|prefix| prefix.checked_add(1)) - .ok_or_else(|| { - AkitaError::InvalidSetup("recursive witness block extent overflow".to_string()) - })?; - if num_live_blocks == 0 || coeffs.len() < minimum_ring_elems { - return Err(AkitaError::InvalidSetup( - "recursive witness does not cover its live blocks".to_string(), - )); - } - if num_digits_inner == 1 { - let blocks = coeffs - .chunks(num_positions_per_block) - .take(num_live_blocks) - .collect::>(); - // The `num_digits_inner == 1` recursive witness is a raw signed-i8 - // coefficient stream. Degree-one fields yield balanced gadget digits - // (fast predecomposed-digit kernel), but extension-field tensor - // base-lift packing sums gadget digits and can push coefficients - // past the balanced range; those must commit through the general - // raw ring mat-vec instead of the balanced-digit LUT kernel. - let known_balanced = known_balanced_log_basis - .is_some_and(|source_log_basis| log_basis_inner >= source_log_basis); - if known_balanced || digit_blocks_are_balanced(&blocks, row_width, log_basis_inner) { - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - n_rows, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| { - mat_vec_mul_ntt_digits_i8(ntt, n_rows, row_width, &blocks, log_basis_inner) - }, - ) - } else { - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - n_rows, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| mat_vec_mul_ntt_raw_digits_i8(ntt, n_rows, row_width, &blocks), - ) - } - } else { - let ring_elems: Vec> = coeffs - .iter() - .map(|digit| { - let coeffs = from_fn(|k| F::from_i8(digit[k])); - CyclotomicRing::from_coefficients(coeffs) - }) - .collect(); - let blocks = ring_elems - .chunks(num_positions_per_block) - .take(num_live_blocks) - .collect::>(); - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - n_rows, - row_width, - NttTransformDomain::Negacyclic, - )?, - |ntt| { - mat_vec_mul_ntt_i8( - ntt, - n_rows, - row_width, - &blocks, - num_digits_inner, - log_basis_inner, - ) - }, - ) - } - } -} - -impl DigitRowsComputeBackend for CpuBackend -where - F: FieldCore + CanonicalField, -{ - fn digit_rows( - &self, - prepared: &Self::PreparedSetup, - row_len: usize, - digits: &[[i8; D]], - log_basis: u32, - ) -> Result>, AkitaError> { - validate_digit_row_request( - row_len, - digits.len(), - prepared.expanded.shared_matrix.num_field_elements() / D, - )?; - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - row_len, - digits.len(), - NttTransformDomain::Negacyclic, - )?, - |ntt| mat_vec_mul_ntt_single_i8(ntt, row_len, digits.len(), digits, log_basis), - ) - } -} - -impl CompressionComputeBackend for CpuBackend -where - F: FieldCore + CanonicalField, -{ - fn compression_cache_bytes(&self, prepared: &Self::PreparedSetup) -> Option { - Some(prepared.compression_ntt_cache_bytes()) - } - - fn compression_rows_products( - &self, - prepared: &Self::PreparedSetup, - digit_vectors: &[&[[i8; D]]], - ) -> Result>, AkitaError> { - let input_width = validate_compression_batch_shape(digit_vectors)?; - let total_ring_elements = prepared.expanded.shared_matrix.num_field_elements() / D; - validate_digit_row_request(1, input_width, total_ring_elements)?; - prepared.with_compression_ntt::(input_width, |ntt| { - let negacyclic = mat_vec_mul_ntt_digits_i8(ntt, 1, input_width, digit_vectors, 1)?; - let cyclic = digit_vectors - .iter() - .map(|digits| mat_vec_mul_ntt_single_i8_cyclic(ntt, 1, input_width, digits, 1)) - .collect::, _>>()?; - Ok(negacyclic - .into_iter() - .zip(cyclic) - .map(|(negacyclic, cyclic)| CompressionRowsProducts { negacyclic, cyclic }) - .collect()) - }) - } -} - -impl CyclicRowsComputeBackend for CpuBackend -where - F: FieldCore + CanonicalField, -{ - fn cyclic_digit_rows( - &self, - prepared: &Self::PreparedSetup, - row_len: usize, - digits: &[[i8; D]], - log_basis: u32, - ) -> Result>, AkitaError> { - validate_digit_row_request( - row_len, - digits.len(), - prepared.expanded.shared_matrix.num_field_elements() / D, - )?; - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, row_len, digits.len(), NttTransformDomain::Cyclic)?, - |ntt| mat_vec_mul_ntt_single_i8_cyclic(ntt, row_len, digits.len(), digits, log_basis), - ) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::backend::RingSwitchRelationView; - use crate::compute::backend::{ - ComputeBackendSetup, CyclicRowsComputeBackend, DigitRowsComputeBackend, - }; - use crate::compute::{RingSwitchRelationKernel, RingSwitchRelationPlan}; - use crate::kernels::linear::{mat_vec_mul_ntt_single_i8, mat_vec_mul_ntt_single_i8_cyclic}; - use crate::validation::MAX_I8_LOG_BASIS; - use crate::AkitaProverSetup; - use akita_field::Prime64Offset59; - use akita_types::SetupMatrixCapacity; - use std::sync::Arc; - - type F = Prime64Offset59; - const D: usize = 64; - - fn setup_capacity(num_ring_elements: usize) -> SetupMatrixCapacity { - SetupMatrixCapacity { - num_field_elements: num_ring_elements * D, - } - } - - fn prepared() -> CpuPreparedSetup { - let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - CpuBackend::DEFAULT.prepare_setup(&setup).unwrap() - } - - #[test] - fn cpu_prepared_setup_identity_rejects_mismatched_setup() { - let setup_a = - AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - let setup_b = - AkitaProverSetup::::generate_with_capacity(9, 1, setup_capacity(D)).unwrap(); - let prepared = CpuBackend::DEFAULT.prepare_setup(&setup_a).unwrap(); - - CpuBackend::DEFAULT - .validate_prepared_setup(&prepared, setup_a.expanded.as_ref()) - .expect("matching setup"); - assert!( - CpuBackend::DEFAULT - .validate_prepared_setup(&prepared, setup_b.expanded.as_ref()) - .is_err(), - "prepared context must stay bound to the setup used to create it" - ); - } - - #[test] - fn cpu_prepared_setup_identity_accepts_equivalent_setup() { - let setup_a = - AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - let setup_b = - AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - assert!(!Arc::ptr_eq(&setup_a.expanded, &setup_b.expanded)); - - let prepared = CpuBackend::DEFAULT.prepare_setup(&setup_a).unwrap(); - - CpuBackend::DEFAULT - .validate_prepared_setup(&prepared, setup_b.expanded.as_ref()) - .expect("equivalent deterministic setup should validate"); - } - - #[test] - fn cpu_prepared_setup_reports_checked_crt_capacity_profile() { - let prepared = prepared(); - CpuBackend::DEFAULT - .digit_rows::(&prepared, 1, &[[1i8; D]], 2) - .expect("build exact NTT prefix"); - let profile = prepared.shared_ntt_profile(D).expect("profile"); - - assert_eq!(profile.profile_id, "Q64/3xi32"); - assert_eq!(profile.num_primes, 3); - assert_eq!(profile.limb_bits, 32); - assert_eq!(profile.max_i8_log_basis, MAX_I8_LOG_BASIS); - assert!(profile.balanced_digit_safe_width > 0); - assert!(profile.raw_i8_safe_width > 0); - } - - #[test] - fn prepare_setup_starts_with_empty_ntt_cache() { - let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - let prepared = CpuBackend::DEFAULT.prepare_setup(&setup).expect("prepared"); - assert_eq!(prepared.shared_ntt_cache_bytes(), 0); - assert!(prepared.shared_ntt.lock().unwrap().is_empty()); - } - - #[test] - fn cpu_prepared_setup_builds_only_requested_ntt_slots() { - let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - let prepared = CpuBackend::DEFAULT.prepare_setup(&setup).expect("prepared"); - let partial_key = NttCacheKey { - ring_d: D, - num_ring_elements: 1, - domain: NttTransformDomain::Negacyclic, - }; - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, partial_key) - .expect("warm partial slot"); - assert!(prepared.shared_ntt_cache_bytes() > 0); - let cache = prepared.shared_ntt.lock().unwrap(); - assert!(cache.contains_key(&partial_key)); - assert_eq!(cache.len(), 1); - drop(cache); - let miss = NttCacheKey { - ring_d: D, - num_ring_elements: 99_999, - domain: NttTransformDomain::Negacyclic, - }; - assert!(!prepared.shared_ntt.lock().unwrap().contains_key(&miss)); - } - - #[test] - fn concurrent_same_key_ntt_warm_builds_once() { - let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); - let prepared = CpuBackend::DEFAULT - .prepare_expanded(setup.expanded.clone()) - .expect("empty prepared setup"); - let key = NttCacheKey { - ring_d: D, - num_ring_elements: 2, - domain: NttTransformDomain::Negacyclic, - }; - - std::thread::scope(|scope| { - for _ in 0..8 { - let prepared = &prepared; - scope.spawn(move || { - CpuBackend::DEFAULT - .ensure_ntt_slot(prepared, key) - .expect("warm shared NTT slot"); - }); - } - }); - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, key) - .expect("repeated warm is a no-op"); - - assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 1); - assert!(prepared.shared_ntt_cache_bytes() > 0); - } - - #[test] - fn larger_initialized_prefix_covers_smaller_request() { - let prepared = prepared(); - let covering_key = NttCacheKey { - ring_d: D, - num_ring_elements: 8, - domain: NttTransformDomain::Negacyclic, - }; - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, covering_key) - .expect("warm covering prefix"); - - prepared - .with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, 1, 3, NttTransformDomain::Negacyclic).unwrap(), - |_ntt| Ok(()), - ) - .expect("reuse covering prefix"); - - assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 1); - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&covering_key)); - } - - #[test] - fn larger_request_replaces_smaller_cached_prefix() { - let prepared = prepared(); - let small = NttCacheKey { - ring_d: D, - num_ring_elements: 3, - domain: NttTransformDomain::Negacyclic, - }; - let large = NttCacheKey { - ring_d: D, - num_ring_elements: 8, - domain: NttTransformDomain::Negacyclic, - }; - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, small) - .expect("warm small prefix"); - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, large) - .expect("grow to larger prefix"); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&large)); - } - - #[test] - fn failed_growth_retains_smaller_cached_prefix() { - let prepared = prepared(); - let small = NttCacheKey { - ring_d: D, - num_ring_elements: 3, - domain: NttTransformDomain::Negacyclic, - }; - let oversized = NttCacheKey { - ring_d: D, - num_ring_elements: D + 1, - domain: NttTransformDomain::Negacyclic, - }; - - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, small) - .expect("warm small prefix"); - assert!(CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, oversized) - .is_err()); - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, small) - .expect("failed growth must leave the smaller prefix usable"); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&small)); - } - - #[test] - fn planned_cache_bytes_match_max_joined_resident_state() { - let prepared = prepared(); - let keys = [ - NttCacheKey { - ring_d: D, - num_ring_elements: 3, - domain: NttTransformDomain::Negacyclic, - }, - NttCacheKey { - ring_d: D, - num_ring_elements: 8, - domain: NttTransformDomain::Negacyclic, - }, - NttCacheKey { - ring_d: D, - num_ring_elements: 2, - domain: NttTransformDomain::Cyclic, - }, - ]; - let planned = prepared - .planned_shared_ntt_cache_bytes(keys) - .expect("planned bytes"); - for key in keys { - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, key) - .expect("prewarm exact requirement"); - } - - assert_eq!(prepared.shared_ntt_cache_bytes(), planned); - assert_eq!(prepared.shared_ntt_cache_metrics().unwrap().len(), 2); - } - - #[test] - fn concurrent_prefix_growth_retains_only_the_maximum() { - let prepared = prepared(); - std::thread::scope(|scope| { - for num_ring_elements in [2, 5, 3, 8, 4, 7] { - let prepared = &prepared; - scope.spawn(move || { - CpuBackend::DEFAULT - .ensure_ntt_slot( - prepared, - NttCacheKey { - ring_d: D, - num_ring_elements, - domain: NttTransformDomain::Cyclic, - }, - ) - .expect("grow shared NTT prefix"); - }); - } - }); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&NttCacheKey { - ring_d: D, - num_ring_elements: 8, - domain: NttTransformDomain::Cyclic, - })); - } - - #[test] - fn failed_oversized_warm_does_not_cover_valid_request() { - let prepared = prepared(); - let oversized = NttCacheKey { - ring_d: D, - num_ring_elements: D + 1, - domain: NttTransformDomain::Negacyclic, - }; - let valid = NttCacheKey { - ring_d: D, - num_ring_elements: 3, - domain: NttTransformDomain::Negacyclic, - }; - - assert!(CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, oversized) - .is_err()); - assert!(prepared.shared_ntt.lock().unwrap().is_empty()); - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, valid) - .expect("failed oversized warm must not poison a valid prefix"); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&valid)); - assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 2); - } - - #[test] - fn concurrent_failed_growth_leaves_valid_prefix_recoverable() { - let prepared = prepared(); - let oversized = NttCacheKey { - ring_d: D, - num_ring_elements: D + 1, - domain: NttTransformDomain::Cyclic, - }; - let valid = NttCacheKey { - ring_d: D, - num_ring_elements: 8, - domain: NttTransformDomain::Cyclic, - }; - - std::thread::scope(|scope| { - let failed = scope.spawn(|| CpuBackend::DEFAULT.ensure_ntt_slot(&prepared, oversized)); - let warmed = scope.spawn(|| CpuBackend::DEFAULT.ensure_ntt_slot(&prepared, valid)); - assert!(failed.join().expect("oversized warm thread").is_err()); - warmed - .join() - .expect("valid warm thread") - .expect("valid warm must retry a failed covering entry"); - }); - CpuBackend::DEFAULT - .ensure_ntt_slot(&prepared, valid) - .expect("valid prefix remains available after failed growth"); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert_eq!(cache.len(), 1); - assert!(cache.contains_key(&valid)); - } - - #[test] - fn ring_switch_domains_keep_independent_exact_prefix_lengths() { - let prepared = prepared(); - let e_hat = vec![[1i8; D]; 5]; - let t_hat = vec![[1i8; D]; 3]; - let z_segment = vec![[1i32; D]; 2]; - - CpuBackend::DEFAULT - .relation_rows( - &prepared, - RingSwitchRelationView { - e_hat: &e_hat, - t_hat: &t_hat, - z_segment: &z_segment, - z_folded_centered_inf_norm: 1, - }, - RingSwitchRelationPlan { - n_d: 2, - n_b: 1, - n_a: 1, - log_basis_open: 2, - log_basis_outer: 2, - }, - ) - .expect("ring-switch rows"); - - let cache = prepared.shared_ntt.lock().unwrap(); - assert!(cache.contains_key(&NttCacheKey { - ring_d: D, - num_ring_elements: 10, - domain: NttTransformDomain::Cyclic, - })); - assert!(cache.contains_key(&NttCacheKey { - ring_d: D, - num_ring_elements: 2, - domain: NttTransformDomain::Negacyclic, - })); - assert_eq!(cache.len(), 2); - } - - #[test] - fn cyclic_only_ring_switch_rows_do_not_prepare_negacyclic_state() { - let prepared = prepared(); - let t_hat = vec![[1i8; D]; 3]; - - let rows = CpuBackend::DEFAULT - .relation_rows( - &prepared, - RingSwitchRelationView { - e_hat: &[], - t_hat: &t_hat, - z_segment: &[], - z_folded_centered_inf_norm: 0, - }, - RingSwitchRelationPlan { - n_d: 0, - n_b: 2, - n_a: 0, - log_basis_open: 2, - log_basis_outer: 2, - }, - ) - .expect("B-only ring-switch rows"); - - assert_eq!(rows.b_cyclic.len(), 2); - assert!(rows.d_cyclic.is_empty()); - assert!(rows.a_quotients.is_empty()); - let cache = prepared.shared_ntt.lock().unwrap(); - assert!(cache.contains_key(&NttCacheKey { - ring_d: D, - num_ring_elements: 6, - domain: NttTransformDomain::Cyclic, - })); - assert_eq!(cache.len(), 1); - } - - #[test] - fn cpu_digit_rows_match_direct_kernel() { - let prepared = prepared(); - let digits = vec![[1i8; D], [-1i8; D], [2i8; D]]; - let log_basis = 3; - let via_backend = CpuBackend::DEFAULT - .digit_rows::(&prepared, 2, &digits, log_basis) - .expect("backend digit rows"); - let direct = prepared - .with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Negacyclic) - .unwrap(), - |ntt| mat_vec_mul_ntt_single_i8(ntt, 2, digits.len(), &digits, log_basis), - ) - .expect("direct digit rows"); - assert_eq!(via_backend, direct); - } - - #[test] - fn cpu_digit_rows_accept_logical_input_longer_than_stride() { - let prepared = prepared(); - let digits = vec![[1i8; D]; 12]; - let log_basis = 3; - let via_backend = CpuBackend::DEFAULT - .digit_rows::(&prepared, 2, &digits, log_basis) - .expect("backend digit rows"); - let direct = prepared - .with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Negacyclic) - .unwrap(), - |ntt| mat_vec_mul_ntt_single_i8(ntt, 2, digits.len(), &digits, log_basis), - ) - .expect("direct digit rows"); - assert_eq!(via_backend, direct); - } - - #[test] - fn recursive_commit_ignores_commitment_padding_blocks() { - let prepared = prepared(); - let coeffs = vec![[1i8; D]; 6]; - let rows = CpuBackend::DEFAULT - .recursive_witness_commit_rows(&prepared, &coeffs, 1, 2, 2, 1, 3, Some(3)) - .expect("recursive commit rows"); - - assert_eq!(rows.len(), 2); - } - - #[test] - fn cpu_cyclic_digit_rows_match_direct_kernel() { - let prepared = prepared(); - let digits = vec![[1i8; D], [0i8; D], [-2i8; D], [3i8; D]]; - let log_basis = 3; - let via_backend = CpuBackend::DEFAULT - .cyclic_digit_rows::(&prepared, 2, &digits, log_basis) - .expect("backend cyclic digit rows"); - let direct = prepared - .with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Cyclic) - .unwrap(), - |ntt| mat_vec_mul_ntt_single_i8_cyclic(ntt, 2, digits.len(), &digits, log_basis), - ) - .expect("direct cyclic digit rows"); - assert_eq!(via_backend, direct); - } - - #[test] - fn cpu_ring_switch_relation_rows_use_distinct_open_and_outer_bases() { - let prepared = prepared(); - let e_hat = vec![[1i8; D], [-1i8; D]]; - let t_hat = vec![[-1i8; D], [3i8; D]]; - let z_segment = vec![[1i32; D], [-2i32; D], [3i32; D]]; - let via_backend = CpuBackend::DEFAULT - .relation_rows( - &prepared, - RingSwitchRelationView { - e_hat: &e_hat, - t_hat: &t_hat, - z_segment: &z_segment, - z_folded_centered_inf_norm: 3, - }, - RingSwitchRelationPlan { - n_d: 1, - n_b: 1, - n_a: 1, - log_basis_open: 2, - log_basis_outer: 3, - }, - ) - .expect("backend ring-switch relation rows"); - let direct = prepared - .with_shared_ntt::( - NttCacheKey::from_matrix_shape(D, 1, z_segment.len(), NttTransformDomain::Cyclic) - .unwrap(), - |cyclic_ntt| { - prepared.with_shared_ntt::( - NttCacheKey::from_matrix_shape( - D, - 1, - z_segment.len(), - NttTransformDomain::Negacyclic, - ) - .unwrap(), - |negacyclic_ntt| { - fused_split_eq_quotients_prover_bounds( - negacyclic_ntt, - cyclic_ntt, - 1, - 1, - 1, - &e_hat, - &t_hat, - &z_segment, - 3, - 2, - 3, - ) - }, - ) - }, - ) - .expect("direct fused split-eq rows"); - assert_eq!( - ( - via_backend.d_cyclic, - via_backend.b_cyclic, - via_backend.a_quotients - ), - direct - ); - } -} diff --git a/crates/akita-prover/src/compute/cpu/commitment.rs b/crates/akita-prover/src/compute/cpu/commitment.rs new file mode 100644 index 000000000..8f74a4186 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/commitment.rs @@ -0,0 +1,220 @@ +use super::exact_i16::{ + dense_commit_rows as dense_commit_rows_i16, + recursive_witness_commit_rows as recursive_witness_commit_rows_i16, +}; +use super::{CpuBackend, CpuPreparedSetup}; +use crate::compute::plans::DenseCommitInput; +use crate::kernels::linear::{ + digit_blocks_are_balanced, mat_vec_mul_ntt_dense_digits_i8, mat_vec_mul_ntt_digits_i8, + mat_vec_mul_ntt_i8, mat_vec_mul_ntt_i8_dense, mat_vec_mul_ntt_i8_dense_single_row, + mat_vec_mul_ntt_raw_digits_i8, +}; +use crate::validation::signed_digit_kernel_for_setup; +use akita_algebra::CyclotomicRing; +use akita_field::{AkitaError, CanonicalField, FieldCore}; +use akita_types::{NttCacheKey, NttTransformDomain, SignedDigitKernel}; +use std::array::from_fn; + +impl CpuBackend { + pub(crate) fn dense_commit_rows( + &self, + prepared: &CpuPreparedSetup, + n_a: usize, + input: DenseCommitInput<'_, F, D>, + ) -> Result>>, AkitaError> + where + F: FieldCore + CanonicalField, + { + match input { + DenseCommitInput::CachedDigits { + digit_block_slices, + log_basis_inner, + } => { + let row_width = digit_block_slices.first().map_or(0, |digits| digits.len()); + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_a, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| { + mat_vec_mul_ntt_dense_digits_i8( + ntt, + n_a, + row_width, + &digit_block_slices, + log_basis_inner, + ) + }, + ) + } + DenseCommitInput::CoeffBlocks { + block_slices, + num_digits_inner, + log_basis_inner, + } => { + let row_width = block_slices.first().map_or(Ok(0usize), |block| { + block.len().checked_mul(num_digits_inner).ok_or_else(|| { + AkitaError::InvalidSetup("dense coefficient row width overflow".into()) + }) + })?; + if signed_digit_kernel_for_setup(log_basis_inner, "for dense commitment")? + == SignedDigitKernel::I16 + { + dense_commit_rows_i16( + prepared, + n_a, + row_width, + &block_slices, + num_digits_inner, + log_basis_inner, + ) + } else if n_a == 1 { + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + 1, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| { + Ok(mat_vec_mul_ntt_i8_dense_single_row( + ntt, + row_width, + &block_slices, + num_digits_inner, + log_basis_inner, + )? + .into_iter() + .map(|ring| vec![ring]) + .collect()) + }, + ) + } else { + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_a, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| { + mat_vec_mul_ntt_i8_dense( + ntt, + n_a, + row_width, + &block_slices, + num_digits_inner, + log_basis_inner, + ) + }, + ) + } + } + } + } + + #[allow(clippy::too_many_arguments)] + pub(crate) fn recursive_witness_commit_rows( + &self, + prepared: &CpuPreparedSetup, + coeffs: &[[i8; D]], + n_rows: usize, + num_positions_per_block: usize, + num_live_blocks: usize, + num_digits_inner: usize, + log_basis_inner: u32, + known_balanced_log_basis: Option, + ) -> Result>>, AkitaError> + where + F: FieldCore + CanonicalField, + { + let row_width = num_positions_per_block + .checked_mul(num_digits_inner) + .ok_or_else(|| AkitaError::InvalidSetup("recursive A width overflow".into()))?; + let minimum_ring_elems = num_live_blocks + .saturating_sub(1) + .checked_mul(num_positions_per_block) + .and_then(|prefix| prefix.checked_add(1)) + .ok_or_else(|| { + AkitaError::InvalidSetup("recursive witness block extent overflow".into()) + })?; + if num_live_blocks == 0 || coeffs.len() < minimum_ring_elems { + return Err(AkitaError::InvalidSetup( + "recursive witness does not cover its live blocks".into(), + )); + } + if signed_digit_kernel_for_setup(log_basis_inner, "for recursive witness commitment")? + == SignedDigitKernel::I16 + { + return recursive_witness_commit_rows_i16( + prepared, + coeffs, + n_rows, + num_positions_per_block, + num_live_blocks, + num_digits_inner, + log_basis_inner, + ); + } + if num_digits_inner == 1 { + let blocks = coeffs + .chunks(num_positions_per_block) + .take(num_live_blocks) + .collect::>(); + let known_balanced = known_balanced_log_basis + .is_some_and(|source_log_basis| log_basis_inner >= source_log_basis); + if known_balanced || digit_blocks_are_balanced(&blocks, row_width, log_basis_inner) { + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_rows, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| { + mat_vec_mul_ntt_digits_i8(ntt, n_rows, row_width, &blocks, log_basis_inner) + }, + ) + } else { + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_rows, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| mat_vec_mul_ntt_raw_digits_i8(ntt, n_rows, row_width, &blocks), + ) + } + } else { + let ring_elems = coeffs + .iter() + .map(|digit| CyclotomicRing::from_coefficients(from_fn(|k| F::from_i8(digit[k])))) + .collect::>(); + let blocks = ring_elems + .chunks(num_positions_per_block) + .take(num_live_blocks) + .collect::>(); + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_rows, + row_width, + NttTransformDomain::Negacyclic, + )?, + |ntt| { + mat_vec_mul_ntt_i8( + ntt, + n_rows, + row_width, + &blocks, + num_digits_inner, + log_basis_inner, + ) + }, + ) + } + } +} diff --git a/crates/akita-prover/src/compute/cpu/compression.rs b/crates/akita-prover/src/compute/cpu/compression.rs new file mode 100644 index 000000000..2aec6fe60 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/compression.rs @@ -0,0 +1,38 @@ +use super::prepared::validate_digit_row_request; +use super::CpuBackend; +use crate::compute::backend::{CompressionComputeBackend, CompressionRowsProducts}; +use crate::kernels::linear::{ + mat_vec_mul_ntt_digits_i8, mat_vec_mul_ntt_single_i8_cyclic, validate_compression_batch_shape, +}; +use akita_field::{AkitaError, CanonicalField, FieldCore}; + +impl CompressionComputeBackend for CpuBackend +where + F: FieldCore + CanonicalField, +{ + fn compression_cache_bytes(&self, prepared: &Self::PreparedSetup) -> Option { + Some(prepared.compression_ntt_cache_bytes()) + } + + fn compression_rows_products( + &self, + prepared: &Self::PreparedSetup, + digit_vectors: &[&[[i8; D]]], + ) -> Result>, AkitaError> { + let input_width = validate_compression_batch_shape(digit_vectors)?; + let total_ring_elements = prepared.expanded.shared_matrix.num_field_elements() / D; + validate_digit_row_request(1, input_width, total_ring_elements)?; + prepared.with_compression_ntt::(input_width, |ntt| { + let negacyclic = mat_vec_mul_ntt_digits_i8(ntt, 1, input_width, digit_vectors, 1)?; + let cyclic = digit_vectors + .iter() + .map(|digits| mat_vec_mul_ntt_single_i8_cyclic(ntt, 1, input_width, digits, 1)) + .collect::, _>>()?; + Ok(negacyclic + .into_iter() + .zip(cyclic) + .map(|(negacyclic, cyclic)| CompressionRowsProducts { negacyclic, cyclic }) + .collect()) + }) + } +} diff --git a/crates/akita-prover/src/compute/cpu/compression_cache.rs b/crates/akita-prover/src/compute/cpu/compression_cache.rs index f6c74801e..764c23236 100644 --- a/crates/akita-prover/src/compute/cpu/compression_cache.rs +++ b/crates/akita-prover/src/compute/cpu/compression_cache.rs @@ -1,6 +1,6 @@ //! Exact-prefix paired NTT cache used by compressed commitments. -use super::ErasedCpuNttCache; +use super::prepared::ErasedCpuNttCache; use akita_field::{AkitaError, CanonicalField, FieldCore}; use akita_types::{prepare_compression_ntt_cache, AkitaExpandedSetup, PreparedNttCache}; use std::any::Any; diff --git a/crates/akita-prover/src/compute/cpu/cyclic_rows.rs b/crates/akita-prover/src/compute/cpu/cyclic_rows.rs new file mode 100644 index 000000000..99bcd503b --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/cyclic_rows.rs @@ -0,0 +1,30 @@ +use super::prepared::validate_digit_row_request; +use super::CpuBackend; +use crate::compute::backend::CyclicRowsComputeBackend; +use crate::kernels::linear::mat_vec_mul_ntt_single_i8_cyclic; +use akita_algebra::CyclotomicRing; +use akita_field::{AkitaError, CanonicalField, FieldCore}; +use akita_types::{NttCacheKey, NttTransformDomain}; + +impl CyclicRowsComputeBackend for CpuBackend +where + F: FieldCore + CanonicalField, +{ + fn cyclic_digit_rows( + &self, + prepared: &Self::PreparedSetup, + row_len: usize, + digits: &[[i8; D]], + log_basis: u32, + ) -> Result>, AkitaError> { + validate_digit_row_request( + row_len, + digits.len(), + prepared.expanded.shared_matrix.num_field_elements() / D, + )?; + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, row_len, digits.len(), NttTransformDomain::Cyclic)?, + |ntt| mat_vec_mul_ntt_single_i8_cyclic(ntt, row_len, digits.len(), digits, log_basis), + ) + } +} diff --git a/crates/akita-prover/src/compute/cpu/digit_rows.rs b/crates/akita-prover/src/compute/cpu/digit_rows.rs new file mode 100644 index 000000000..cc1c2114b --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/digit_rows.rs @@ -0,0 +1,35 @@ +use super::prepared::validate_digit_row_request; +use super::CpuBackend; +use crate::compute::backend::DigitRowsComputeBackend; +use crate::kernels::linear::mat_vec_mul_ntt_single_i8; +use akita_algebra::CyclotomicRing; +use akita_field::{AkitaError, CanonicalField, FieldCore}; +use akita_types::{NttCacheKey, NttTransformDomain}; + +impl DigitRowsComputeBackend for CpuBackend +where + F: FieldCore + CanonicalField, +{ + fn digit_rows( + &self, + prepared: &Self::PreparedSetup, + row_len: usize, + digits: &[[i8; D]], + log_basis: u32, + ) -> Result>, AkitaError> { + validate_digit_row_request( + row_len, + digits.len(), + prepared.expanded.shared_matrix.num_field_elements() / D, + )?; + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + row_len, + digits.len(), + NttTransformDomain::Negacyclic, + )?, + |ntt| mat_vec_mul_ntt_single_i8(ntt, row_len, digits.len(), digits, log_basis), + ) + } +} diff --git a/crates/akita-prover/src/compute/cpu/exact_i16.rs b/crates/akita-prover/src/compute/cpu/exact_i16.rs new file mode 100644 index 000000000..54060dcdf --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/exact_i16.rs @@ -0,0 +1,97 @@ +use super::CpuPreparedSetup; +use akita_algebra::CyclotomicRing; +#[allow(unused_imports)] +use akita_field::parallel::*; +use akita_field::{AkitaError, CanonicalField, FieldCore}; +use akita_types::{balanced_signed_digit_abs_bound, NttCacheKey, NttTransformDomain}; +use std::array::from_fn; + +pub(super) fn dense_commit_rows( + prepared: &CpuPreparedSetup, + n_a: usize, + row_width: usize, + block_slices: &[&[CyclotomicRing]], + num_digits_inner: usize, + log_basis_inner: u32, +) -> Result>>, AkitaError> { + let rhs_abs_bound = balanced_signed_digit_abs_bound(log_basis_inner) + .ok_or_else(|| AkitaError::InvalidSetup("invalid signed digit basis".into()))?; + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_a, + row_width, + NttTransformDomain::ExactNegacyclicI16 { + width: row_width, + rhs_abs_bound, + }, + )?, + |ntt| { + cfg_iter!(block_slices) + .map(|block| { + let mut rhs = vec![[0i16; D]; row_width]; + for (ring_idx, ring) in block.iter().enumerate() { + let start = ring_idx * num_digits_inner; + ring.balanced_decompose_pow2_i16_into( + &mut rhs[start..start + num_digits_inner], + log_basis_inner, + ); + } + ntt.mat_vec_i16::(log_basis_inner, n_a, &rhs) + }) + .collect() + }, + ) +} + +pub(super) fn recursive_witness_commit_rows( + prepared: &CpuPreparedSetup, + coeffs: &[[i8; D]], + n_rows: usize, + num_positions_per_block: usize, + num_live_blocks: usize, + num_digits_inner: usize, + log_basis_inner: u32, +) -> Result>>, AkitaError> { + let row_width = num_positions_per_block + .checked_mul(num_digits_inner) + .ok_or_else(|| AkitaError::InvalidSetup("recursive A width overflow".into()))?; + let rhs_abs_bound = balanced_signed_digit_abs_bound(log_basis_inner) + .ok_or_else(|| AkitaError::InvalidSetup("invalid signed digit basis".into()))?; + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + n_rows, + row_width, + NttTransformDomain::ExactNegacyclicI16 { + width: row_width, + rhs_abs_bound, + }, + )?, + |ntt| { + cfg_chunks!(coeffs, num_positions_per_block) + .take(num_live_blocks) + .map(|block| { + let mut rhs = vec![[0i16; D]; row_width]; + if num_digits_inner == 1 { + for (dst, src) in rhs.iter_mut().zip(block) { + *dst = from_fn(|k| i16::from(src[k])); + } + } else { + for (ring_idx, digit) in block.iter().enumerate() { + let ring = CyclotomicRing::from_coefficients(from_fn(|k| { + F::from_i8(digit[k]) + })); + let start = ring_idx * num_digits_inner; + ring.balanced_decompose_pow2_i16_into( + &mut rhs[start..start + num_digits_inner], + log_basis_inner, + ); + } + } + ntt.mat_vec_i16::(log_basis_inner, n_rows, &rhs) + }) + .collect() + }, + ) +} diff --git a/crates/akita-prover/src/compute/cpu/exact_i16_tests.rs b/crates/akita-prover/src/compute/cpu/exact_i16_tests.rs new file mode 100644 index 000000000..8276751b9 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/exact_i16_tests.rs @@ -0,0 +1,121 @@ +use super::prepared_tests::{prepared, D, F}; +use super::CpuBackend; +use crate::compute::plans::DenseCommitInput; +use akita_algebra::CyclotomicRing; +use akita_field::PseudoMersenneField; +use akita_types::sis::compute_num_digits_field_width; +use akita_types::{NttCacheKey, NttTransformDomain}; + +#[test] +fn recursive_commit_selects_exact_i16_from_inner_basis() { + let prepared = prepared(); + let coeffs = vec![[1i8; D], [-1i8; D]]; + let commit = |log_basis_inner| { + CpuBackend::DEFAULT + .recursive_witness_commit_rows(&prepared, &coeffs, 1, 2, 1, 1, log_basis_inner, Some(2)) + .expect("recursive commit rows") + }; + + assert_eq!(commit(3), commit(11)); + assert!(prepared.shared_ntt.lock().unwrap().contains_key( + &NttCacheKey::from_matrix_shape( + D, + 1, + 2, + NttTransformDomain::ExactNegacyclicI16 { + width: 2, + rhs_abs_bound: 1 << 10, + }, + ) + .unwrap() + )); +} + +#[test] +fn dense_coeff_commit_selects_exact_i16_from_inner_basis() { + let prepared = prepared(); + let block = vec![ + CyclotomicRing::from_coefficients([F::one(); D]), + CyclotomicRing::from_coefficients([F::from_i8(-1); D]), + ]; + let commit = |log_basis_inner| { + CpuBackend::DEFAULT + .dense_commit_rows( + &prepared, + 1, + DenseCommitInput::CoeffBlocks { + block_slices: vec![block.as_slice()], + num_digits_inner: 1, + log_basis_inner, + }, + ) + .expect("dense commit rows") + }; + + assert_eq!(commit(3), commit(11)); +} + +#[test] +fn dense_i16_commit_matches_schoolbook_composition() { + let prepared = prepared(); + let mut state = 0x8f3d_71a5_c29b_4e67u64; + let block: Vec<_> = (0..2) + .map(|_| { + CyclotomicRing::from_coefficients(std::array::from_fn(|_| { + state = state + .wrapping_mul(6_364_136_223_846_793_005) + .wrapping_add(1_442_695_040_888_963_407); + F::from_u64(state) + })) + }) + .collect(); + let n_a = 2; + + for log_basis_inner in [9, 10, 11] { + let num_digits_inner = compute_num_digits_field_width( + ::MODULUS_BITS, + log_basis_inner, + ); + let row_width = block.len() * num_digits_inner; + let actual = CpuBackend::DEFAULT + .dense_commit_rows( + &prepared, + n_a, + DenseCommitInput::CoeffBlocks { + block_slices: vec![block.as_slice()], + num_digits_inner, + log_basis_inner, + }, + ) + .expect("dense i16 commit"); + + let mut digit_planes = vec![[0i16; D]; row_width]; + for (ring_index, ring) in block.iter().enumerate() { + let start = ring_index * num_digits_inner; + ring.balanced_decompose_pow2_i16_into( + &mut digit_planes[start..start + num_digits_inner], + log_basis_inner, + ); + } + let matrix = prepared + .expanded + .shared_matrix() + .ring_view::(n_a, row_width) + .expect("setup matrix view"); + let expected: Vec<_> = matrix + .rows() + .map(|row| { + row.iter().zip(&digit_planes).fold( + CyclotomicRing::zero(), + |acc, (matrix_entry, digit_plane)| { + let digit_ring = CyclotomicRing::from_coefficients( + digit_plane.map(|digit| F::from_i64(i64::from(digit))), + ); + acc + *matrix_entry * digit_ring + }, + ) + }) + .collect(); + assert_eq!(actual, vec![expected], "basis {log_basis_inner}"); + } +} diff --git a/crates/akita-prover/src/compute/cpu/kernel_tests.rs b/crates/akita-prover/src/compute/cpu/kernel_tests.rs new file mode 100644 index 000000000..5641d6c33 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/kernel_tests.rs @@ -0,0 +1,140 @@ +use super::prepared_tests::{prepared, D}; +use super::CpuBackend; +use crate::backend::RingSwitchRelationView; +use crate::compute::backend::{CyclicRowsComputeBackend, DigitRowsComputeBackend}; +use crate::compute::{RingSwitchRelationKernel, RingSwitchRelationPlan}; +use crate::kernels::linear::{ + fused_split_eq_quotients_prover_bounds, mat_vec_mul_ntt_single_i8, + mat_vec_mul_ntt_single_i8_cyclic, +}; +use akita_types::{NttCacheKey, NttTransformDomain}; + +#[test] +fn cpu_digit_rows_match_direct_kernel() { + let prepared = prepared(); + let digits = vec![[1i8; D], [-1i8; D], [2i8; D]]; + let log_basis = 3; + let via_backend = CpuBackend::DEFAULT + .digit_rows::(&prepared, 2, &digits, log_basis) + .expect("backend digit rows"); + let direct = prepared + .with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Negacyclic) + .unwrap(), + |ntt| mat_vec_mul_ntt_single_i8(ntt, 2, digits.len(), &digits, log_basis), + ) + .expect("direct digit rows"); + assert_eq!(via_backend, direct); +} + +#[test] +fn cpu_digit_rows_accept_logical_input_longer_than_stride() { + let prepared = prepared(); + let digits = vec![[1i8; D]; 12]; + let log_basis = 3; + let via_backend = CpuBackend::DEFAULT + .digit_rows::(&prepared, 2, &digits, log_basis) + .expect("backend digit rows"); + let direct = prepared + .with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Negacyclic) + .unwrap(), + |ntt| mat_vec_mul_ntt_single_i8(ntt, 2, digits.len(), &digits, log_basis), + ) + .expect("direct digit rows"); + assert_eq!(via_backend, direct); +} + +#[test] +fn recursive_commit_ignores_commitment_padding_blocks() { + let prepared = prepared(); + let coeffs = vec![[1i8; D]; 6]; + let rows = CpuBackend::DEFAULT + .recursive_witness_commit_rows(&prepared, &coeffs, 1, 2, 2, 1, 3, Some(3)) + .expect("recursive commit rows"); + + assert_eq!(rows.len(), 2); +} + +#[test] +fn cpu_cyclic_digit_rows_match_direct_kernel() { + let prepared = prepared(); + let digits = vec![[1i8; D], [0i8; D], [-2i8; D], [3i8; D]]; + let log_basis = 3; + let via_backend = CpuBackend::DEFAULT + .cyclic_digit_rows::(&prepared, 2, &digits, log_basis) + .expect("backend cyclic digit rows"); + let direct = prepared + .with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, 2, digits.len(), NttTransformDomain::Cyclic).unwrap(), + |ntt| mat_vec_mul_ntt_single_i8_cyclic(ntt, 2, digits.len(), &digits, log_basis), + ) + .expect("direct cyclic digit rows"); + assert_eq!(via_backend, direct); +} + +#[test] +fn cpu_ring_switch_relation_rows_use_distinct_open_and_outer_bases() { + let prepared = prepared(); + let e_hat = vec![[1i8; D], [-1i8; D]]; + let t_hat = vec![[-1i8; D], [3i8; D]]; + let z_segment = vec![[1i32; D], [-2i32; D], [3i32; D]]; + let via_backend = CpuBackend::DEFAULT + .relation_rows( + &prepared, + RingSwitchRelationView { + e_hat: &e_hat, + t_hat: &t_hat, + z_segment: &z_segment, + z_folded_centered_inf_norm: 3, + }, + RingSwitchRelationPlan { + n_d: 1, + n_b: 1, + n_a: 1, + log_basis_open: 2, + log_basis_outer: 3, + }, + ) + .expect("backend ring-switch relation rows"); + let direct = prepared + .with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, 1, z_segment.len(), NttTransformDomain::Cyclic) + .unwrap(), + |cyclic_ntt| { + prepared.with_shared_ntt::( + NttCacheKey::from_matrix_shape( + D, + 1, + z_segment.len(), + NttTransformDomain::Negacyclic, + ) + .unwrap(), + |negacyclic_ntt| { + fused_split_eq_quotients_prover_bounds( + negacyclic_ntt, + cyclic_ntt, + 1, + 1, + 1, + &e_hat, + &t_hat, + &z_segment, + 3, + 2, + 3, + ) + }, + ) + }, + ) + .expect("direct fused split-eq rows"); + assert_eq!( + ( + via_backend.d_cyclic, + via_backend.b_cyclic, + via_backend.a_quotients + ), + direct + ); +} diff --git a/crates/akita-prover/src/compute/cpu/mod.rs b/crates/akita-prover/src/compute/cpu/mod.rs new file mode 100644 index 000000000..b0c98b796 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/mod.rs @@ -0,0 +1,94 @@ +//! CPU compute backend and its prepared setup caches. + +mod commitment; +mod compression; +mod compression_cache; +mod cyclic_rows; +mod digit_rows; +mod exact_i16; +#[cfg(test)] +mod exact_i16_tests; +#[cfg(test)] +mod kernel_tests; +mod prepared; +#[cfg(test)] +mod prepared_tests; +mod ring_switch; +#[cfg(test)] +mod streamed_tests; + +pub use prepared::{CpuPreparedSetup, PreparedCrtNttProfile, PreparedNttCacheMetric}; + +/// CPU backend using the existing Rust/Rayon kernels. +/// +/// These deployment resource limits choose equivalent execution paths. They +/// do not affect protocol parameters or proof bytes. +#[derive(Debug, Clone, Copy, Eq, PartialEq)] +pub struct CpuBackend { + max_cached_ring_switch_elements: usize, + commit_scratch_bytes_per_worker: usize, +} + +impl CpuBackend { + /// Default maximum cached extent for a ring-switch NTT operation. + pub const DEFAULT_MAX_CACHED_RING_SWITCH_ELEMENTS: usize = 1 << 21; + + /// Default temporary sparse commitment memory per worker. + pub const DEFAULT_COMMIT_SCRATCH_BYTES_PER_WORKER: usize = 8 << 20; + + /// CPU backend with the default resource limits. + pub const DEFAULT: Self = Self { + max_cached_ring_switch_elements: Self::DEFAULT_MAX_CACHED_RING_SWITCH_ELEMENTS, + commit_scratch_bytes_per_worker: Self::DEFAULT_COMMIT_SCRATCH_BYTES_PER_WORKER, + }; + + /// Create a CPU backend with explicit resource limits. + pub fn with_resource_limits( + max_cached_ring_switch_elements: usize, + commit_scratch_bytes_per_worker: usize, + ) -> Result { + if commit_scratch_bytes_per_worker == 0 { + return Err(akita_field::AkitaError::InvalidSetup( + "CPU commitment scratch bytes per worker must be nonzero".into(), + )); + } + Ok(Self { + max_cached_ring_switch_elements, + commit_scratch_bytes_per_worker, + }) + } + + /// Largest ring-switch operation extent retained as an NTT cache. + pub const fn max_cached_ring_switch_elements(&self) -> usize { + self.max_cached_ring_switch_elements + } + + /// Temporary sparse commitment memory allowed per worker. + pub const fn commit_scratch_bytes_per_worker(&self) -> usize { + self.commit_scratch_bytes_per_worker + } + + #[inline] + pub(crate) fn ntt_operation_uses_cache( + &self, + cluster: crate::compute::requirements::NttOperationCluster, + num_ring_elements: usize, + ) -> bool { + let cached = cluster != crate::compute::requirements::NttOperationCluster::RingSwitch + || num_ring_elements <= self.max_cached_ring_switch_elements; + tracing::debug!( + ?cluster, + num_ring_elements, + max_cached_ring_switch_elements = self.max_cached_ring_switch_elements, + cached, + "CPU NTT execution policy" + ); + cached + } +} + +impl Default for CpuBackend { + fn default() -> Self { + Self::DEFAULT + } +} diff --git a/crates/akita-prover/src/compute/cpu/prepared.rs b/crates/akita-prover/src/compute/cpu/prepared.rs new file mode 100644 index 000000000..18ccc9dd7 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/prepared.rs @@ -0,0 +1,517 @@ +use super::compression_cache::CompressionNttCache; +use super::CpuBackend; +use crate::compute::backend::ComputeBackendSetup; +use crate::compute::requirements::RoutedNttRequirement; +use crate::kernels::linear::{selected_crt_i8_capacity_profile, CrtI8CapacityProfile}; +use akita_field::{AkitaError, CanonicalField, FieldCore}; +use akita_types::{ + dispatch_for_field, ntt_cache_requires_i16_tail, prepare_ntt_cache, AkitaExpandedSetup, + NttCacheKey, NttCacheMode, NttTransformDomain, PreparedNttCache, +}; +use std::any::Any; +use std::collections::HashMap; +#[cfg(test)] +use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::{Arc, Mutex, OnceLock}; + +type NttSlotCell = OnceLock, AkitaError>>; + +/// CPU-prepared setup keyed by runtime ring dimension. +/// +/// NTT caches are keyed by [`NttCacheKey`] and built lazily. Each ring +/// dimension/domain pair retains only its largest requested prefix; a covering +/// cell also serves smaller requests. Each cell makes concurrent construction +/// of that prefix single-flight. Diagnostic compression caches remain in a +/// separate namespace. +#[derive(Debug)] +pub struct CpuPreparedSetup { + pub(super) expanded: Arc>, + pub(super) shared_ntt: Mutex>>, + pub(super) compression_ntt: CompressionNttCache, + ntt_i8_capacity_by_ring_d: Mutex>, + #[cfg(test)] + pub(super) ntt_slot_build_count: AtomicUsize, +} + +pub(super) struct ErasedCpuNttCache { + pub(super) ring_d: usize, + pub(super) cache_bytes: usize, + pub(super) cache: Arc, +} + +impl core::fmt::Debug for ErasedCpuNttCache { + fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + formatter + .debug_struct("ErasedCpuNttCache") + .field("ring_d", &self.ring_d) + .field("cache_bytes", &self.cache_bytes) + .finish_non_exhaustive() + } +} + +/// CRT/NTT profile and universal i8 capacity metadata for a prepared setup. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct PreparedCrtNttProfile { + /// Stable profile identifier used by benchmark/report tooling. + pub profile_id: &'static str, + /// Number of CRT primes in the selected profile. + pub num_primes: usize, + /// Maximum bit length of a CRT prime modulus. + pub prime_modulus_bits: u32, + /// Signed storage width used by the CRT NTT representation. + pub limb_bits: u32, + /// Largest balanced i8 log basis accepted by prover i8 kernels. + pub max_i8_log_basis: u32, + /// Safe accumulation width for balanced i8 digits at `max_i8_log_basis`. + pub balanced_digit_safe_width: usize, + /// Safe accumulation width for raw signed i8 recursive-witness inputs. + pub raw_i8_safe_width: usize, +} + +/// One initialized exact-prefix NTT cache entry for diagnostics and profiling. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct PreparedNttCacheMetric { + /// Exact cache identity. + pub key: NttCacheKey, + /// Bytes used by materialized transform vectors, excluding map metadata. + pub cache_bytes: usize, +} + +impl From for PreparedCrtNttProfile { + fn from(profile: CrtI8CapacityProfile) -> Self { + Self { + profile_id: profile.profile_id, + num_primes: profile.num_primes, + prime_modulus_bits: profile.prime_modulus_bits, + limb_bits: profile.limb_bits, + max_i8_log_basis: profile.max_i8_log_basis, + balanced_digit_safe_width: profile.balanced_digit_safe_width, + raw_i8_safe_width: profile.raw_i8_safe_width, + } + } +} + +impl CpuPreparedSetup { + #[cfg(test)] + pub(crate) fn ntt_slot_build_count(&self) -> usize { + self.ntt_slot_build_count.load(Ordering::Relaxed) + } + + pub(crate) fn with_shared_ntt( + &self, + key: NttCacheKey, + f: impl FnOnce(&PreparedNttCache) -> Result, + ) -> Result { + if key.ring_d != D { + return Err(AkitaError::InvalidSetup( + "NTT prefix requirement ring dimension does not match kernel".into(), + )); + } + let required_num_field_elements = key.num_field_elements()?; + if required_num_field_elements > self.expanded.shared_matrix.num_field_elements() { + return Err(AkitaError::InvalidSetup(format!( + "NTT prefix requires {required_num_field_elements} field elements but setup has {}", + self.expanded.shared_matrix.num_field_elements() + ))); + } + let slot = prepare_ntt_slot_on_prepared(self, key)?; + if slot.ring_d != D { + return Err(AkitaError::InvalidSetup(format!( + "prepared CPU NTT ring_d mismatch: stored {}, requested {D}", + slot.ring_d + ))); + } + let typed = slot + .cache + .downcast_ref::>() + .ok_or_else(|| AkitaError::InvalidSetup("prepared CPU NTT type mismatch".into()))?; + f(typed) + } + + pub(super) fn with_compression_ntt( + &self, + input_width: usize, + f: impl FnOnce(&PreparedNttCache) -> Result, + ) -> Result { + self.compression_ntt + .with_ntt(self.expanded.as_ref(), input_width, f) + } + + /// In-memory byte footprint of all shared setup NTT caches. + pub fn shared_ntt_cache_bytes(&self) -> usize { + self.shared_ntt + .lock() + .unwrap_or_else(|e| e.into_inner()) + .values() + .filter_map(|entry| entry.get()) + .filter_map(|result| result.as_ref().ok()) + .map(|slot| slot.cache_bytes) + .sum() + } + + /// Drop built shared-matrix NTT slots and return their byte footprint. + /// + /// Compression transforms remain resident. Active readers keep released + /// slots alive through their `Arc`; callers that need an empty cache must + /// invoke this at a quiescent lifecycle boundary. + pub fn drop_built_ntt_slots(&self) -> Result { + let mut freed = 0usize; + let mut cache = self + .shared_ntt + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; + let mut released_keys = Vec::new(); + for (key, cell) in cache.iter() { + if let Some(bytes) = cell + .get() + .and_then(|result| result.as_ref().ok()) + .map(|slot| slot.cache_bytes) + { + freed = freed.checked_add(bytes).ok_or_else(|| { + AkitaError::InvalidSetup( + "released shared matrix NTT cache bytes overflow".into(), + ) + })?; + released_keys.push(*key); + } + } + for key in released_keys { + cache.remove(&key); + } + drop(cache); + if freed > 0 { + tracing::info!(freed_bytes = freed, "dropped built shared matrix NTT slots"); + } + Ok(freed) + } + + /// Initialized shared NTT cache entries in deterministic reporting order. + pub fn shared_ntt_cache_metrics(&self) -> Result, AkitaError> { + let cache = self + .shared_ntt + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; + let mut metrics = cache + .iter() + .filter_map(|(key, entry)| { + entry + .get() + .and_then(|result| result.as_ref().ok()) + .map(|slot| PreparedNttCacheMetric { + key: *key, + cache_bytes: slot.cache_bytes, + }) + }) + .collect::>(); + metrics.sort_by_key(|metric| { + let domain = match metric.key.domain { + NttTransformDomain::Negacyclic => 0, + NttTransformDomain::Cyclic => 1, + NttTransformDomain::I16TailBothTransforms => 2, + NttTransformDomain::ExactNegacyclicI16 { .. } => 3, + }; + (metric.key.ring_d, domain, metric.key.num_ring_elements) + }); + Ok(metrics) + } + + /// Planned resident bytes for max-joined exact base-profile cache keys. + pub fn planned_shared_ntt_cache_bytes( + &self, + keys: impl IntoIterator, + ) -> Result { + let mut joined = HashMap::<(usize, NttTransformDomain), usize>::new(); + for key in keys { + if key.num_field_elements()? > self.expanded.shared_matrix.num_field_elements() { + return Err(AkitaError::InvalidSetup( + "planned NTT prefix exceeds prepared public matrix".into(), + )); + } + joined + .entry((key.ring_d, key.domain)) + .and_modify(|count| *count = (*count).max(key.num_ring_elements)) + .or_insert(key.num_ring_elements); + } + joined + .into_iter() + .try_fold(0usize, |total, ((ring_d, domain), count)| { + let profile = + dispatch_for_field!(ProtocolDispatchSlot::Ntt, F, ring_d, |RING_D| { + selected_crt_i8_capacity_profile::() + })?; + let base_bytes = if domain == NttTransformDomain::I16TailBothTransforms { + 0 + } else { + count + .checked_mul(ring_d) + .and_then(|bytes| bytes.checked_mul(profile.num_primes)) + .and_then(|bytes| bytes.checked_mul(core::mem::size_of::())) + .ok_or_else(|| { + AkitaError::InvalidSetup("planned NTT bytes overflow".into()) + })? + }; + let tail_bytes = match domain { + NttTransformDomain::I16TailBothTransforms => count + .checked_mul(ring_d) + .and_then(|bytes| bytes.checked_mul(2 * core::mem::size_of::())) + .ok_or_else(|| { + AkitaError::InvalidSetup("planned i16-tail bytes overflow".into()) + })?, + NttTransformDomain::ExactNegacyclicI16 { + width, + rhs_abs_bound, + } if dispatch_for_field!(ProtocolDispatchSlot::Ntt, F, ring_d, |RING_D| { + ntt_cache_requires_i16_tail::(width, rhs_abs_bound) + })? => + { + count + .checked_mul(ring_d) + .and_then(|bytes| bytes.checked_mul(core::mem::size_of::())) + .ok_or_else(|| { + AkitaError::InvalidSetup("planned i16-tail bytes overflow".into()) + })? + } + _ => 0, + }; + total + .checked_add(base_bytes) + .and_then(|bytes| bytes.checked_add(tail_bytes)) + .ok_or_else(|| AkitaError::InvalidSetup("planned NTT bytes overflow".into())) + }) + } + + /// In-memory byte footprint of exact-prefix compression NTT caches. + pub fn compression_ntt_cache_bytes(&self) -> usize { + self.compression_ntt.cache_bytes() + } + + /// Complete in-memory byte footprint of all CPU NTT caches. + pub fn ntt_cache_bytes(&self) -> Result { + self.shared_ntt_cache_bytes() + .checked_add(self.compression_ntt_cache_bytes()) + .ok_or_else(|| AkitaError::InvalidSetup("CPU NTT cache bytes overflow".into())) + } + + /// CRT/NTT profile and universal i8 capacity metadata for ring degree `D`. + pub fn shared_ntt_profile(&self, ring_d: usize) -> Result { + self.ntt_i8_capacity_by_ring_d + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT profile lock poisoned".into()))? + .get(&ring_d) + .copied() + .map(Into::into) + .ok_or_else(|| { + AkitaError::InvalidSetup(format!( + "prepared setup has no CRT/i8 capacity profile for ring_d={ring_d}" + )) + }) + } +} + +fn build_ntt_slot_for_key( + expanded: &AkitaExpandedSetup, + key: NttCacheKey, +) -> Result { + dispatch_for_field!(ProtocolDispatchSlot::Ntt, F, key.ring_d, |RING_D| { + let view = expanded + .shared_matrix() + .ring_view::(1, key.num_ring_elements)?; + let mode = match key.domain { + NttTransformDomain::Negacyclic => NttCacheMode::Negacyclic, + NttTransformDomain::Cyclic => NttCacheMode::Cyclic, + NttTransformDomain::I16TailBothTransforms => NttCacheMode::I16TailBothTransforms, + NttTransformDomain::ExactNegacyclicI16 { + width, + rhs_abs_bound, + } => NttCacheMode::ExactNegacyclic { + width, + rhs_abs_bound, + }, + }; + let cache = Arc::new(prepare_ntt_cache(view, mode)?); + Ok(ErasedCpuNttCache { + ring_d: RING_D, + cache_bytes: cache.cache_bytes(), + cache, + }) + }) +} + +fn record_ntt_profile_on_prepared( + prepared: &CpuPreparedSetup, + key: NttCacheKey, + profile: CrtI8CapacityProfile, +) -> Result<(), AkitaError> { + prepared + .ntt_i8_capacity_by_ring_d + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT profile lock poisoned".into()))? + .entry(key.ring_d) + .or_insert(profile); + Ok(()) +} + +fn prepare_ntt_slot_on_prepared( + prepared: &CpuPreparedSetup, + requested_key: NttCacheKey, +) -> Result, AkitaError> { + let profile = dispatch_for_field!( + ProtocolDispatchSlot::Ntt, + F, + requested_key.ring_d, + |RING_D| selected_crt_i8_capacity_profile::() + )?; + loop { + let (key, entry) = { + let mut cache = prepared + .shared_ntt + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; + if let Some((key, entry)) = cache + .iter() + .filter(|(key, _)| { + key.ring_d == requested_key.ring_d + && key.domain == requested_key.domain + && key.num_ring_elements >= requested_key.num_ring_elements + }) + .min_by_key(|(key, _)| key.num_ring_elements) + .map(|(key, entry)| (*key, Arc::clone(entry))) + { + (key, entry) + } else { + let entry = Arc::new(OnceLock::new()); + cache.insert(requested_key, Arc::clone(&entry)); + (requested_key, entry) + } + }; + let build_result = entry.get_or_init(|| { + #[cfg(test)] + prepared + .ntt_slot_build_count + .fetch_add(1, Ordering::Relaxed); + build_ntt_slot_for_key(prepared.expanded.as_ref(), key).map(Arc::new) + }); + match build_result { + Ok(slot) => { + // Keep smaller prefixes available until the larger build has + // completed successfully. A failed growth must not evict a + // working covering candidate; once the new slot is ready the + // smaller entries are redundant and can be reclaimed. + let mut cache = prepared + .shared_ntt + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; + cache.retain(|cached_key, _| { + cached_key.ring_d != key.ring_d + || cached_key.domain != key.domain + || cached_key.num_ring_elements >= key.num_ring_elements + }); + drop(cache); + record_ntt_profile_on_prepared(prepared, key, profile)?; + return Ok(Arc::clone(slot)); + } + Err(error) => { + let mut cache = prepared + .shared_ntt + .lock() + .map_err(|_| AkitaError::InvalidSetup("NTT cache lock poisoned".into()))?; + if cache + .get(&key) + .is_some_and(|current| Arc::ptr_eq(current, &entry)) + { + cache.remove(&key); + } + drop(cache); + if key == requested_key { + return Err(error.clone()); + } + } + } + } +} + +fn ensure_ntt_slot_on_prepared( + prepared: &CpuPreparedSetup, + key: NttCacheKey, +) -> Result<(), AkitaError> { + prepare_ntt_slot_on_prepared(prepared, key).map(|_| ()) +} + +pub(super) fn validate_digit_row_request( + row_len: usize, + row_width: usize, + total_ring_elements: usize, +) -> Result<(), AkitaError> { + if row_width == 0 { + return Err(AkitaError::InvalidSetup( + "prepared setup row width must be nonzero".to_string(), + )); + } + let required = row_len.checked_mul(row_width).ok_or_else(|| { + AkitaError::InvalidSetup(format!( + "digit row request overflows: row_len={row_len} row_width={row_width}" + )) + })?; + if required > total_ring_elements { + return Err(AkitaError::InvalidSetup(format!( + "digit row request needs {required} setup ring elements but prepared setup has {total_ring_elements}" + ))); + } + Ok(()) +} + +impl ComputeBackendSetup for CpuBackend +where + F: FieldCore + CanonicalField, +{ + type PreparedSetup = CpuPreparedSetup; + + fn prepare_expanded( + &self, + expanded: Arc>, + ) -> Result { + Ok(CpuPreparedSetup { + expanded, + shared_ntt: Mutex::new(HashMap::new()), + compression_ntt: CompressionNttCache::default(), + ntt_i8_capacity_by_ring_d: Mutex::new(HashMap::new()), + #[cfg(test)] + ntt_slot_build_count: AtomicUsize::new(0), + }) + } + + fn ensure_ntt_slot( + &self, + prepared: &Self::PreparedSetup, + key: NttCacheKey, + ) -> Result<(), AkitaError> { + ensure_ntt_slot_on_prepared(prepared, key) + } + + fn ntt_requirement_is_cached( + &self, + _prepared: &Self::PreparedSetup, + requirement: RoutedNttRequirement, + ) -> Result { + Ok(self.ntt_operation_uses_cache(requirement.cluster, requirement.routing_extent)) + } + + fn release_built_ntt_slots(&self, prepared: &Self::PreparedSetup) -> Result { + prepared.drop_built_ntt_slots() + } + + fn planned_ntt_cache_entry_bytes( + &self, + prepared: &Self::PreparedSetup, + key: NttCacheKey, + ) -> Result { + prepared.planned_shared_ntt_cache_bytes([key]) + } + + fn prepared_expanded_setup<'a>( + &self, + prepared: &'a Self::PreparedSetup, + ) -> &'a AkitaExpandedSetup { + prepared.expanded.as_ref() + } +} diff --git a/crates/akita-prover/src/compute/cpu/prepared_tests.rs b/crates/akita-prover/src/compute/cpu/prepared_tests.rs new file mode 100644 index 000000000..3e83271e3 --- /dev/null +++ b/crates/akita-prover/src/compute/cpu/prepared_tests.rs @@ -0,0 +1,411 @@ +use super::{CpuBackend, CpuPreparedSetup}; +use crate::backend::RingSwitchRelationView; +use crate::compute::backend::{ComputeBackendSetup, DigitRowsComputeBackend}; +use crate::compute::{RingSwitchRelationKernel, RingSwitchRelationPlan}; +use crate::AkitaProverSetup; +use akita_field::Prime64Offset59; +use akita_types::MAX_I8_LOG_BASIS; +use akita_types::{NttCacheKey, NttTransformDomain, SetupMatrixCapacity}; +use std::sync::atomic::Ordering; +use std::sync::Arc; + +pub(super) type F = Prime64Offset59; +pub(super) const D: usize = 64; + +fn setup_capacity(num_ring_elements: usize) -> SetupMatrixCapacity { + SetupMatrixCapacity { + num_field_elements: num_ring_elements * D, + } +} + +pub(super) fn prepared() -> CpuPreparedSetup { + let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + CpuBackend::DEFAULT.prepare_setup(&setup).unwrap() +} + +#[test] +fn cpu_prepared_setup_identity_rejects_mismatched_setup() { + let setup_a = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + let setup_b = AkitaProverSetup::::generate_with_capacity(9, 1, setup_capacity(D)).unwrap(); + let prepared = CpuBackend::DEFAULT.prepare_setup(&setup_a).unwrap(); + + CpuBackend::DEFAULT + .validate_prepared_setup(&prepared, setup_a.expanded.as_ref()) + .expect("matching setup"); + assert!( + CpuBackend::DEFAULT + .validate_prepared_setup(&prepared, setup_b.expanded.as_ref()) + .is_err(), + "prepared context must stay bound to the setup used to create it" + ); +} + +#[test] +fn cpu_prepared_setup_identity_accepts_equivalent_setup() { + let setup_a = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + let setup_b = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + assert!(!Arc::ptr_eq(&setup_a.expanded, &setup_b.expanded)); + + let prepared = CpuBackend::DEFAULT.prepare_setup(&setup_a).unwrap(); + + CpuBackend::DEFAULT + .validate_prepared_setup(&prepared, setup_b.expanded.as_ref()) + .expect("equivalent deterministic setup should validate"); +} + +#[test] +fn cpu_prepared_setup_reports_checked_crt_capacity_profile() { + let prepared = prepared(); + CpuBackend::DEFAULT + .digit_rows::(&prepared, 1, &[[1i8; D]], 2) + .expect("build exact NTT prefix"); + let profile = prepared.shared_ntt_profile(D).expect("profile"); + + assert_eq!(profile.profile_id, "Q64/3xi32"); + assert_eq!(profile.num_primes, 3); + assert_eq!(profile.limb_bits, 32); + assert_eq!(profile.max_i8_log_basis, MAX_I8_LOG_BASIS); + assert!(profile.balanced_digit_safe_width > 0); + assert!(profile.raw_i8_safe_width > 0); +} + +#[test] +fn prepare_setup_starts_with_empty_ntt_cache() { + let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + let prepared = CpuBackend::DEFAULT.prepare_setup(&setup).expect("prepared"); + assert_eq!(prepared.shared_ntt_cache_bytes(), 0); + assert!(prepared.shared_ntt.lock().unwrap().is_empty()); +} + +#[test] +fn cpu_prepared_setup_builds_only_requested_ntt_slots() { + let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + let prepared = CpuBackend::DEFAULT.prepare_setup(&setup).expect("prepared"); + let partial_key = NttCacheKey { + ring_d: D, + num_ring_elements: 1, + domain: NttTransformDomain::Negacyclic, + }; + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, partial_key) + .expect("warm partial slot"); + assert!(prepared.shared_ntt_cache_bytes() > 0); + let cache = prepared.shared_ntt.lock().unwrap(); + assert!(cache.contains_key(&partial_key)); + assert_eq!(cache.len(), 1); + drop(cache); + let miss = NttCacheKey { + ring_d: D, + num_ring_elements: 99_999, + domain: NttTransformDomain::Negacyclic, + }; + assert!(!prepared.shared_ntt.lock().unwrap().contains_key(&miss)); +} + +#[test] +fn concurrent_same_key_ntt_warm_builds_once() { + let setup = AkitaProverSetup::::generate_with_capacity(8, 1, setup_capacity(D)).unwrap(); + let prepared = CpuBackend::DEFAULT + .prepare_expanded(setup.expanded.clone()) + .expect("empty prepared setup"); + let key = NttCacheKey { + ring_d: D, + num_ring_elements: 2, + domain: NttTransformDomain::Negacyclic, + }; + + std::thread::scope(|scope| { + for _ in 0..8 { + let prepared = &prepared; + scope.spawn(move || { + CpuBackend::DEFAULT + .ensure_ntt_slot(prepared, key) + .expect("warm shared NTT slot"); + }); + } + }); + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, key) + .expect("repeated warm is a no-op"); + + assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 1); + assert!(prepared.shared_ntt_cache_bytes() > 0); +} + +#[test] +fn larger_initialized_prefix_covers_smaller_request() { + let prepared = prepared(); + let covering_key = NttCacheKey { + ring_d: D, + num_ring_elements: 8, + domain: NttTransformDomain::Negacyclic, + }; + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, covering_key) + .expect("warm covering prefix"); + + prepared + .with_shared_ntt::( + NttCacheKey::from_matrix_shape(D, 1, 3, NttTransformDomain::Negacyclic).unwrap(), + |_ntt| Ok(()), + ) + .expect("reuse covering prefix"); + + assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 1); + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&covering_key)); +} + +#[test] +fn larger_request_replaces_smaller_cached_prefix() { + let prepared = prepared(); + let small = NttCacheKey { + ring_d: D, + num_ring_elements: 3, + domain: NttTransformDomain::Negacyclic, + }; + let large = NttCacheKey { + ring_d: D, + num_ring_elements: 8, + domain: NttTransformDomain::Negacyclic, + }; + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, small) + .expect("warm small prefix"); + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, large) + .expect("grow to larger prefix"); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&large)); +} + +#[test] +fn failed_growth_retains_smaller_cached_prefix() { + let prepared = prepared(); + let small = NttCacheKey { + ring_d: D, + num_ring_elements: 3, + domain: NttTransformDomain::Negacyclic, + }; + let oversized = NttCacheKey { + ring_d: D, + num_ring_elements: D + 1, + domain: NttTransformDomain::Negacyclic, + }; + + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, small) + .expect("warm small prefix"); + assert!(CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, oversized) + .is_err()); + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, small) + .expect("failed growth must leave the smaller prefix usable"); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&small)); +} + +#[test] +fn planned_cache_bytes_match_max_joined_resident_state() { + let prepared = prepared(); + let keys = [ + NttCacheKey { + ring_d: D, + num_ring_elements: 3, + domain: NttTransformDomain::Negacyclic, + }, + NttCacheKey { + ring_d: D, + num_ring_elements: 8, + domain: NttTransformDomain::Negacyclic, + }, + NttCacheKey { + ring_d: D, + num_ring_elements: 2, + domain: NttTransformDomain::Cyclic, + }, + ]; + let planned = prepared + .planned_shared_ntt_cache_bytes(keys) + .expect("planned bytes"); + for key in keys { + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, key) + .expect("prewarm exact requirement"); + } + + assert_eq!(prepared.shared_ntt_cache_bytes(), planned); + assert_eq!(prepared.shared_ntt_cache_metrics().unwrap().len(), 2); +} + +#[test] +fn concurrent_prefix_growth_retains_only_the_maximum() { + let prepared = prepared(); + std::thread::scope(|scope| { + for num_ring_elements in [2, 5, 3, 8, 4, 7] { + let prepared = &prepared; + scope.spawn(move || { + CpuBackend::DEFAULT + .ensure_ntt_slot( + prepared, + NttCacheKey { + ring_d: D, + num_ring_elements, + domain: NttTransformDomain::Cyclic, + }, + ) + .expect("grow shared NTT prefix"); + }); + } + }); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&NttCacheKey { + ring_d: D, + num_ring_elements: 8, + domain: NttTransformDomain::Cyclic, + })); +} + +#[test] +fn failed_oversized_warm_does_not_cover_valid_request() { + let prepared = prepared(); + let oversized = NttCacheKey { + ring_d: D, + num_ring_elements: D + 1, + domain: NttTransformDomain::Negacyclic, + }; + let valid = NttCacheKey { + ring_d: D, + num_ring_elements: 3, + domain: NttTransformDomain::Negacyclic, + }; + + assert!(CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, oversized) + .is_err()); + assert!(prepared.shared_ntt.lock().unwrap().is_empty()); + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, valid) + .expect("failed oversized warm must not poison a valid prefix"); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&valid)); + assert_eq!(prepared.ntt_slot_build_count.load(Ordering::Relaxed), 2); +} + +#[test] +fn concurrent_failed_growth_leaves_valid_prefix_recoverable() { + let prepared = prepared(); + let oversized = NttCacheKey { + ring_d: D, + num_ring_elements: D + 1, + domain: NttTransformDomain::Cyclic, + }; + let valid = NttCacheKey { + ring_d: D, + num_ring_elements: 8, + domain: NttTransformDomain::Cyclic, + }; + + std::thread::scope(|scope| { + let failed = scope.spawn(|| CpuBackend::DEFAULT.ensure_ntt_slot(&prepared, oversized)); + let warmed = scope.spawn(|| CpuBackend::DEFAULT.ensure_ntt_slot(&prepared, valid)); + assert!(failed.join().expect("oversized warm thread").is_err()); + warmed + .join() + .expect("valid warm thread") + .expect("valid warm must retry a failed covering entry"); + }); + CpuBackend::DEFAULT + .ensure_ntt_slot(&prepared, valid) + .expect("valid prefix remains available after failed growth"); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert_eq!(cache.len(), 1); + assert!(cache.contains_key(&valid)); +} + +#[test] +fn ring_switch_domains_keep_independent_exact_prefix_lengths() { + let prepared = prepared(); + let e_hat = vec![[1i8; D]; 5]; + let t_hat = vec![[1i8; D]; 3]; + let z_segment = vec![[1i32; D]; 2]; + + CpuBackend::DEFAULT + .relation_rows( + &prepared, + RingSwitchRelationView { + e_hat: &e_hat, + t_hat: &t_hat, + z_segment: &z_segment, + z_folded_centered_inf_norm: 1, + }, + RingSwitchRelationPlan { + n_d: 2, + n_b: 1, + n_a: 1, + log_basis_open: 2, + log_basis_outer: 2, + }, + ) + .expect("ring-switch rows"); + + let cache = prepared.shared_ntt.lock().unwrap(); + assert!(cache.contains_key(&NttCacheKey { + ring_d: D, + num_ring_elements: 10, + domain: NttTransformDomain::Cyclic, + })); + assert!(cache.contains_key(&NttCacheKey { + ring_d: D, + num_ring_elements: 2, + domain: NttTransformDomain::Negacyclic, + })); + assert_eq!(cache.len(), 2); +} + +#[test] +fn cyclic_only_ring_switch_rows_do_not_prepare_negacyclic_state() { + let prepared = prepared(); + let t_hat = vec![[1i8; D]; 3]; + + let rows = CpuBackend::DEFAULT + .relation_rows( + &prepared, + RingSwitchRelationView { + e_hat: &[], + t_hat: &t_hat, + z_segment: &[], + z_folded_centered_inf_norm: 0, + }, + RingSwitchRelationPlan { + n_d: 0, + n_b: 2, + n_a: 0, + log_basis_open: 2, + log_basis_outer: 2, + }, + ) + .expect("B-only ring-switch rows"); + + assert_eq!(rows.b_cyclic.len(), 2); + assert!(rows.d_cyclic.is_empty()); + assert!(rows.a_quotients.is_empty()); + let cache = prepared.shared_ntt.lock().unwrap(); + assert!(cache.contains_key(&NttCacheKey { + ring_d: D, + num_ring_elements: 6, + domain: NttTransformDomain::Cyclic, + })); + assert_eq!(cache.len(), 1); +} diff --git a/crates/akita-prover/src/compute/cpu/ring_switch.rs b/crates/akita-prover/src/compute/cpu/ring_switch.rs index 9a75f65e5..30aa40767 100644 --- a/crates/akita-prover/src/compute/cpu/ring_switch.rs +++ b/crates/akita-prover/src/compute/cpu/ring_switch.rs @@ -1,5 +1,25 @@ -use super::*; +use super::CpuBackend; use crate::backend::{RingSwitchQuotientView, RingSwitchRelationView}; +use crate::compute::kernels::{RingSwitchQuotientKernel, RingSwitchRelationKernel}; +use crate::compute::operation_plans::{RingSwitchQuotientPlan, RingSwitchRelationPlan}; +use crate::compute::plans::RingSwitchRelationRows; +use crate::compute::requirements::NttOperationCluster; +use crate::kernels::linear::{ + centered_quotient_rows_with_i16_tail, fused_quotient_matrix_extent, + fused_split_eq_quotients_prover_bounds, fused_split_eq_quotients_streamed_prover_bounds, +}; +use akita_algebra::CyclotomicRing; +use akita_field::{AkitaError, CanonicalField, FieldCore, HalvingField}; +use akita_types::{centered_quotient_requires_i16_tail_for_field, NttCacheKey, NttTransformDomain}; + +fn centered_rhs_abs_bound(rows: &[[i32; D]], claimed: u32) -> u64 { + rows.iter() + .flat_map(|row| row.iter()) + .map(|value| u64::from(value.unsigned_abs())) + .max() + .unwrap_or(0) + .max(u64::from(claimed)) +} impl RingSwitchRelationKernel, F, D> for CpuBackend where @@ -14,11 +34,6 @@ where where F: HalvingField, { - // The root-level relation spans nearly the whole matrix but reads - // each element exactly once per prove — stream its transforms from - // the field form instead of materializing a matrix-scale NTT cache - // for one pass. Small (deeper-level) extents keep the cached path, - // which is shared with the per-level digit-row products. let stream_extent = fused_quotient_matrix_extent( plan.n_d, source.e_hat.len(), @@ -98,6 +113,45 @@ where NttTransformDomain::Negacyclic, )?; prepared.with_shared_ntt::(negacyclic_requirement, |negacyclic_ntt| { + if centered_quotient_requires_i16_tail_for_field::(centered_rhs_abs_bound( + source.z_segment, + source.z_folded_centered_inf_norm, + ))? { + let tail_requirement = NttCacheKey::from_matrix_shape( + D, + plan.n_a, + source.z_segment.len(), + NttTransformDomain::I16TailBothTransforms, + )?; + return prepared.with_shared_ntt::(tail_requirement, |tail_ntt| { + let (d_cyclic, b_cyclic, _) = fused_split_eq_quotients_prover_bounds( + negacyclic_ntt, + cyclic_ntt, + plan.n_d, + plan.n_b, + 0, + source.e_hat, + source.t_hat, + &[], + 0, + plan.log_basis_open, + plan.log_basis_outer, + )?; + let a_quotients = centered_quotient_rows_with_i16_tail( + negacyclic_ntt, + cyclic_ntt, + tail_ntt, + plan.n_a, + source.z_segment, + source.z_folded_centered_inf_norm, + )?; + Ok(RingSwitchRelationRows { + d_cyclic, + b_cyclic, + a_quotients, + }) + }); + } let (d_cyclic, b_cyclic, a_quotients) = fused_split_eq_quotients_prover_bounds( negacyclic_ntt, cyclic_ntt, @@ -170,6 +224,27 @@ where )?; prepared.with_shared_ntt::(cyclic, |cyclic_ntt| { prepared.with_shared_ntt::(negacyclic, |negacyclic_ntt| { + if centered_quotient_requires_i16_tail_for_field::(centered_rhs_abs_bound( + source.z_segment, + source.z_folded_centered_inf_norm, + ))? { + let tail = NttCacheKey::from_matrix_shape( + D, + plan.n_a, + source.z_segment.len(), + NttTransformDomain::I16TailBothTransforms, + )?; + return prepared.with_shared_ntt::(tail, |tail_ntt| { + centered_quotient_rows_with_i16_tail( + negacyclic_ntt, + cyclic_ntt, + tail_ntt, + plan.n_a, + source.z_segment, + source.z_folded_centered_inf_norm, + ) + }); + } let (_d_cyclic, _b_cyclic, a_quotients) = fused_split_eq_quotients_prover_bounds( negacyclic_ntt, cyclic_ntt, diff --git a/crates/akita-prover/src/compute/cpu/streamed_tests.rs b/crates/akita-prover/src/compute/cpu/streamed_tests.rs index bf3daf977..d59238890 100644 --- a/crates/akita-prover/src/compute/cpu/streamed_tests.rs +++ b/crates/akita-prover/src/compute/cpu/streamed_tests.rs @@ -4,9 +4,16 @@ use super::*; use crate::backend::RingSwitchRelationView; use crate::compute::backend::ComputeBackendSetup; +use crate::compute::requirements::NttOperationCluster; +use crate::compute::{RingSwitchRelationKernel, RingSwitchRelationPlan}; +use crate::kernels::linear::{ + fused_quotient_matrix_extent, fused_split_eq_quotients_prover_bounds, + fused_split_eq_quotients_streamed_prover_bounds, +}; use crate::AkitaProverSetup; use akita_field::{Prime128Offset275, Prime32Offset99, Prime64Offset59}; -use akita_types::SetupMatrixCapacity; +use akita_types::{NttCacheKey, NttTransformDomain, SetupMatrixCapacity}; +use std::sync::atomic::Ordering; type F = Prime64Offset59; const D: usize = 64; diff --git a/crates/akita-prover/src/compute/requirements.rs b/crates/akita-prover/src/compute/requirements.rs index ad8bb50f7..1a4ee9eb5 100644 --- a/crates/akita-prover/src/compute/requirements.rs +++ b/crates/akita-prover/src/compute/requirements.rs @@ -2,8 +2,9 @@ use akita_field::AkitaError; use akita_types::{ - CommittedGroupParams, FoldSchedule, NttCacheKey, NttTransformDomain, PrecommittedLevelParams, - SetupPrefixSlotId, TerminalCommittedGroupParams, + centered_quotient_requires_i16_tail, CommittedGroupParams, FoldSchedule, NttCacheKey, + NttTransformDomain, PrecommittedLevelParams, SetupPrefixSlotId, SisModulusProfileId, + TerminalCommittedGroupParams, }; /// Compute cluster that owns one public-matrix transform request. @@ -45,6 +46,18 @@ pub struct NttExecutionRequirements { } impl NttExecutionRequirements { + /// Compile the complete root-commit plus prove call layout used by profile + /// execution and other callers that own both phases. + pub fn from_commit_and_prove_schedule(schedule: &FoldSchedule) -> Result { + let mut requirements = Self::from_prove_schedule(schedule)?; + let root = &schedule.root.params; + requirements.add_group_commit(0, &root.final_group.commitment)?; + for precommitted in &root.precommitted_groups { + requirements.add_precommitted_commit(0, &precommitted.commitment)?; + } + Ok(requirements) + } + /// Compile matrix work performed by one resolved prover execution. /// /// The root commitment is completed before `batched_prove` and remains @@ -130,7 +143,7 @@ impl NttExecutionRequirements { Ok(requirements) } - /// Exact operation requests in deterministic routing order. + /// Max-joined requirements in deterministic routing order. pub fn entries(&self) -> &[RoutedNttRequirement] { &self.entries } @@ -142,29 +155,34 @@ impl NttExecutionRequirements { slot: &SetupPrefixSlotId, ) -> Result<(), AkitaError> { let params = &slot.commitment_params.layout; + let inner_key = NttCacheKey::from_matrix_shape( + params.inner_commit_matrix.ring_dimension(), + params.inner_commit_matrix.output_rank(), + params.inner_commit_matrix.input_width(), + signed_commit_domain( + params.inner_commit_matrix.input_width(), + params.log_basis_inner, + )?, + )?; self.add_matrix( fold_level, NttOperationCluster::Commit, - NttCacheKey::from_matrix_shape( - params.inner_commit_matrix.ring_dimension(), - params.inner_commit_matrix.output_rank(), - params.inner_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?, + inner_key, matrix_extent( params.inner_commit_matrix.output_rank(), params.inner_commit_matrix.input_width(), )?, )?; + let outer_key = NttCacheKey::from_matrix_shape( + params.outer_commit_matrix.ring_dimension(), + params.outer_commit_matrix.output_rank(), + params.outer_commit_matrix.input_width(), + NttTransformDomain::Negacyclic, + )?; self.add_matrix( fold_level, NttOperationCluster::Commit, - NttCacheKey::from_matrix_shape( - params.outer_commit_matrix.ring_dimension(), - params.outer_commit_matrix.output_rank(), - params.outer_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?, + outer_key, matrix_extent( params.outer_commit_matrix.output_rank(), params.outer_commit_matrix.input_width(), @@ -209,29 +227,34 @@ impl NttExecutionRequirements { level: usize, params: &CommittedGroupParams, ) -> Result<(), AkitaError> { + let inner_key = NttCacheKey::from_matrix_shape( + params.inner_commit_matrix.ring_dimension(), + params.inner_commit_matrix.output_rank(), + params.inner_commit_matrix.input_width(), + signed_commit_domain( + params.inner_commit_matrix.input_width(), + params.log_basis_inner, + )?, + )?; self.add_matrix( level, NttOperationCluster::Commit, - NttCacheKey::from_matrix_shape( - params.inner_commit_matrix.ring_dimension(), - params.inner_commit_matrix.output_rank(), - params.inner_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?, + inner_key, matrix_extent( params.inner_commit_matrix.output_rank(), params.inner_commit_matrix.input_width(), )?, )?; + let outer_key = NttCacheKey::from_matrix_shape( + params.outer_commit_matrix.ring_dimension(), + params.outer_commit_matrix.output_rank(), + params.outer_commit_matrix.input_width(), + NttTransformDomain::Negacyclic, + )?; self.add_matrix( level, NttOperationCluster::Commit, - NttCacheKey::from_matrix_shape( - params.outer_commit_matrix.ring_dimension(), - params.outer_commit_matrix.output_rank(), - params.outer_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?, + outer_key, matrix_extent( params.outer_commit_matrix.output_rank(), params.outer_commit_matrix.input_width(), @@ -252,6 +275,9 @@ impl NttExecutionRequirements { params.outer_commit_matrix.ring_dimension(), params.outer_commit_matrix.output_rank(), params.outer_commit_matrix.input_width(), + params.log_basis_open, + params.num_digits_fold, + params.inner_commit_matrix.sis_modulus_profile(), )?; for precommitted in ¶ms.precommitted_groups { self.add_precommitted_relation(level, precommitted)?; @@ -272,6 +298,50 @@ impl NttExecutionRequirements { params.layout.outer_commit_matrix.ring_dimension(), params.layout.outer_commit_matrix.output_rank(), params.layout.outer_commit_matrix.input_width(), + params.log_basis_open, + params.num_digits_fold, + params.layout.inner_commit_matrix.sis_modulus_profile(), + ) + } + + fn add_precommitted_commit( + &mut self, + level: usize, + params: &PrecommittedLevelParams, + ) -> Result<(), AkitaError> { + let layout = ¶ms.layout; + let inner_key = NttCacheKey::from_matrix_shape( + layout.inner_commit_matrix.ring_dimension(), + layout.inner_commit_matrix.output_rank(), + layout.inner_commit_matrix.input_width(), + signed_commit_domain( + layout.inner_commit_matrix.input_width(), + layout.log_basis_inner, + )?, + )?; + self.add_matrix( + level, + NttOperationCluster::Commit, + inner_key, + matrix_extent( + layout.inner_commit_matrix.output_rank(), + layout.inner_commit_matrix.input_width(), + )?, + )?; + let outer_key = NttCacheKey::from_matrix_shape( + layout.outer_commit_matrix.ring_dimension(), + layout.outer_commit_matrix.output_rank(), + layout.outer_commit_matrix.input_width(), + NttTransformDomain::Negacyclic, + )?; + self.add_matrix( + level, + NttOperationCluster::Commit, + outer_key, + matrix_extent( + layout.outer_commit_matrix.output_rank(), + layout.outer_commit_matrix.input_width(), + )?, ) } @@ -285,6 +355,9 @@ impl NttExecutionRequirements { d_b: usize, n_b: usize, width_b: usize, + log_basis_open: u32, + num_digits_fold: usize, + modulus_profile: SisModulusProfileId, ) -> Result<(), AkitaError> { let a_extent = matrix_extent(n_a, width_a)?; for domain in [NttTransformDomain::Negacyclic, NttTransformDomain::Cyclic] { @@ -300,7 +373,28 @@ impl NttExecutionRequirements { NttOperationCluster::RingSwitch, NttCacheKey::from_matrix_shape(d_b, n_b, width_b, NttTransformDomain::Cyclic)?, matrix_extent(n_b, width_b)?, - ) + )?; + let (negative, positive) = akita_types::sis::fold_witness_representable_linf_bounds( + log_basis_open, + num_digits_fold, + ); + let rhs_abs_bound = u64::try_from(negative.max(positive)).map_err(|_| { + AkitaError::InvalidSetup("folded-witness bound exceeds NTT capacity model".into()) + })?; + if centered_quotient_requires_i16_tail(modulus_profile, d_a, rhs_abs_bound)? { + self.add_matrix( + level, + NttOperationCluster::RingSwitch, + NttCacheKey::from_matrix_shape( + d_a, + n_a, + width_a, + NttTransformDomain::I16TailBothTransforms, + )?, + a_extent, + )?; + } + Ok(()) } fn add_terminal( @@ -308,15 +402,19 @@ impl NttExecutionRequirements { level: usize, params: &TerminalCommittedGroupParams, ) -> Result<(), AkitaError> { + let key = NttCacheKey::from_matrix_shape( + params.inner_commit_matrix.ring_dimension(), + params.inner_commit_matrix.output_rank(), + params.inner_commit_matrix.input_width(), + signed_commit_domain( + params.inner_commit_matrix.input_width(), + params.log_basis_inner, + )?, + )?; self.add_matrix( level, NttOperationCluster::Commit, - NttCacheKey::from_matrix_shape( - params.inner_commit_matrix.ring_dimension(), - params.inner_commit_matrix.output_rank(), - params.inner_commit_matrix.input_width(), - NttTransformDomain::Negacyclic, - )?, + key, matrix_extent( params.inner_commit_matrix.output_rank(), params.inner_commit_matrix.input_width(), @@ -331,6 +429,18 @@ fn matrix_extent(num_rows: usize, active_width: usize) -> Result Result { + match crate::validation::signed_digit_kernel_for_setup(log_basis, "for NTT cache planning")? { + akita_types::SignedDigitKernel::I8 => Ok(NttTransformDomain::Negacyclic), + akita_types::SignedDigitKernel::I16 => Ok(NttTransformDomain::ExactNegacyclicI16 { + width, + rhs_abs_bound: akita_types::balanced_signed_digit_abs_bound(log_basis) + .ok_or_else(|| AkitaError::InvalidSetup("invalid signed digit basis".into()))?, + }), + } +} + const fn cluster_order(cluster: NttOperationCluster) -> u8 { match cluster { NttOperationCluster::Commit => 0, @@ -344,6 +454,8 @@ const fn domain_order(domain: NttTransformDomain) -> u8 { match domain { NttTransformDomain::Negacyclic => 0, NttTransformDomain::Cyclic => 1, + NttTransformDomain::I16TailBothTransforms => 2, + NttTransformDomain::ExactNegacyclicI16 { .. } => 3, } } @@ -351,7 +463,7 @@ const fn domain_order(domain: NttTransformDomain) -> u8 { mod tests { use super::*; #[cfg(feature = "schedules-default")] - use akita_config::proof_optimized::fp128; + use akita_config::proof_optimized::{fp128, fp32, fp64}; #[cfg(feature = "schedules-default")] use akita_config::CommitmentConfig; #[cfg(feature = "schedules-default")] @@ -407,7 +519,18 @@ mod tests { fn relation_requirements_preserve_single_role_runtime_extents() { let mut requirements = NttExecutionRequirements::default(); requirements - .add_relation_ab(0, 64, 2, 3, 128, 5, 7) + .add_relation_ab( + 0, + 64, + 2, + 3, + 128, + 5, + 7, + 1, + 1, + SisModulusProfileId::Q128OffsetA7F7, + ) .unwrap(); assert_eq!(requirements.entries.len(), 3); @@ -513,4 +636,70 @@ mod tests { && entry.key.domain == NttTransformDomain::Negacyclic })); } + + #[test] + #[cfg(feature = "schedules-default")] + fn complete_execution_includes_the_root_commitment() { + let schedule = fp128::OneHot::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(32), + )) + .expect("generated schedule"); + let prove = NttExecutionRequirements::from_prove_schedule(&schedule).unwrap(); + let complete = NttExecutionRequirements::from_commit_and_prove_schedule(&schedule).unwrap(); + let root = &schedule.root.params.final_group.commitment; + assert!(complete.entries().iter().any(|entry| { + entry.fold_level == 0 + && entry.cluster == NttOperationCluster::Commit + && entry.key.ring_d == root.inner_commit_matrix.ring_dimension() + })); + assert!(complete.entries().len() >= prove.entries().len()); + } + + #[test] + #[cfg(feature = "schedules-default")] + fn fp128_dense_prewarms_centered_quotient_tail() { + let schedule = fp128::Dense::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(26), + )) + .expect("generated dense schedule"); + let requirements = + NttExecutionRequirements::from_prove_schedule(&schedule).expect("compile requirements"); + assert!(requirements.entries().iter().any(|entry| { + entry.fold_level == 0 + && entry.cluster == NttOperationCluster::RingSwitch + && entry.key.ring_d + == schedule + .root + .params + .final_group + .commitment + .role_dims() + .d_a() + && entry.key.domain == NttTransformDomain::I16TailBothTransforms + })); + } + + #[test] + #[cfg(feature = "schedules-default")] + fn dense_small_field_nv26_stays_on_the_base_ntt_profiles() { + let schedules = [ + fp32::D128Dense::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(26), + )) + .expect("generated fp32 dense schedule"), + fp64::D128Dense::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(26), + )) + .expect("generated fp64 dense schedule"), + ]; + + for schedule in schedules { + let requirements = NttExecutionRequirements::from_commit_and_prove_schedule(&schedule) + .expect("compile complete NTT requirements"); + assert!(requirements.entries().iter().all(|entry| matches!( + entry.key.domain, + NttTransformDomain::Negacyclic | NttTransformDomain::Cyclic + ))); + } + } } diff --git a/crates/akita-prover/src/compute/stack.rs b/crates/akita-prover/src/compute/stack.rs index 289278500..b9982162e 100644 --- a/crates/akita-prover/src/compute/stack.rs +++ b/crates/akita-prover/src/compute/stack.rs @@ -478,6 +478,8 @@ where let domain = match key.domain { akita_types::NttTransformDomain::Negacyclic => 0, akita_types::NttTransformDomain::Cyclic => 1, + akita_types::NttTransformDomain::I16TailBothTransforms => 2, + akita_types::NttTransformDomain::ExactNegacyclicI16 { .. } => 3, }; (key.ring_d, domain) }); diff --git a/crates/akita-prover/src/kernels/decompose_fold_avx.rs b/crates/akita-prover/src/kernels/decompose_fold_avx.rs index 3fcf5998f..fa80b3ebc 100644 --- a/crates/akita-prover/src/kernels/decompose_fold_avx.rs +++ b/crates/akita-prover/src/kernels/decompose_fold_avx.rs @@ -61,6 +61,73 @@ pub(crate) unsafe fn sparse_mul_acc_avx( } } +/// Signed-i16 variant used by large inner decomposition bases. +/// +/// # Safety +/// +/// - `digit_plane` must point to at least `d` valid `i16` values. +/// - `acc` must point to at least `d` valid `i32` values. +/// - Every challenge position must be less than `d`. +/// - `positions` and `coeffs` must have equal lengths. +/// - `d` must be a multiple of 8. +#[target_feature(enable = "avx2")] +pub(crate) unsafe fn sparse_mul_acc_i16_avx( + digit_plane: *const i16, + acc: *mut i32, + d: usize, + positions: &[u32], + coeffs: &[i8], +) { + debug_assert!(d.is_multiple_of(8)); + for (&pos, &coeff) in positions.iter().zip(coeffs.iter()) { + let p = pos as usize; + let split = d - p; + for _ in 0..coeff.unsigned_abs() { + if coeff > 0 { + acc_segment_i16_add(digit_plane, acc.add(p), split); + if p > 0 { + acc_segment_i16_sub(digit_plane.add(split), acc, p); + } + } else { + acc_segment_i16_sub(digit_plane, acc.add(p), split); + if p > 0 { + acc_segment_i16_add(digit_plane.add(split), acc, p); + } + } + } + } +} + +#[inline(always)] +unsafe fn acc_segment_i16_add(src: *const i16, dst: *mut i32, len: usize) { + let chunks = len / 8; + for i in 0..chunks { + let offset = i * 8; + let values = _mm_loadu_si128(src.add(offset).cast()); + let widened = _mm256_cvtepi16_epi32(values); + let current = _mm256_loadu_si256(dst.add(offset).cast()); + _mm256_storeu_si256(dst.add(offset).cast(), _mm256_add_epi32(current, widened)); + } + for i in chunks * 8..len { + *dst.add(i) += i32::from(*src.add(i)); + } +} + +#[inline(always)] +unsafe fn acc_segment_i16_sub(src: *const i16, dst: *mut i32, len: usize) { + let chunks = len / 8; + for i in 0..chunks { + let offset = i * 8; + let values = _mm_loadu_si128(src.add(offset).cast()); + let widened = _mm256_cvtepi16_epi32(values); + let current = _mm256_loadu_si256(dst.add(offset).cast()); + _mm256_storeu_si256(dst.add(offset).cast(), _mm256_sub_epi32(current, widened)); + } + for i in chunks * 8..len { + *dst.add(i) -= i32::from(*src.add(i)); + } +} + /// `acc[i+p] += digits[i]` for `i in [0, split)`, /// `acc[i-split] -= digits[i]` for `i in [split, D)` (negacyclic wrap). // diff --git a/crates/akita-prover/src/kernels/decompose_fold_neon.rs b/crates/akita-prover/src/kernels/decompose_fold_neon.rs index 0ede3a991..4e4f38862 100644 --- a/crates/akita-prover/src/kernels/decompose_fold_neon.rs +++ b/crates/akita-prover/src/kernels/decompose_fold_neon.rs @@ -60,6 +60,79 @@ pub(crate) unsafe fn sparse_mul_acc_neon( } } +/// Signed-i16 variant used by large inner decomposition bases. +/// +/// # Safety +/// +/// - `digit_plane` must point to at least `d` valid `i16` values. +/// - `acc` must point to at least `d` valid `i32` values. +/// - Every challenge position must be less than `d`. +/// - `positions` and `coeffs` must have equal lengths. +/// - `d` must be a multiple of 8. +#[target_feature(enable = "neon")] +pub(crate) unsafe fn sparse_mul_acc_i16_neon( + digit_plane: *const i16, + acc: *mut i32, + d: usize, + positions: &[u32], + coeffs: &[i8], +) { + debug_assert!(d.is_multiple_of(8)); + for (&pos, &coeff) in positions.iter().zip(coeffs.iter()) { + let p = pos as usize; + let split = d - p; + for _ in 0..coeff.unsigned_abs() { + if coeff > 0 { + acc_segment_i16_add(digit_plane, acc.add(p), split); + if p > 0 { + acc_segment_i16_sub(digit_plane.add(split), acc, p); + } + } else { + acc_segment_i16_sub(digit_plane, acc.add(p), split); + if p > 0 { + acc_segment_i16_add(digit_plane.add(split), acc, p); + } + } + } + } +} + +#[inline(always)] +unsafe fn acc_segment_i16_add(src: *const i16, dst: *mut i32, len: usize) { + let chunks = len / 8; + for i in 0..chunks { + let offset = i * 8; + let values = vld1q_s16(src.add(offset)); + let low = vmovl_s16(vget_low_s16(values)); + let high = vmovl_s16(vget_high_s16(values)); + let dst_low = vld1q_s32(dst.add(offset)); + let dst_high = vld1q_s32(dst.add(offset + 4)); + vst1q_s32(dst.add(offset), vaddq_s32(dst_low, low)); + vst1q_s32(dst.add(offset + 4), vaddq_s32(dst_high, high)); + } + for i in chunks * 8..len { + *dst.add(i) += i32::from(*src.add(i)); + } +} + +#[inline(always)] +unsafe fn acc_segment_i16_sub(src: *const i16, dst: *mut i32, len: usize) { + let chunks = len / 8; + for i in 0..chunks { + let offset = i * 8; + let values = vld1q_s16(src.add(offset)); + let low = vmovl_s16(vget_low_s16(values)); + let high = vmovl_s16(vget_high_s16(values)); + let dst_low = vld1q_s32(dst.add(offset)); + let dst_high = vld1q_s32(dst.add(offset + 4)); + vst1q_s32(dst.add(offset), vsubq_s32(dst_low, low)); + vst1q_s32(dst.add(offset + 4), vsubq_s32(dst_high, high)); + } + for i in chunks * 8..len { + *dst.add(i) -= i32::from(*src.add(i)); + } +} + /// Add rotated digit plane: acc[i+p] += digits[i] for i in [0, split), /// acc[i-split] -= digits[i] for i in [split, D) (negacyclic wrap). #[inline(always)] diff --git a/crates/akita-prover/src/kernels/linear/capacity.rs b/crates/akita-prover/src/kernels/linear/capacity.rs index b5a6ce0a5..f9a022eab 100644 --- a/crates/akita-prover/src/kernels/linear/capacity.rs +++ b/crates/akita-prover/src/kernels/linear/capacity.rs @@ -1,7 +1,6 @@ use super::*; -use crate::validation::MAX_I8_LOG_BASIS; use akita_algebra::ntt::tables::{Q128_NUM_PRIMES, Q32_NUM_PRIMES, Q64_NUM_PRIMES}; -use akita_types::{select_crt_ntt_params, ProtocolCrtNttParams}; +use akita_types::{select_crt_ntt_params, ProtocolCrtNttParams, MAX_I8_LOG_BASIS}; pub(super) const BALANCED_DIGIT_RHS_MAX_ABS: u64 = 1 << (MAX_I8_LOG_BASIS - 1); pub(super) const I8_RHS_MAX_ABS: u64 = 128; diff --git a/crates/akita-prover/src/kernels/linear/fused_quotients.rs b/crates/akita-prover/src/kernels/linear/fused_quotients.rs index 93b5b86e1..d4be8bc8d 100644 --- a/crates/akita-prover/src/kernels/linear/fused_quotients.rs +++ b/crates/akita-prover/src/kernels/linear/fused_quotients.rs @@ -734,6 +734,194 @@ fn accumulate_centered_quotient_rows_field< .collect() } +#[allow(clippy::too_many_arguments)] +fn centered_quotient_rows_with_i16_tail_params< + F: FieldCore + CanonicalField + HalvingField, + const K: usize, + const D: usize, +>( + neg: &[CyclotomicCrtNtt], + cyc: &[CyclotomicCrtNtt], + tail_neg: &[CyclotomicCrtNtt], + tail_cyc: &[CyclotomicCrtNtt], + num_rows: usize, + z_folded_rings: &[[i32; D]], + z_folded_max_abs: u32, + params: &CrtNttParamSet, + tail_params: &CrtNttParamSet, +) -> Result>, AkitaError> { + if num_rows == 0 { + return Ok(Vec::new()); + } + let width = z_folded_rings.len(); + let required = num_rows + .checked_mul(width) + .ok_or_else(|| AkitaError::InvalidSetup("quotient matrix shape overflows".into()))?; + if width == 0 + || [neg.len(), cyc.len(), tail_neg.len(), tail_cyc.len()] + .into_iter() + .any(|length| length < required) + { + return Err(AkitaError::InvalidSetup( + "base-plus-tail quotient cache is shorter than its matrix shape".into(), + )); + } + let actual_bound = centered_rows_abs_bound(z_folded_rings, width); + if actual_bound == 0 { + return Ok(vec![CyclotomicRing::::zero(); num_rows]); + } + let capacity_bound = u64::from(z_folded_max_abs).max(actual_bound); + let capacity = params + .crt_capacity() + .with_prime_modulus(tail_params.primes[0].p as u128); + let chunk_width = capacity + .max_safe_width::(capacity_bound) + .map(|safe| safe.min(width)) + .filter(|&safe| safe > 0) + .ok_or_else(|| { + AkitaError::InvalidSetup("centered quotient exceeds base plus i16-tail capacity".into()) + })?; + let mixed_params = I16TailParams::new(params.clone(), tail_params.clone()); + let base_lut = (actual_bound <= u64::from(CENTERED_LUT_MAX_ABS)) + .then(|| CenteredMontLut::::new(params, actual_bound as i32)); + let num_chunks = width.div_ceil(chunk_width); + + Ok(cfg_fold_reduce!( + 0..num_chunks, + || vec![CyclotomicRing::::zero(); num_rows], + |mut out: Vec>, chunk_idx| { + let start = chunk_idx * chunk_width; + let end = (start + chunk_width).min(width); + let mut base_neg_accs = vec![CyclotomicCrtNtt::::zero(); num_rows]; + let mut base_cyc_accs = vec![CyclotomicCrtNtt::::zero(); num_rows]; + let mut tail_neg_accs = vec![CyclotomicCrtNtt::::zero(); num_rows]; + let mut tail_cyc_accs = vec![CyclotomicCrtNtt::::zero(); num_rows]; + + for (offset, z_ring) in z_folded_rings[start..end].iter().enumerate() { + if is_zero_centered_row(z_ring) { + continue; + } + let j = start + offset; + let (z_neg, z_cyc) = if let Some(ref lut) = base_lut { + // SAFETY: `actual_bound` bounds every centered coefficient in + // `z_folded_rings`; the LUT is built for that bound, and `j` + // ranges only over the validated `0..width` source rows. + unsafe { + CyclotomicCrtNtt::from_centered_i32_pair_with_lut_unchecked( + z_ring, params, lut, + ) + } + } else { + CyclotomicCrtNtt::from_centered_i32_pair_with_params(z_ring, params) + }; + let (z_tail_neg, z_tail_cyc) = + CyclotomicCrtNtt::from_centered_i32_pair_with_params(z_ring, tail_params); + for row in 0..num_rows { + let index = row * width + j; + accumulate_pointwise_product_into( + &mut base_neg_accs[row], + &neg[index], + &z_neg, + params, + ); + accumulate_pointwise_product_into( + &mut base_cyc_accs[row], + &cyc[index], + &z_cyc, + params, + ); + accumulate_pointwise_product_into( + &mut tail_neg_accs[row], + &tail_neg[index], + &z_tail_neg, + tail_params, + ); + accumulate_pointwise_product_into( + &mut tail_cyc_accs[row], + &tail_cyc[index], + &z_tail_cyc, + tail_params, + ); + } + } + + for row in 0..num_rows { + let neg_ring = ntt_with_i16_tail_to_ring( + &base_neg_accs[row], + &tail_neg_accs[row], + &mixed_params, + ); + let cyc_ring = cyclic_ntt_with_i16_tail_to_ring( + &base_cyc_accs[row], + &tail_cyc_accs[row], + &mixed_params, + ); + out[row] += quotient_from_cyclic_and_negacyclic(&cyc_ring, &neg_ring); + } + out + }, + |mut left: Vec>, right| { + for (dst, src) in left.iter_mut().zip(right) { + *dst += src; + } + left + } + )) +} + +/// Centered A-quotient rows using the protocol CRT prefix plus its 14-bit tail. +pub(crate) fn centered_quotient_rows_with_i16_tail< + F: FieldCore + CanonicalField + HalvingField, + const D: usize, +>( + negacyclic_slot: &PreparedNttCache, + cyclic_slot: &PreparedNttCache, + tail_slot: &PreparedNttCache, + num_rows: usize, + z_folded_rings: &[[i32; D]], + z_folded_max_abs: u32, +) -> Result>, AkitaError> { + let tail = tail_slot.i16_tail_pair().ok_or_else(|| { + AkitaError::InvalidSetup("paired i16-tail NTT domain not prepared".into()) + })?; + macro_rules! dispatch { + ($neg_base:expr, $cyc_base:expr) => {{ + let (neg_base, cyc_base) = ($neg_base, $cyc_base); + if neg_base.params() != cyc_base.params() { + return Err(AkitaError::InvalidSetup( + "cyclic and negacyclic NTT profiles do not match".into(), + )); + } + centered_quotient_rows_with_i16_tail_params( + neg_base.negacyclic().ok_or_else(|| { + AkitaError::InvalidSetup("negacyclic NTT domain not prepared".into()) + })?, + cyc_base.cyclic().ok_or_else(|| { + AkitaError::InvalidSetup("cyclic NTT domain not prepared".into()) + })?, + tail.negacyclic(), + tail.cyclic(), + num_rows, + z_folded_rings, + z_folded_max_abs, + neg_base.params(), + tail.params(), + ) + }}; + } + if let (Some(neg), Some(cyc)) = (negacyclic_slot.q32_base(), cyclic_slot.q32_base()) { + dispatch!(neg, cyc) + } else if let (Some(neg), Some(cyc)) = (negacyclic_slot.q64_base(), cyclic_slot.q64_base()) { + dispatch!(neg, cyc) + } else if let (Some(neg), Some(cyc)) = (negacyclic_slot.q128_base(), cyclic_slot.q128_base()) { + dispatch!(neg, cyc) + } else { + Err(AkitaError::InvalidSetup( + "cyclic and negacyclic NTT profiles do not match".into(), + )) + } +} + /// Fused split-eq quotient kernel dispatching over [`PreparedNttCache`] variants. /// /// Computes three NTT-cached mat-vec products in a single tiled pass: diff --git a/crates/akita-prover/src/kernels/linear/mod.rs b/crates/akita-prover/src/kernels/linear/mod.rs index e0c197832..08cc5166d 100644 --- a/crates/akita-prover/src/kernels/linear/mod.rs +++ b/crates/akita-prover/src/kernels/linear/mod.rs @@ -4,7 +4,8 @@ use akita_algebra::ntt::MontCoeff; use akita_algebra::ntt::PrimeWidth; use akita_algebra::ring::cyclotomic::BalancedDecomposePow2Params; use akita_algebra::{ - CenteredMontLut, CrtNttParamSet, CyclotomicCrtNtt, CyclotomicRing, DigitMontLut, + cyclic_ntt_with_i16_tail_to_ring, ntt_with_i16_tail_to_ring, CenteredMontLut, CrtNttParamSet, + CyclotomicCrtNtt, CyclotomicRing, DigitMontLut, I16TailParams, }; use akita_field::parallel::*; use akita_field::{AkitaError, CanonicalField, FieldCore, HalvingField}; @@ -44,6 +45,7 @@ pub use decompose::{ decompose_commit_rows_i8_into, decompose_rows_i8, decompose_rows_i8_into, try_centered_i8, }; use digits::*; +pub(crate) use fused_quotients::centered_quotient_rows_with_i16_tail; #[cfg(test)] pub(crate) use fused_quotients::fused_split_eq_quotients; pub(crate) use fused_quotients::{ diff --git a/crates/akita-prover/src/kernels/linear/tests/fused.rs b/crates/akita-prover/src/kernels/linear/tests/fused.rs index 888664c8c..83b82b551 100644 --- a/crates/akita-prover/src/kernels/linear/tests/fused.rs +++ b/crates/akita-prover/src/kernels/linear/tests/fused.rs @@ -91,6 +91,12 @@ fn fused_split_eq_q128_quotient_falls_back_when_one_term_exceeds_crt() { .expect("valid ring matrix view"), ) .expect("Q128 dispatch should support this field and ring dimension"); + let tail = prepare_ntt_cache( + flat.ring_view::(1, cols) + .expect("valid tail matrix view"), + NttCacheMode::I16TailBothTransforms, + ) + .expect("Q128 quotient tail"); let z_pre = vec![[32_768i32; D]; cols]; let (_d_rows, _b_rows, a_rows) = @@ -101,6 +107,10 @@ fn fused_split_eq_q128_quotient_falls_back_when_one_term_exceeds_crt() { let expected = quotient_from_cyclic_and_negacyclic(&cyclic_product(&row, &z), &(row * z)); assert_eq!(a_rows, vec![expected]); + let tail_rows = + centered_quotient_rows_with_i16_tail::(&slot, &slot, &tail, 1, &z_pre, 32_768) + .expect("base-plus-tail quotient"); + assert_eq!(tail_rows, vec![expected]); } #[test] diff --git a/crates/akita-prover/src/kernels/linear/tests/mod.rs b/crates/akita-prover/src/kernels/linear/tests/mod.rs index 1a44b99b3..034bb5d7d 100644 --- a/crates/akita-prover/src/kernels/linear/tests/mod.rs +++ b/crates/akita-prover/src/kernels/linear/tests/mod.rs @@ -1,10 +1,11 @@ use super::{ - aligned_i8_tile_width, balanced_digit_abs_bound, base_tile_width, decompose_block_i8, - fused_split_eq_quotients, mat_vec_mul_crt_ntt, mat_vec_mul_crt_ntt_many, - mat_vec_mul_digits_i8_block_parallel, mat_vec_mul_digits_i8_with_params, - mat_vec_mul_i8_dense_single_row_with_params, mat_vec_mul_i8_dense_with_params, - mat_vec_mul_i8_with_params, mat_vec_mul_ntt_digits_i8, mat_vec_mul_ntt_i8_dense_single_row, - mat_vec_mul_ntt_single_i8_cyclic, mat_vec_mul_unchecked, precompute_dense_mat_ntt_with_params, + aligned_i8_tile_width, balanced_digit_abs_bound, base_tile_width, + centered_quotient_rows_with_i16_tail, decompose_block_i8, fused_split_eq_quotients, + mat_vec_mul_crt_ntt, mat_vec_mul_crt_ntt_many, mat_vec_mul_digits_i8_block_parallel, + mat_vec_mul_digits_i8_with_params, mat_vec_mul_i8_dense_single_row_with_params, + mat_vec_mul_i8_dense_with_params, mat_vec_mul_i8_with_params, mat_vec_mul_ntt_digits_i8, + mat_vec_mul_ntt_i8_dense_single_row, mat_vec_mul_ntt_single_i8_cyclic, mat_vec_mul_unchecked, + precompute_dense_mat_ntt_with_params, }; use akita_algebra::ntt::{ tables::{Q128_NUM_PRIMES, Q32_NUM_PRIMES, Q64_NUM_PRIMES}, diff --git a/crates/akita-prover/src/protocol/core/tests.rs b/crates/akita-prover/src/protocol/core/tests.rs index c6f5b8c0c..649d2f7a6 100644 --- a/crates/akita-prover/src/protocol/core/tests.rs +++ b/crates/akita-prover/src/protocol/core/tests.rs @@ -1,13 +1,9 @@ use super::*; use crate::RecursiveWitnessFlat; -use akita_config::{ - proof_optimized::fp128::OneHot, CommitmentConfig, PrecommittedCommitmentConfig, -}; +use akita_config::{proof_optimized::fp128::OneHot, CommitmentConfig}; use akita_field::{Fp32, FpExt2, TwoNr}; use akita_transcript::AkitaTranscript; -use akita_types::{ - AkitaScheduleLookupKey, CommittedGroupProfile, OpeningClaimsLayout, PolynomialGroupLayout, -}; +use akita_types::{AkitaScheduleLookupKey, OpeningClaimsLayout, PolynomialGroupLayout}; type F = Fp32<251>; type E = FpExt2; @@ -108,12 +104,9 @@ fn proof_schedule_from_layout_includes_entire_batch() { ]) .expect("multi-group shape"); assert_eq!(batch.num_groups(), 3); - let pre_layout = OpeningClaimsLayout::new(16, 1).expect("precommit layout"); - let pre_params = - PrecommittedCommitmentConfig::::get_params_for_batched_commitment(&pre_layout) - .expect("precommit params"); let precommitted = - CommittedGroupProfile::from_params(PolynomialGroupLayout::new(16, 1), &pre_params); + akita_config::committed_group_profile::(&PolynomialGroupLayout::new(16, 1)) + .expect("precommit profile"); let schedule = OneHot::runtime_schedule(AkitaScheduleLookupKey { final_group: PolynomialGroupLayout::new(32, 2), precommitteds: vec![precommitted, precommitted], diff --git a/crates/akita-prover/src/validation.rs b/crates/akita-prover/src/validation.rs index 3646acb1e..5479884f0 100644 --- a/crates/akita-prover/src/validation.rs +++ b/crates/akita-prover/src/validation.rs @@ -1,10 +1,9 @@ use akita_field::AkitaError; - -pub(crate) const MAX_I8_LOG_BASIS: u32 = 8; +use akita_types::{SignedDigitKernel, MAX_I16_LOG_BASIS, MAX_I8_LOG_BASIS}; #[inline] pub(crate) fn is_i8_log_basis(log_basis: u32) -> bool { - (1..=MAX_I8_LOG_BASIS).contains(&log_basis) + SignedDigitKernel::for_log_basis(log_basis) == Some(SignedDigitKernel::I8) } #[inline] @@ -13,18 +12,30 @@ pub(crate) fn validate_i8_setup_log_basis(log_basis: u32, context: &str) -> Resu Ok(()) } else { Err(AkitaError::InvalidSetup(format!( - "log_basis must be in 1..=8 {context}" + "log_basis must be in 1..={MAX_I8_LOG_BASIS} {context}" ))) } } +#[inline] +pub(crate) fn signed_digit_kernel_for_setup( + log_basis: u32, + context: &str, +) -> Result { + SignedDigitKernel::for_log_basis(log_basis).ok_or_else(|| { + AkitaError::InvalidSetup(format!( + "log_basis must be in 1..={MAX_I16_LOG_BASIS} {context}" + )) + }) +} + #[inline] pub(crate) fn validate_i8_input_log_basis(log_basis: u32, context: &str) -> Result<(), AkitaError> { if is_i8_log_basis(log_basis) { Ok(()) } else { Err(AkitaError::InvalidInput(format!( - "log_basis must be in 1..=8 {context}" + "log_basis must be in 1..={MAX_I8_LOG_BASIS} {context}" ))) } } diff --git a/crates/akita-schedules/Cargo.toml b/crates/akita-schedules/Cargo.toml index ac6527ef4..52c0f4300 100644 --- a/crates/akita-schedules/Cargo.toml +++ b/crates/akita-schedules/Cargo.toml @@ -30,6 +30,7 @@ schedules-default = [ "fp128-onehot", "fp128-dense", "fp32-d128-onehot", + "fp32-d128-dense", "fp32-d256-onehot", "fp64-d128-dense", "fp64-d128-onehot", @@ -45,6 +46,7 @@ fp128-onehot-multi-chunk-w4r2 = [] fp128-dense-multi-chunk = [] fp32-d128-onehot = [] +fp32-d128-dense = [] fp32-d256-onehot = [] fp64-d128-dense = [] fp64-d128-onehot = [] diff --git a/crates/akita-schedules/src/catalog_identity.rs b/crates/akita-schedules/src/catalog_identity.rs index 8a42b72af..1d38d504d 100644 --- a/crates/akita-schedules/src/catalog_identity.rs +++ b/crates/akita-schedules/src/catalog_identity.rs @@ -53,13 +53,16 @@ pub fn policy_digest(policy: &PlannerPolicy) -> [u8; 32] { h.write_u64(u64::from(policy.ring_subfield_norm_bound)); h.write_u64(policy.claim_ext_degree as u64); h.write_u64(policy.chal_ext_degree as u64); - h.write_u64(u64::from(policy.basis_range.0)); - h.write_u64(u64::from(policy.basis_range.1)); + h.write_u64(u64::from(policy.inner_basis_range.0)); + h.write_u64(u64::from(policy.inner_basis_range.1)); + h.write_u64(u64::from(policy.opening_basis_range.0)); + h.write_u64(u64::from(policy.opening_basis_range.1)); h.write_u64(policy.witness_chunk.num_chunks as u64); h.write_u64(policy.witness_chunk.num_activated_levels as u64); h.write_u64(u64::from(policy.recursive_setup_planning)); h.write_u64(u64::from(policy.cost_model.tag())); h.write_u64(u64::from(policy.selection_policy.tag())); + h.write_u64(u64::from(policy.recursive_split_search_policy.tag())); write_optional_usize(&mut h, policy.setup_field_budget); h.write_u64(policy.min_offloaded_witness_contraction as u64); let digest = h.finish(); @@ -82,13 +85,16 @@ pub fn identity_digest(identity: &GeneratedScheduleCatalogIdentity) -> [u8; 32] h.write_u64(u64::from(identity.ring_subfield_norm_bound)); h.write_u64(identity.claim_ext_degree as u64); h.write_u64(identity.chal_ext_degree as u64); - h.write_u64(u64::from(identity.basis_range.0)); - h.write_u64(u64::from(identity.basis_range.1)); + h.write_u64(u64::from(identity.inner_basis_range.0)); + h.write_u64(u64::from(identity.inner_basis_range.1)); + h.write_u64(u64::from(identity.opening_basis_range.0)); + h.write_u64(u64::from(identity.opening_basis_range.1)); h.write_u64(identity.witness_chunk.num_chunks as u64); h.write_u64(identity.witness_chunk.num_activated_levels as u64); h.write_u64(u64::from(identity.recursive_setup_planning)); h.write_u64(u64::from(identity.cost_model.tag())); h.write_u64(u64::from(identity.selection_policy.tag())); + h.write_u64(u64::from(identity.recursive_split_search_policy.tag())); write_optional_usize(&mut h, identity.setup_field_budget); h.write_u64(identity.min_offloaded_witness_contraction as u64); @@ -125,6 +131,7 @@ struct CatalogIdentityExpectation { protocol_epoch: u32, cost_model: crate::PlannerCostModelId, selection_policy: crate::SelectionPolicyId, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy, setup_field_budget: Option, min_offloaded_witness_contraction: usize, sis_modulus_profile: akita_types::SisModulusProfileId, @@ -136,7 +143,8 @@ struct CatalogIdentityExpectation { ring_subfield_norm_bound: u32, claim_ext_degree: usize, chal_ext_degree: usize, - basis_range: (u32, u32), + inner_basis_range: (u32, u32), + opening_basis_range: (u32, u32), witness_chunk: akita_types::ChunkedWitnessCfg, recursive_setup_planning: bool, @@ -155,6 +163,7 @@ impl CatalogIdentityExpectation { protocol_epoch: identity.protocol_epoch, cost_model: identity.cost_model, selection_policy: identity.selection_policy, + recursive_split_search_policy: identity.recursive_split_search_policy, setup_field_budget: identity.setup_field_budget, min_offloaded_witness_contraction: identity.min_offloaded_witness_contraction, sis_modulus_profile: identity.sis_modulus_profile, @@ -166,7 +175,8 @@ impl CatalogIdentityExpectation { ring_subfield_norm_bound: identity.ring_subfield_norm_bound, claim_ext_degree: identity.claim_ext_degree, chal_ext_degree: identity.chal_ext_degree, - basis_range: identity.basis_range, + inner_basis_range: identity.inner_basis_range, + opening_basis_range: identity.opening_basis_range, witness_chunk: identity.witness_chunk, recursive_setup_planning: identity.recursive_setup_planning, @@ -199,6 +209,7 @@ fn catalog_identity_expectation( protocol_epoch: AKITA_INSTANCE_DESCRIPTOR_VERSION, cost_model: policy.cost_model, selection_policy: policy.selection_policy, + recursive_split_search_policy: policy.recursive_split_search_policy, setup_field_budget: policy.setup_field_budget, min_offloaded_witness_contraction: policy.min_offloaded_witness_contraction, sis_modulus_profile: policy.sis_modulus_profile, @@ -210,7 +221,8 @@ fn catalog_identity_expectation( ring_subfield_norm_bound: policy.ring_subfield_norm_bound, claim_ext_degree: policy.claim_ext_degree, chal_ext_degree: policy.chal_ext_degree, - basis_range: policy.basis_range, + inner_basis_range: policy.inner_basis_range, + opening_basis_range: policy.opening_basis_range, witness_chunk: policy.witness_chunk, recursive_setup_planning: policy.recursive_setup_planning, @@ -237,6 +249,7 @@ pub fn expected_catalog_identity( protocol_epoch: expected.protocol_epoch, cost_model: expected.cost_model, selection_policy: expected.selection_policy, + recursive_split_search_policy: expected.recursive_split_search_policy, setup_field_budget: expected.setup_field_budget, min_offloaded_witness_contraction: expected.min_offloaded_witness_contraction, sis_modulus_profile: expected.sis_modulus_profile, @@ -248,7 +261,8 @@ pub fn expected_catalog_identity( ring_subfield_norm_bound: expected.ring_subfield_norm_bound, claim_ext_degree: expected.claim_ext_degree, chal_ext_degree: expected.chal_ext_degree, - basis_range: expected.basis_range, + inner_basis_range: expected.inner_basis_range, + opening_basis_range: expected.opening_basis_range, witness_chunk: expected.witness_chunk, recursive_setup_planning: expected.recursive_setup_planning, diff --git a/crates/akita-schedules/src/generated/expand.rs b/crates/akita-schedules/src/generated/expand.rs index fee295761..ea1373cbe 100644 --- a/crates/akita-schedules/src/generated/expand.rs +++ b/crates/akita-schedules/src/generated/expand.rs @@ -969,6 +969,7 @@ mod tests { PlannerPolicy { cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinFirstDirectSetupThenPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::Exhaustive, setup_field_budget: None, min_offloaded_witness_contraction: 3, uniform_ring_dimension: 64, @@ -987,7 +988,8 @@ mod tests { ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 16), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg::default(), recursive_setup_planning: true, } diff --git a/crates/akita-schedules/src/generated/fp128_dense.rs b/crates/akita-schedules/src/generated/fp128_dense.rs index 524805ddd..04c23f874 100644 --- a/crates/akita-schedules/src/generated/fp128_dense.rs +++ b/crates/akita-schedules/src/generated/fp128_dense.rs @@ -15,32 +15,32 @@ use super::{ pub(crate) static FP128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 43, num_digits_fold: 3, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 64, positions_per_block: 8, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 22, num_digits_fold: 4, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 64, positions_per_block: 8, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1916, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6351, positions_per_block: 512, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3236, positions_per_block: 256, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2096, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 1), num_digits_inner: 43, num_digits_fold: 3, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 1), num_digits_inner: 26, num_digits_fold: 4, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3636, positions_per_block: 256, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7576, positions_per_block: 512, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4084, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6472, positions_per_block: 512, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7123, positions_per_block: 512, live_blocks: 14 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3366, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -53,61 +53,58 @@ pub(crate) static FP128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22799, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5700, positions_per_block: 512, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 11055, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4000, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(17, 4), num_digits_inner: 43, num_digits_fold: 4, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 64, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(17, 4), num_digits_inner: 19, num_digits_fold: 5, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 7 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 44815, positions_per_block: 1024, live_blocks: 44 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16145, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 41787, positions_per_block: 2048, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10776, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(24, 1), num_digits_inner: 43, num_digits_fold: 4, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 256, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(24, 1), num_digits_inner: 13, num_digits_fold: 6, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 512, live_blocks: 128 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 10 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 77295, positions_per_block: 1024, live_blocks: 76 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 56555, positions_per_block: 2048, live_blocks: 28 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16113, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 226747, positions_per_block: 4096, live_blocks: 56 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 31529, positions_per_block: 1024, live_blocks: 31 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9624, positions_per_block: 1024, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3881, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(28, 1), num_digits_inner: 43, num_digits_fold: 5, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1048576, positions_per_block: 1024, live_blocks: 1024 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(26, 1), num_digits_inner: 15, num_digits_fold: 6, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 262144, positions_per_block: 1024, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 9 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 352495, positions_per_block: 4096, live_blocks: 87 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 111383, positions_per_block: 2048, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23079, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 501691, positions_per_block: 4096, live_blocks: 123 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 48815, positions_per_block: 2048, live_blocks: 24 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7738, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], @@ -115,36 +112,53 @@ pub(crate) static FP128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(30, 1), num_digits_inner: 43, num_digits_fold: 5, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4194304, positions_per_block: 2048, live_blocks: 2048 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(28, 1), num_digits_inner: 15, num_digits_fold: 6, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1048576, positions_per_block: 2048, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 9 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2819174, positions_per_block: 16384, live_blocks: 173 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 110867, positions_per_block: 2048, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23079, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1002427, positions_per_block: 8192, live_blocks: 123 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65199, positions_per_block: 4096, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10794, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 1), num_digits_inner: 43, num_digits_fold: 5, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16777216, positions_per_block: 4096, live_blocks: 4096 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(30, 1), num_digits_inner: 16, num_digits_fold: 6, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4194304, positions_per_block: 4096, live_blocks: 1024 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], - open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, + open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1409349, positions_per_block: 8192, live_blocks: 173 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 221295, positions_per_block: 4096, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23448, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2102203, positions_per_block: 8192, live_blocks: 257 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 99771, positions_per_block: 2048, live_blocks: 49 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 21531, positions_per_block: 1024, live_blocks: 22 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10469, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4000, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + ], + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + }, + GeneratedFoldScheduleEntry { + root: GeneratedRootFold { + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 1), num_digits_inner: 16, num_digits_fold: 6, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16777216, positions_per_block: 8192, live_blocks: 2048 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + precommitted_groups: &[], + open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, + witness_partition: GeneratedWitnessPartition::Single, + }, + recursive_folds: &[ + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4203622, positions_per_block: 16384, live_blocks: 257 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 132539, positions_per_block: 4096, live_blocks: 33 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 25595, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 11243, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4000, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -161,9 +175,9 @@ pub(crate) static FP128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 450889150, positions_per_block: 131072, live_blocks: 3441 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 5, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1840018, positions_per_block: 8192, live_blocks: 225 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 91515, positions_per_block: 2048, live_blocks: 45 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 20499, positions_per_block: 1024, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7704, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 20499, positions_per_block: 1024, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10211, positions_per_block: 1024, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3870, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -177,12 +191,12 @@ pub(crate) static FP128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 901775728, positions_per_block: 131072, live_blocks: 6881 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_fold: 5, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6173334, positions_per_block: 32768, live_blocks: 189 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 180531, positions_per_block: 4096, live_blocks: 45 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 21528, positions_per_block: 1024, live_blocks: 22 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7896, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3607102910, positions_per_block: 524288, live_blocks: 6881 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 5, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4989458, positions_per_block: 16384, live_blocks: 305 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 144923, positions_per_block: 4096, live_blocks: 36 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 26369, positions_per_block: 1024, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5950, positions_per_block: 512, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3956, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -203,23 +217,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 128, log_open_bound: None }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, - key_count: 10, - key_digest: 16961820471072486774, + key_count: 11, + key_digest: 9657021053378036395, }; diff --git a/crates/akita-schedules/src/generated/fp128_dense_multi_chunk.rs b/crates/akita-schedules/src/generated/fp128_dense_multi_chunk.rs index 1e60ff279..77d1e06f6 100644 --- a/crates/akita-schedules/src/generated/fp128_dense_multi_chunk.rs +++ b/crates/akita-schedules/src/generated/fp128_dense_multi_chunk.rs @@ -15,18 +15,18 @@ use super::{ pub(crate) static FP128_DENSE_MULTI_CHUNK_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 1), num_digits_inner: 43, num_digits_fold: 4, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 16, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 1), num_digits_inner: 26, num_digits_fold: 4, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 8, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 39225, positions_per_block: 512, live_blocks: 77 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 24848, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8179, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9604, positions_per_block: 256, live_blocks: 38 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 24888, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5861, positions_per_block: 1024, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3353, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -39,30 +39,32 @@ pub(crate) static CATALOG_POTENTIAL_B_DIMENSIONS: &[usize] = &[64, 128]; #[rustfmt::skip] pub(crate) static CATALOG_POTENTIAL_D_DIMENSIONS: &[usize] = &[64, 128]; #[rustfmt::skip] -pub(crate) static CATALOG_RING_DIMENSIONS: &[usize] = &[64]; +pub(crate) static CATALOG_RING_DIMENSIONS: &[usize] = &[64, 256]; #[rustfmt::skip] pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = GeneratedScheduleCatalogIdentity { family_name: "fp128_dense_multi_chunk", protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 128, log_open_bound: None }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 8, num_activated_levels: 2 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 1, - key_digest: 1190293855520516942, + key_digest: 2223761945083775517, }; diff --git a/crates/akita-schedules/src/generated/fp128_dense_multi_chunk_precommitted.rs b/crates/akita-schedules/src/generated/fp128_dense_multi_chunk_precommitted.rs index 43f5994a7..430e02142 100644 --- a/crates/akita-schedules/src/generated/fp128_dense_multi_chunk_precommitted.rs +++ b/crates/akita-schedules/src/generated/fp128_dense_multi_chunk_precommitted.rs @@ -6,10 +6,10 @@ use super::{ #[rustfmt::skip] pub(crate) static FP128_DENSE_MULTI_CHUNK_SCHEDULES_PRECOMMITTED_PROFILES: &[GeneratedPrecommittedProfile] = &[ - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 8, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 8, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 8, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 8, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 8, live_blocks: 128 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 16, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 11 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 12, inner_output_rank: 6, inner_coeff_linf_bound: 67108863, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 10 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 13, inner_output_rank: 6, inner_coeff_linf_bound: 67108863, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 16, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 10 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 13, inner_output_rank: 6, inner_coeff_linf_bound: 67108863, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 16, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 7 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 19, inner_output_rank: 5, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 16, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 7 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 19, inner_output_rank: 5, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 32, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 10 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 13, inner_output_rank: 7, inner_coeff_linf_bound: 67108863, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, ]; diff --git a/crates/akita-schedules/src/generated/fp128_dense_precommitted.rs b/crates/akita-schedules/src/generated/fp128_dense_precommitted.rs index 1d8c4999c..795709fab 100644 --- a/crates/akita-schedules/src/generated/fp128_dense_precommitted.rs +++ b/crates/akita-schedules/src/generated/fp128_dense_precommitted.rs @@ -6,10 +6,10 @@ use super::{ #[rustfmt::skip] pub(crate) static FP128_DENSE_SCHEDULES_PRECOMMITTED_PROFILES: &[GeneratedPrecommittedProfile] = &[ - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 32, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 64, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 43, inner_output_rank: 5, inner_coeff_linf_bound: 1048575, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 16, inner_output_rank: 5, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 16, inner_output_rank: 5, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 16, inner_output_rank: 5, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 16, inner_output_rank: 6, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 64, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 16, inner_output_rank: 6, inner_coeff_linf_bound: 8388607, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 11 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_inner: 12, inner_output_rank: 7, inner_coeff_linf_bound: 67108863, num_digits_outer: 43, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, ]; diff --git a/crates/akita-schedules/src/generated/fp128_onehot.rs b/crates/akita-schedules/src/generated/fp128_onehot.rs index 261e910ca..dcccf1eef 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot.rs @@ -22,7 +22,7 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1909, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1909, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1883, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -35,7 +35,7 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2287, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2287, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1993, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -48,7 +48,7 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1985, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1985, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1883, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -61,8 +61,8 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2499, positions_per_block: 512, live_blocks: 5 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2197, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2499, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2103, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -75,25 +75,25 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1983, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1983, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1883, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 1), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 32, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(15, 2), num_live_ring_elements_per_claim: 512, num_positions_per_block: 32, num_live_blocks: 16, log_basis_inner: 3, num_digits_inner: 43, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 5, 1376, 1048575, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 6880, 7, 64) }, num_digits_fold: 4, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(15, 2), num_live_ring_elements_per_claim: 512, num_positions_per_block: 64, num_live_blocks: 8, log_basis_inner: 8, num_digits_inner: 16, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 6, 1024, 8388607, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 4128, 7, 64) }, num_digits_fold: 5, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 21407, positions_per_block: 1024, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7704, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 13258, positions_per_block: 1024, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8147, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3610, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -101,31 +101,29 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedFoldScheduleEntry { root: GeneratedRootFold { final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(16, 2), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 256, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2499, positions_per_block: 512, live_blocks: 5 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2197, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1377, positions_per_block: 256, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2508, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1766, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(18, 1), num_digits_inner: 1, num_digits_fold: 1, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 512, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(18, 1), num_digits_inner: 1, num_digits_fold: 2, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3519, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2461, positions_per_block: 512, live_blocks: 5 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2197, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2104, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2976, positions_per_block: 256, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { @@ -136,9 +134,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1908, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1908, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6607, positions_per_block: 512, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3236, positions_per_block: 256, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2096, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -147,14 +146,14 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 1), num_digits_inner: 1, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16384, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 2), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 2), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6746, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6746, positions_per_block: 512, live_blocks: 14 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3366, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -168,7 +167,7 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5192, positions_per_block: 512, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5192, positions_per_block: 512, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], @@ -179,15 +178,15 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 2), num_digits_inner: 1, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16384, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 11597, positions_per_block: 1024, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5976, positions_per_block: 512, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3956, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 11597, positions_per_block: 1024, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7889, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3610, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -201,9 +200,9 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3620, positions_per_block: 256, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7576, positions_per_block: 512, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4084, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3620, positions_per_block: 256, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9015, positions_per_block: 1024, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3740, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -213,52 +212,36 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 4), num_digits_inner: 1, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16384, positions_per_block: 2048, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15660, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15660, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8921, positions_per_block: 1024, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3740, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 4), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16384, positions_per_block: 4096, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 4), num_digits_inner: 1, num_digits_fold: 3, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16384, positions_per_block: 2048, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 128, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 258, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 14528, positions_per_block: 1024, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6552, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, - }, - GeneratedFoldScheduleEntry { - root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(25, 1), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 131072, positions_per_block: 2048, live_blocks: 64 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - precommitted_groups: &[], - open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, - witness_partition: GeneratedWitnessPartition::Single, - }, - recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9796, positions_per_block: 512, live_blocks: 20 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8173, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16651, positions_per_block: 1024, live_blocks: 17 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9179, positions_per_block: 1024, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3740, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -273,9 +256,9 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 110351, positions_per_block: 2048, live_blocks: 54 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22821, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22821, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10727, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4000, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -289,12 +272,11 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 71364, positions_per_block: 512, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 57135, positions_per_block: 2048, live_blocks: 28 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16113, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 285455, positions_per_block: 2048, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 45009, positions_per_block: 2048, live_blocks: 22 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10968, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -308,11 +290,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 570127, positions_per_block: 4096, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 53201, positions_per_block: 2048, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15597, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 53201, positions_per_block: 2048, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7998, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -326,11 +307,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 570127, positions_per_block: 4096, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 53201, positions_per_block: 2048, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15597, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 53201, positions_per_block: 2048, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7998, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -339,19 +319,18 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 2), num_digits_inner: 1, num_digits_fold: 4, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 67108864, positions_per_block: 65536, live_blocks: 1024 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 794407, positions_per_block: 8192, live_blocks: 97 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 58491, positions_per_block: 2048, live_blocks: 29 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16371, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 58491, positions_per_block: 2048, live_blocks: 29 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8388, positions_per_block: 1024, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3749, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -364,29 +343,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 284868, positions_per_block: 2048, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 105963, positions_per_block: 2048, live_blocks: 52 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22305, positions_per_block: 1024, live_blocks: 22 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7896, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, - }, - GeneratedFoldScheduleEntry { - root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(36, 1), num_digits_inner: 1, num_digits_fold: 3, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 268435456, positions_per_block: 65536, live_blocks: 4096 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, - precommitted_groups: &[], - open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, - witness_partition: GeneratedWitnessPartition::Single, - }, - recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2196582, positions_per_block: 8192, live_blocks: 269 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 102867, positions_per_block: 2048, live_blocks: 51 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22047, positions_per_block: 1024, live_blocks: 22 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7896, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1139471, positions_per_block: 8192, live_blocks: 140 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 69585, positions_per_block: 4096, live_blocks: 17 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10924, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -401,10 +361,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5259913, positions_per_block: 16384, live_blocks: 322 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 242623, positions_per_block: 4096, live_blocks: 60 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 24408, positions_per_block: 1024, live_blocks: 24 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8014, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 242623, positions_per_block: 4096, live_blocks: 60 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 32561, positions_per_block: 2048, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9816, positions_per_block: 1024, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3881, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -420,11 +380,10 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 12616005, positions_per_block: 16384, live_blocks: 771 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 660935, positions_per_block: 8192, live_blocks: 81 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 54363, positions_per_block: 2048, live_blocks: 27 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15855, positions_per_block: 1024, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6744, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 54363, positions_per_block: 2048, live_blocks: 27 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8128, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -440,9 +399,9 @@ pub(crate) static FP128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 403703058, positions_per_block: 131072, live_blocks: 3081 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 5, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1716178, positions_per_block: 8192, live_blocks: 210 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 87645, positions_per_block: 2048, live_blocks: 43 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 19983, positions_per_block: 1024, live_blocks: 20 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7512, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 19983, positions_per_block: 1024, live_blocks: 20 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9953, positions_per_block: 1024, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3870, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -463,23 +422,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, - key_count: 26, - key_digest: 17058955708590941206, + key_count: 24, + key_digest: 15280049423087497798, }; diff --git a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk.rs b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk.rs index c47427fda..903bf1483 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk.rs @@ -24,31 +24,30 @@ pub(crate) static FP128_ONEHOT_MULTI_CHUNK_SCHEDULES: &[GeneratedFoldScheduleEnt recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 568516, positions_per_block: 2048, live_blocks: 278 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 406547, positions_per_block: 4096, live_blocks: 100 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 42881, positions_per_block: 2048, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 14307, positions_per_block: 1024, live_blocks: 14 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6360, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 42881, positions_per_block: 2048, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10776, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 2), num_digits_inner: 1, num_digits_fold: 3, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 67108864, positions_per_block: 32768, live_blocks: 2048 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 67108864, positions_per_block: 65536, live_blocks: 1024 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1672705, positions_per_block: 4096, live_blocks: 409 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 223320, positions_per_block: 4096, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23448, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2106753, positions_per_block: 4096, live_blocks: 515 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 5, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 319595, positions_per_block: 4096, live_blocks: 79 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 37463, positions_per_block: 2048, live_blocks: 19 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10392, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -69,23 +68,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 8, num_activated_levels: 2 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 2, - key_digest: 3783944043367586616, + key_digest: 1676970876077006139, }; diff --git a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w2r2.rs b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w2r2.rs index 3e150f1ef..20c4bfa84 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w2r2.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w2r2.rs @@ -16,15 +16,15 @@ pub(crate) static FP128_ONEHOT_MULTI_CHUNK_W2R2_SCHEDULES: &[GeneratedFoldSchedu GeneratedFoldScheduleEntry { root: GeneratedRootFold { final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 64, positions_per_block: 8, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 8, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3663, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3309, positions_per_block: 256, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3236, positions_per_block: 256, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2096, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -33,17 +33,16 @@ pub(crate) static FP128_ONEHOT_MULTI_CHUNK_W2R2_SCHEDULES: &[GeneratedFoldSchedu final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 1, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 16, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 172, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(14, 1), num_live_ring_elements_per_claim: 256, num_positions_per_block: 128, num_live_blocks: 2, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 172, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 128, live_blocks: 2 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3558, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3558, positions_per_block: 256, live_blocks: 14 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3055, positions_per_block: 512, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1992, positions_per_block: 256, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { @@ -54,11 +53,11 @@ pub(crate) static FP128_ONEHOT_MULTI_CHUNK_W2R2_SCHEDULES: &[GeneratedFoldSchedu witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 963343, positions_per_block: 4096, live_blocks: 236 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 94353, positions_per_block: 2048, live_blocks: 47 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 21015, positions_per_block: 1024, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7704, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 240836, positions_per_block: 2048, live_blocks: 118 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 2 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 127379, positions_per_block: 2048, live_blocks: 63 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 25143, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 11243, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4000, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -79,23 +78,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 2, num_activated_levels: 2 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 3, - key_digest: 690501068951054480, + key_digest: 8436405153048279452, }; diff --git a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w4r2.rs b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w4r2.rs index afcdcbd4b..22c9feb7b 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w4r2.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot_multi_chunk_w4r2.rs @@ -22,11 +22,11 @@ pub(crate) static FP128_ONEHOT_MULTI_CHUNK_W4R2_SCHEDULES: &[GeneratedFoldSchedu witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 4 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 306372, positions_per_block: 1024, live_blocks: 300 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 4 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 221291, positions_per_block: 4096, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23448, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3617, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1225487, positions_per_block: 4096, live_blocks: 300 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 4 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 143633, positions_per_block: 4096, live_blocks: 36 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 26369, positions_per_block: 1024, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 5950, positions_per_block: 512, live_blocks: 12 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3956, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -47,23 +47,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 4, num_activated_levels: 2 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 1, - key_digest: 8522104887241228783, + key_digest: 13570015983847967009, }; diff --git a/crates/akita-schedules/src/generated/fp128_onehot_recursive.rs b/crates/akita-schedules/src/generated/fp128_onehot_recursive.rs index 422a8af60..77dc9ca56 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot_recursive.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot_recursive.rs @@ -18,20 +18,19 @@ pub(crate) static FP128_ONEHOT_RECURSIVE_SCHEDULES: &[GeneratedFoldScheduleEntry final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 2), num_digits_inner: 1, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16777216, positions_per_block: 32768, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 256, num_live_blocks: 4, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 3, 256, 16383, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 516, 7, 64) }, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 187360, positions_per_block: 2048, live_blocks: 92 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 11294208, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 256, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 257892, positions_per_block: 4096, live_blocks: 63 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 4194304, num_digits_fold: 4, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 256, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 115524, positions_per_block: 2048, live_blocks: 57 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 17688, positions_per_block: 1024, live_blocks: 18 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7128, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 187360, positions_per_block: 2048, live_blocks: 92 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 11294208, num_digits_fold: 4, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 256, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 225124, positions_per_block: 4096, live_blocks: 55 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 23448, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8088, positions_per_block: 1024, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3610, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -51,23 +50,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinFirstDirectSetupThenPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: true, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 1, - key_digest: 18380497388496919726, + key_digest: 16770493839171826477, }; diff --git a/crates/akita-schedules/src/generated/fp128_onehot_recursive_multi_chunk_w8r2.rs b/crates/akita-schedules/src/generated/fp128_onehot_recursive_multi_chunk_w8r2.rs index b9ff50992..cda6d1376 100644 --- a/crates/akita-schedules/src/generated/fp128_onehot_recursive_multi_chunk_w8r2.rs +++ b/crates/akita-schedules/src/generated/fp128_onehot_recursive_multi_chunk_w8r2.rs @@ -18,20 +18,19 @@ pub(crate) static FP128_ONEHOT_RECURSIVE_MULTI_CHUNK_W8R2_SCHEDULES: &[Generated final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(32, 2), num_digits_inner: 1, num_digits_fold: 2, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 16777216, positions_per_block: 32768, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[ - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, - GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([180, 101, 127, 98, 144, 97, 92, 243, 88, 85, 119, 215, 173, 81, 159, 157, 197, 93, 75, 141, 204, 99, 22, 17, 27, 38, 112, 66, 172, 59, 146, 148]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, + GeneratedRootPrecommittedGroup { descriptor: CommittedGroupProfile { version: CommittedGroupProfile::VERSION, group: PolynomialGroupLayout::new(16, 1), num_live_ring_elements_per_claim: 1024, num_positions_per_block: 128, num_live_blocks: 8, log_basis_inner: 3, num_digits_inner: 1, inner_commit_matrix: InnerCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 2, 128, 2047, 64), log_basis_outer: 3, num_digits_outer: 43, outer_commit_matrix: OuterCommitMatrixParams::new_unchecked(SisSecurityPolicyId::Quantum128BitADPS16, SisTableDigest([168, 166, 29, 240, 246, 7, 53, 200, 238, 148, 139, 169, 167, 145, 112, 173, 36, 114, 90, 87, 43, 126, 62, 102, 223, 196, 237, 1, 57, 177, 214, 14]), SisModulusProfileId::Q128OffsetA7F7, 1, 688, 7, 64) }, num_digits_fold: 1, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1024, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 } } }, ], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 }, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 613793, positions_per_block: 8192, live_blocks: 75 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 11316224, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 128, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1290738, positions_per_block: 8192, live_blocks: 158 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 7814144, num_digits_fold: 3, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 131072, positions_per_block: 512, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 132605, positions_per_block: 2048, live_blocks: 65 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 18291, positions_per_block: 1024, live_blocks: 18 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6797, positions_per_block: 1024, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3485, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2124, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 613793, positions_per_block: 4096, live_blocks: 150 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: Some(GeneratedSetupPrefixInput { natural_len: 11316224, num_digits_fold: 4, commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 65536, positions_per_block: 128, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 7 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } } }), witness_partition: GeneratedWitnessPartition::Distributed { num_chunks: 8 } }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 960420, positions_per_block: 8192, live_blocks: 118 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 46626, positions_per_block: 2048, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10904, positions_per_block: 1024, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4013, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2256, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 64, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1656, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 64, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2570, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -51,23 +50,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinFirstDirectSetupThenPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(128) }, ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 8, num_activated_levels: 2 }, recursive_setup_planning: true, ring_dimension_schedule_mode: RingDimensionScheduleMode::AdaptiveDimension { num_search_levels: 2, uniform_suffix_dimension: 64, potential_a_dimensions: CATALOG_POTENTIAL_A_DIMENSIONS, potential_b_dimensions: CATALOG_POTENTIAL_B_DIMENSIONS, potential_d_dimensions: CATALOG_POTENTIAL_D_DIMENSIONS }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3458533356553718245, key_count: 1, - key_digest: 8477849330456216878, + key_digest: 4206015438699897101, }; diff --git a/crates/akita-schedules/src/generated/fp32_d128_dense.rs b/crates/akita-schedules/src/generated/fp32_d128_dense.rs new file mode 100644 index 000000000..874c15f1a --- /dev/null +++ b/crates/akita-schedules/src/generated/fp32_d128_dense.rs @@ -0,0 +1,64 @@ +// Generated by `cargo run --release -p akita-planner --features catalog-gen --bin gen_schedule_tables -- ` +#[allow(unused_imports)] +use super::{ + ChunkedWitnessCfg, CommitmentPayloadMode, CommitmentRingDims, CommittedGroupProfile, + DecompositionParams, GeneratedBlockGeometry, GeneratedCommittedGroup, + GeneratedFoldScheduleEntry, GeneratedInnerCommitMatrix, GeneratedOpenCommitMatrix, + GeneratedOuterCommitMatrix, GeneratedRecursiveFold, GeneratedRootFinalGroup, GeneratedRootFold, + GeneratedRootPrecommittedGroup, GeneratedScheduleCatalogIdentity, GeneratedSetupPrefixInput, + GeneratedTerminalFold, GeneratedWitnessPartition, InnerCommitMatrixParams, + OuterCommitMatrixParams, PlannerCostModelId, PolynomialGroupLayout, RingDimensionScheduleMode, + SelectionPolicyId, SisModulusProfileId, SisSecurityPolicyId, SisTableDigest, +}; + +#[rustfmt::skip] +pub(crate) static FP32_D128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ + GeneratedFoldScheduleEntry { + root: GeneratedRootFold { + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(26, 1), num_digits_inner: 6, num_digits_fold: 5, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 524288, positions_per_block: 2048, live_blocks: 256 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + precommitted_groups: &[], + open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, + witness_partition: GeneratedWitnessPartition::Single, + }, + recursive_folds: &[ + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 95585, positions_per_block: 2048, live_blocks: 47 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 14178, positions_per_block: 512, live_blocks: 28 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4060, positions_per_block: 512, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1790, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1016, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + ], + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 766, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + }, +]; + +#[rustfmt::skip] +pub(crate) static CATALOG_RING_DIMENSIONS: &[usize] = &[128]; +#[rustfmt::skip] +pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = GeneratedScheduleCatalogIdentity { + family_name: "fp32_d128_dense", + protocol_epoch: 1, + cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, + selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, + setup_field_budget: None, + min_offloaded_witness_contraction: 3, + sis_modulus_profile: SisModulusProfileId::Q32Offset99, + sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), + uniform_ring_dimension: 128, + setup_prefix_inner_ring_dimension: 128, + decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 32, log_open_bound: None }, + ring_subfield_norm_bound: 2, + claim_ext_degree: 4, + chal_ext_degree: 4, + inner_basis_range: (3, 10), + opening_basis_range: (3, 6), + witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, + recursive_setup_planning: false, + ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 128 }, + ring_dimensions: CATALOG_RING_DIMENSIONS, + ring_challenge_config_digest: 12329058664815196960, + key_count: 1, + key_digest: 11527421601507936977, +}; diff --git a/crates/akita-schedules/src/generated/fp32_d128_dense_precommitted.rs b/crates/akita-schedules/src/generated/fp32_d128_dense_precommitted.rs new file mode 100644 index 000000000..27488ebb4 --- /dev/null +++ b/crates/akita-schedules/src/generated/fp32_d128_dense_precommitted.rs @@ -0,0 +1,15 @@ +// Generated by `cargo run --release -p akita-planner --features catalog-gen --bin gen_schedule_tables -- ` +use super::{ + GeneratedBlockGeometry, GeneratedCommittedGroup, GeneratedInnerCommitMatrix, + GeneratedOuterCommitMatrix, GeneratedPrecommittedProfile, PolynomialGroupLayout, +}; + +#[rustfmt::skip] +pub(crate) static FP32_D128_DENSE_SCHEDULES_PRECOMMITTED_PROFILES: &[GeneratedPrecommittedProfile] = &[ + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 32, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 32, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 2, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 2, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 64, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 2, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 2, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 4, inner_output_rank: 11, inner_coeff_linf_bound: 16777215, num_digits_outer: 11, outer_output_rank: 2, outer_coeff_linf_bound: 7 }, +]; diff --git a/crates/akita-schedules/src/generated/fp32_d128_onehot.rs b/crates/akita-schedules/src/generated/fp32_d128_onehot.rs index 392908937..d63f5a2b4 100644 --- a/crates/akita-schedules/src/generated/fp32_d128_onehot.rs +++ b/crates/akita-schedules/src/generated/fp32_d128_onehot.rs @@ -21,11 +21,8 @@ pub(crate) static FP32_D128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, - recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1129, positions_per_block: 128, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 989, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - ], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 766, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + recursive_folds: &[], + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1129, positions_per_block: 128, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, num_digits_inner: 1, inner_output_rank: 7, inner_coeff_linf_bound: 262143, z_admission_linf_cap: 528, z_rice_low_bits: 7, z_payload_bytes: 22528 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { @@ -36,8 +33,8 @@ pub(crate) static FP32_D128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1364, positions_per_block: 256, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1125, positions_per_block: 128, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1364, positions_per_block: 256, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1103, positions_per_block: 128, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 989, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 766, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -51,20 +48,20 @@ pub(crate) static FP32_D128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[], - terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 985, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 985, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, num_digits_inner: 1, inner_output_rank: 7, inner_coeff_linf_bound: 262143, z_admission_linf_cap: 528, z_rice_low_bits: 7, z_payload_bytes: 22528 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 1), num_digits_inner: 1, num_digits_fold: 2, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8192, positions_per_block: 256, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8192, positions_per_block: 512, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3231, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1697, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1016, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2511, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1327, positions_per_block: 128, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 928, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 766, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -78,9 +75,9 @@ pub(crate) static FP32_D128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ }, recursive_folds: &[ GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 53067, positions_per_block: 1024, live_blocks: 52 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10687, positions_per_block: 512, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3500, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1697, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 10687, positions_per_block: 512, live_blocks: 21 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3500, positions_per_block: 512, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1727, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1016, positions_per_block: 128, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 766, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 8, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -95,23 +92,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q32Offset99, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 128, setup_prefix_inner_ring_dimension: 128, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(32) }, ring_subfield_norm_bound: 2, claim_ext_degree: 4, chal_ext_degree: 4, - basis_range: (3, 6), + inner_basis_range: (3, 10), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 128 }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 12329058664815196960, key_count: 5, - key_digest: 4481053866438340871, + key_digest: 744061215735877343, }; diff --git a/crates/akita-schedules/src/generated/fp32_d256_onehot.rs b/crates/akita-schedules/src/generated/fp32_d256_onehot.rs index 1cdf93644..b7bfeca01 100644 --- a/crates/akita-schedules/src/generated/fp32_d256_onehot.rs +++ b/crates/akita-schedules/src/generated/fp32_d256_onehot.rs @@ -22,8 +22,8 @@ pub(crate) static FP32_D256_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 680, positions_per_block: 64, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 585, positions_per_block: 64, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 680, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 601, positions_per_block: 64, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 555, positions_per_block: 64, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 440, positions_per_block: 64, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2849, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -38,23 +38,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q32Offset99, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(32) }, ring_subfield_norm_bound: 2, claim_ext_degree: 4, chal_ext_degree: 4, - basis_range: (3, 6), + inner_basis_range: (3, 10), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 256 }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3667632896996973001, key_count: 1, - key_digest: 16171036766260101186, + key_digest: 15319601360446583961, }; diff --git a/crates/akita-schedules/src/generated/fp64_d128_dense.rs b/crates/akita-schedules/src/generated/fp64_d128_dense.rs index 7621bfbb6..c766a1f98 100644 --- a/crates/akita-schedules/src/generated/fp64_d128_dense.rs +++ b/crates/akita-schedules/src/generated/fp64_d128_dense.rs @@ -15,32 +15,48 @@ use super::{ pub(crate) static FP64_D128_DENSE_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 22, num_digits_fold: 3, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 16, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(14, 1), num_digits_inner: 11, num_digits_fold: 4, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 16, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2267, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1744, positions_per_block: 256, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1231, positions_per_block: 128, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2113, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1358, positions_per_block: 128, live_blocks: 11 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1107, positions_per_block: 128, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + ], + terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 828, positions_per_block: 128, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, + }, + GeneratedFoldScheduleEntry { + root: GeneratedRootFold { + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 1), num_digits_inner: 8, num_digits_fold: 5, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8192, positions_per_block: 256, live_blocks: 32 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + precommitted_groups: &[], + open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, + witness_partition: GeneratedWitnessPartition::Single, + }, + recursive_folds: &[ + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 15543, positions_per_block: 512, live_blocks: 31 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 3300, positions_per_block: 256, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1627, positions_per_block: 128, live_blocks: 13 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1217, positions_per_block: 128, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 883, positions_per_block: 128, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, GeneratedFoldScheduleEntry { root: GeneratedRootFold { - final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(20, 1), num_digits_inner: 22, num_digits_fold: 4, - commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8192, positions_per_block: 64, live_blocks: 128 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, + final_group: GeneratedRootFinalGroup { layout: PolynomialGroupLayout::new(26, 1), num_digits_inner: 11, num_digits_fold: 5, + commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 524288, positions_per_block: 1024, live_blocks: 512 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } } }, precommitted_groups: &[], open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 22881, positions_per_block: 1024, live_blocks: 23 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 7485, positions_per_block: 512, live_blocks: 15 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2271, positions_per_block: 256, live_blocks: 9 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1194, positions_per_block: 128, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 146829, positions_per_block: 2048, live_blocks: 72 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 9180, positions_per_block: 512, live_blocks: 18 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2469, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1260, positions_per_block: 128, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 883, positions_per_block: 128, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, }, @@ -54,23 +70,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q64Offset59, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 128, setup_prefix_inner_ring_dimension: 128, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 64, log_open_bound: None }, ring_subfield_norm_bound: 2, claim_ext_degree: 2, chal_ext_degree: 2, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 128 }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 12329058664815196960, - key_count: 2, - key_digest: 11223146228710785535, + key_count: 3, + key_digest: 8003136267235777065, }; diff --git a/crates/akita-schedules/src/generated/fp64_d128_dense_precommitted.rs b/crates/akita-schedules/src/generated/fp64_d128_dense_precommitted.rs index b22c847db..064bdda2d 100644 --- a/crates/akita-schedules/src/generated/fp64_d128_dense_precommitted.rs +++ b/crates/akita-schedules/src/generated/fp64_d128_dense_precommitted.rs @@ -6,10 +6,10 @@ use super::{ #[rustfmt::skip] pub(crate) static FP64_D128_DENSE_SCHEDULES_PRECOMMITTED_PROFILES: &[GeneratedPrecommittedProfile] = &[ - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 16, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 4, inner_coeff_linf_bound: 262143, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 32, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 4, inner_coeff_linf_bound: 262143, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 4, inner_coeff_linf_bound: 262143, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 5, inner_coeff_linf_bound: 2097151, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 5, inner_coeff_linf_bound: 2097151, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, - GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 22, inner_output_rank: 5, inner_coeff_linf_bound: 2097151, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 32, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 10 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 7, inner_output_rank: 6, inner_coeff_linf_bound: 16777215, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(14, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 128, positions_per_block: 32, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 11, inner_output_rank: 5, inner_coeff_linf_bound: 2097151, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 11, inner_output_rank: 5, inner_coeff_linf_bound: 2097151, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(15, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 256, positions_per_block: 32, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 8, inner_output_rank: 6, inner_coeff_linf_bound: 16777215, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 1), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 32, live_blocks: 16 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 8, inner_output_rank: 6, inner_coeff_linf_bound: 16777215, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, + GeneratedPrecommittedProfile { group: PolynomialGroupLayout::new(16, 2), commitment: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 512, positions_per_block: 64, live_blocks: 8 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 8 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 3, slice_count: 1 } }, num_digits_inner: 8, inner_output_rank: 6, inner_coeff_linf_bound: 16777215, num_digits_outer: 22, outer_output_rank: 1, outer_coeff_linf_bound: 7 }, ]; diff --git a/crates/akita-schedules/src/generated/fp64_d128_onehot.rs b/crates/akita-schedules/src/generated/fp64_d128_onehot.rs index 20358ee29..2dae304e0 100644 --- a/crates/akita-schedules/src/generated/fp64_d128_onehot.rs +++ b/crates/akita-schedules/src/generated/fp64_d128_onehot.rs @@ -22,9 +22,9 @@ pub(crate) static FP64_D128_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 58721, positions_per_block: 1024, live_blocks: 58 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8940, positions_per_block: 512, live_blocks: 18 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2469, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 58721, positions_per_block: 1024, live_blocks: 58 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 8940, positions_per_block: 512, live_blocks: 18 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2455, positions_per_block: 256, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1260, positions_per_block: 128, live_blocks: 10 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 128, log_basis: 6, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 883, positions_per_block: 128, live_blocks: 7 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 128, log_basis: 6 }, num_digits_inner: 1, inner_output_rank: 4, inner_coeff_linf_bound: 1048575, z_admission_linf_cap: 2114, z_rice_low_bits: 9, z_payload_bytes: 26624 }, @@ -39,23 +39,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q64Offset59, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 128, setup_prefix_inner_ring_dimension: 128, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(64) }, ring_subfield_norm_bound: 2, claim_ext_degree: 2, chal_ext_degree: 2, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 128 }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 12329058664815196960, key_count: 1, - key_digest: 8237777335332429113, + key_digest: 7973298011979069773, }; diff --git a/crates/akita-schedules/src/generated/fp64_d256_onehot.rs b/crates/akita-schedules/src/generated/fp64_d256_onehot.rs index 7341838c1..b4129b8d0 100644 --- a/crates/akita-schedules/src/generated/fp64_d256_onehot.rs +++ b/crates/akita-schedules/src/generated/fp64_d256_onehot.rs @@ -22,10 +22,9 @@ pub(crate) static FP64_D256_ONEHOT_SCHEDULES: &[GeneratedFoldScheduleEntry] = &[ witness_partition: GeneratedWitnessPartition::Single, }, recursive_folds: &[ - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 25351, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 3, slice_count: 1 } }, num_digits_fold: 4, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 3, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 6581, positions_per_block: 256, live_blocks: 26 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 2347, positions_per_block: 512, live_blocks: 5 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, - GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1433, positions_per_block: 256, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 25351, positions_per_block: 1024, live_blocks: 25 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 3 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 4, slice_count: 1 } }, num_digits_fold: 3, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 4, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 4918, positions_per_block: 256, live_blocks: 20 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 4 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, + GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Compressed, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 1506, positions_per_block: 256, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, GeneratedRecursiveFold { payload_mode: CommitmentPayloadMode::Raw, witness: GeneratedCommittedGroup { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 960, positions_per_block: 256, live_blocks: 4 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, outer_commit_matrix: GeneratedOuterCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 } }, num_digits_fold: 2, open_commit_matrix: GeneratedOpenCommitMatrix { ring_dimension: 256, log_basis: 5, slice_count: 1 }, incoming_setup_prefix: None, witness_partition: GeneratedWitnessPartition::Single }, ], terminal: GeneratedTerminalFold { geometry: GeneratedBlockGeometry { live_ring_elements_per_claim: 733, positions_per_block: 128, live_blocks: 6 }, inner_commit_matrix: GeneratedInnerCommitMatrix { ring_dimension: 256, log_basis: 5 }, num_digits_inner: 1, inner_output_rank: 2, inner_coeff_linf_bound: 262143, z_admission_linf_cap: 1424, z_rice_low_bits: 8, z_payload_bytes: 49152 }, @@ -40,23 +39,25 @@ pub(crate) static CATALOG_IDENTITY: GeneratedScheduleCatalogIdentity = Generated protocol_epoch: 1, cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinEstimatedProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::BoundedBalancedExtremesV1, setup_field_budget: None, min_offloaded_witness_contraction: 3, sis_modulus_profile: SisModulusProfileId::Q64Offset59, sis_security_policy: SisSecurityPolicyId::Quantum128BitADPS16, - sis_table_digest: SisTableDigest([0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, 0x92, 0x94]), + sis_table_digest: SisTableDigest([0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e]), uniform_ring_dimension: 256, setup_prefix_inner_ring_dimension: 256, decomposition: DecompositionParams { log_basis: 3, log_commit_bound: 1, log_open_bound: Some(64) }, ring_subfield_norm_bound: 2, claim_ext_degree: 2, chal_ext_degree: 2, - basis_range: (3, 6), + inner_basis_range: (3, 11), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg { num_chunks: 1, num_activated_levels: 0 }, recursive_setup_planning: false, ring_dimension_schedule_mode: RingDimensionScheduleMode::UniformDimension { ring_dimension: 256 }, ring_dimensions: CATALOG_RING_DIMENSIONS, ring_challenge_config_digest: 3667632896996973001, key_count: 1, - key_digest: 12611558568107114720, + key_digest: 8543754911826017200, }; diff --git a/crates/akita-schedules/src/generated/mod.rs b/crates/akita-schedules/src/generated/mod.rs index b95be3f7f..b8dc65c74 100644 --- a/crates/akita-schedules/src/generated/mod.rs +++ b/crates/akita-schedules/src/generated/mod.rs @@ -134,6 +134,7 @@ pub struct GeneratedScheduleCatalogIdentity { pub protocol_epoch: u32, pub cost_model: crate::PlannerCostModelId, pub selection_policy: crate::SelectionPolicyId, + pub recursive_split_search_policy: crate::RecursiveSplitSearchPolicy, pub setup_field_budget: Option, pub min_offloaded_witness_contraction: usize, pub sis_modulus_profile: SisModulusProfileId, @@ -145,7 +146,8 @@ pub struct GeneratedScheduleCatalogIdentity { pub ring_subfield_norm_bound: u32, pub claim_ext_degree: usize, pub chal_ext_degree: usize, - pub basis_range: (u32, u32), + pub inner_basis_range: (u32, u32), + pub opening_basis_range: (u32, u32), /// Multi-chunk witness layout this table was emitted under. A chunked policy /// never aliases a single-chunk table (and vice versa), even when row keys /// match. `ChunkedWitnessCfg::default()` for single-chunk tables. @@ -172,7 +174,7 @@ pub mod validate; pub(crate) mod walk; pub use crate::{ ChunkedWitnessCfg, CommitmentRingDims, DecompositionParams, PlannerCostModelId, - RingDimensionScheduleMode, SelectionPolicyId, SisSecurityPolicyId, + RecursiveSplitSearchPolicy, RingDimensionScheduleMode, SelectionPolicyId, SisSecurityPolicyId, }; pub use akita_types::{ CommitmentPayloadMode, CommittedGroupProfile, InnerCommitMatrixParams, OuterCommitMatrixParams, @@ -334,79 +336,6 @@ fn precommitted_group_key_eq( generated == layout } -#[cfg(test)] -mod mixed_dimension_key_tests { - use super::{precommitted_group_key_eq, precommitted_group_sort_key}; - use akita_types::{ - CommittedGroupProfile, InnerCommitMatrixParams, OuterCommitMatrixParams, - PolynomialGroupLayout, SisModulusProfileId, SisTableDigest, - }; - - fn descriptor() -> CommittedGroupProfile { - CommittedGroupProfile { - version: CommittedGroupProfile::VERSION, - group: PolynomialGroupLayout::new(12, 1), - num_live_ring_elements_per_claim: 32, - num_positions_per_block: 8, - num_live_blocks: 4, - log_basis_inner: 4, - num_digits_inner: 2, - inner_commit_matrix: InnerCommitMatrixParams::new_unchecked( - akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, - SisTableDigest::CURRENT, - SisModulusProfileId::Q128OffsetA7F7, - 3, - 16, - 7, - 128, - ), - log_basis_outer: 5, - num_digits_outer: 2, - outer_commit_matrix: OuterCommitMatrixParams::new_unchecked( - akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, - SisTableDigest::CURRENT, - SisModulusProfileId::Q128OffsetA7F7, - 2, - 48, - 11, - 64, - ), - } - } - - #[test] - fn precommitted_key_identity_includes_both_native_ring_dimensions() { - let base = descriptor(); - let mut changed_inner = base; - changed_inner.inner_commit_matrix = InnerCommitMatrixParams::new_unchecked( - akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, - SisTableDigest::CURRENT, - SisModulusProfileId::Q128OffsetA7F7, - 3, - 16, - 7, - 64, - ); - let mut changed_outer = base; - changed_outer.outer_commit_matrix = OuterCommitMatrixParams::new_unchecked( - akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, - SisTableDigest::CURRENT, - SisModulusProfileId::Q128OffsetA7F7, - 2, - 48, - 11, - 32, - ); - for changed in [changed_inner, changed_outer] { - assert!(!precommitted_group_key_eq(&base, &changed)); - assert_ne!( - precommitted_group_sort_key(&base), - precommitted_group_sort_key(&changed) - ); - } - } -} - /// Returns an error when the generated key does not match the runtime key. pub(crate) fn validate_entry_key( generated: &GeneratedFoldScheduleEntry, @@ -428,21 +357,23 @@ pub(crate) fn validate_certified_bases( policy: &crate::PlannerPolicy, context: &str, ) -> Result<(), akita_field::AkitaError> { - let (min, max) = policy.basis_range; - for (role, basis) in [ - ("inner", log_basis_inner), - ("outer", log_basis_outer), - ("open", log_basis_open), - ] { + let (inner_min, inner_max) = policy.inner_basis_range; + if log_basis_inner < inner_min || log_basis_inner > inner_max { + return Err(akita_field::AkitaError::InvalidSetup(format!( + "{context} inner basis {log_basis_inner} outside policy range [{inner_min}, {inner_max}]" + ))); + } + let (min, max) = policy.opening_basis_range; + for (role, basis) in [("outer", log_basis_outer), ("open", log_basis_open)] { if basis < min || basis > max { return Err(akita_field::AkitaError::InvalidSetup(format!( "{context} {role} basis {basis} outside policy range [{min}, {max}]" ))); } } - if log_basis_open < log_basis_inner || log_basis_open < log_basis_outer { + if log_basis_open < log_basis_outer { return Err(akita_field::AkitaError::InvalidSetup(format!( - "{context} certified open basis must dominate inner and outer bases" + "{context} certified open basis must dominate the outer basis" ))); } Ok(()) @@ -481,6 +412,10 @@ pub mod fp128_onehot_recursive_multi_chunk_w8r2; pub mod fp128_onehot_recursive_multi_chunk_w8r2_precommitted; #[cfg(feature = "fp128-onehot-recursive")] pub mod fp128_onehot_recursive_precommitted; +#[cfg(feature = "fp32-d128-dense")] +pub mod fp32_d128_dense; +#[cfg(feature = "fp32-d128-dense")] +pub mod fp32_d128_dense_precommitted; #[cfg(feature = "fp32-d128-onehot")] pub mod fp32_d128_onehot; #[cfg(feature = "fp32-d128-onehot")] @@ -576,6 +511,16 @@ pub fn fp128_onehot_recursive_multi_chunk_w8r2_table() -> GeneratedScheduleTable } } +#[cfg(feature = "fp32-d128-dense")] +pub fn fp32_d128_dense_table() -> GeneratedScheduleTable { + GeneratedScheduleTable { + entries: fp32_d128_dense::FP32_D128_DENSE_SCHEDULES, + precommitted_profiles: + fp32_d128_dense_precommitted::FP32_D128_DENSE_SCHEDULES_PRECOMMITTED_PROFILES, + identity: fp32_d128_dense::CATALOG_IDENTITY, + } +} + #[cfg(feature = "fp32-d128-onehot")] pub fn fp32_d128_onehot_table() -> GeneratedScheduleTable { GeneratedScheduleTable { @@ -626,3 +571,76 @@ pub fn fp64_d256_onehot_table() -> GeneratedScheduleTable { } } // @generated schedule module wiring end + +#[cfg(test)] +mod mixed_dimension_key_tests { + use super::{precommitted_group_key_eq, precommitted_group_sort_key}; + use akita_types::{ + CommittedGroupProfile, InnerCommitMatrixParams, OuterCommitMatrixParams, + PolynomialGroupLayout, SisModulusProfileId, SisTableDigest, + }; + + fn descriptor() -> CommittedGroupProfile { + CommittedGroupProfile { + version: CommittedGroupProfile::VERSION, + group: PolynomialGroupLayout::new(12, 1), + num_live_ring_elements_per_claim: 32, + num_positions_per_block: 8, + num_live_blocks: 4, + log_basis_inner: 4, + num_digits_inner: 2, + inner_commit_matrix: InnerCommitMatrixParams::new_unchecked( + akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, + SisTableDigest::CURRENT, + SisModulusProfileId::Q128OffsetA7F7, + 3, + 16, + 7, + 128, + ), + log_basis_outer: 5, + num_digits_outer: 2, + outer_commit_matrix: OuterCommitMatrixParams::new_unchecked( + akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, + SisTableDigest::CURRENT, + SisModulusProfileId::Q128OffsetA7F7, + 2, + 48, + 11, + 64, + ), + } + } + + #[test] + fn precommitted_key_identity_includes_both_native_ring_dimensions() { + let base = descriptor(); + let mut changed_inner = base; + changed_inner.inner_commit_matrix = InnerCommitMatrixParams::new_unchecked( + akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, + SisTableDigest::CURRENT, + SisModulusProfileId::Q128OffsetA7F7, + 3, + 16, + 7, + 64, + ); + let mut changed_outer = base; + changed_outer.outer_commit_matrix = OuterCommitMatrixParams::new_unchecked( + akita_types::sis::DEFAULT_SIS_SECURITY_POLICY, + SisTableDigest::CURRENT, + SisModulusProfileId::Q128OffsetA7F7, + 2, + 48, + 11, + 32, + ); + for changed in [changed_inner, changed_outer] { + assert!(!precommitted_group_key_eq(&base, &changed)); + assert_ne!( + precommitted_group_sort_key(&base), + precommitted_group_sort_key(&changed) + ); + } + } +} diff --git a/crates/akita-schedules/src/generated/walk.rs b/crates/akita-schedules/src/generated/walk.rs index 025f23f88..b9f725062 100644 --- a/crates/akita-schedules/src/generated/walk.rs +++ b/crates/akita-schedules/src/generated/walk.rs @@ -215,7 +215,7 @@ pub(crate) fn walk_generated_schedule_entry( AkitaError::InvalidSetup("generated proof byte total overflow".to_string()) })?; folds.push(CandidateFoldStep { - params: lp.clone(), + params: std::sync::Arc::new(lp.clone()), input_witness_len: *input_witness_len, output_witness_len: *output_witness_len, estimated_direct_payload_bytes: direct_level_bytes, diff --git a/crates/akita-schedules/src/group_batch.rs b/crates/akita-schedules/src/group_batch.rs index 25eaf900d..757789bc0 100644 --- a/crates/akita-schedules/src/group_batch.rs +++ b/crates/akita-schedules/src/group_batch.rs @@ -2,174 +2,56 @@ use akita_challenges::SparseChallengeConfig; use akita_field::AkitaError; -use akita_types::sis::{ - decomposed_t_ring_count, num_digits_open, rounded_up_collision_inf_norm, - rounded_up_role_a_inf_norm, InnerCommitMatrixParams, OuterCommitMatrixParams, SisMatrixRole, -}; use akita_types::{ - AkitaScheduleLookupKey, CommittedGroupProfile, DecompositionParams, PrecommittedLevelParams, + AkitaScheduleLookupKey, PrecommittedGroupAdmissionPolicy, PrecommittedLevelParams, }; use crate::generated::GeneratedRootPrecommittedGroup; use crate::PlannerPolicy; -#[derive(Clone, Debug)] -struct PrecommittedGroupSeed { - layout: CommittedGroupProfile, - num_digits_fold: usize, - inner_commit_matrix: InnerCommitMatrixParams, - outer_commit_matrix: OuterCommitMatrixParams, -} - -fn freeze_precommitted_group_layout( - layout: &CommittedGroupProfile, - generated: &GeneratedRootPrecommittedGroup, - policy: &PlannerPolicy, -) -> Result { - layout.validate_frozen_precommit(policy.decomposition.field_bits())?; - - let d_a = layout.inner_commit_matrix.ring_dimension(); - let d_b = layout.outer_commit_matrix.ring_dimension(); - let inner_commit_matrix = layout.inner_commit_matrix; - - let norm_t = rounded_up_collision_inf_norm( - policy.sis_security_policy, - policy.sis_modulus_profile, - SisMatrixRole::Outer, - d_b, - layout.log_basis_outer, - ) - .ok_or_else(|| AkitaError::InvalidSetup("no multi-group B-role norm".to_string()))?; - let width_t = decomposed_t_ring_count( - layout.inner_commit_matrix.output_rank(), - layout.num_digits_outer, - layout.num_live_blocks, - layout.group.num_polynomials(), - ) - .and_then(|width| width.checked_mul(d_a / d_b)) - .ok_or_else(|| AkitaError::InvalidSetup("setup B width overflow".to_string()))?; - if layout.outer_commit_matrix.coeff_linf_bound() < norm_t { - return Err(AkitaError::InvalidSetup( - "precommitted group B bound is below the selected opening requirement".to_string(), - )); - } - if width_t != layout.outer_commit_matrix.input_width() { - return Err(AkitaError::InvalidSetup( - "precommitted profile B width does not match its exact matrix".to_string(), - )); - } - let outer_commit_matrix = layout.outer_commit_matrix; - - Ok(PrecommittedGroupSeed { - layout: *layout, - num_digits_fold: usize::try_from(generated.num_digits_fold).map_err(|_| { - AkitaError::InvalidSetup( - "generated precommitted fold depth does not fit the target platform".to_string(), - ) - })?, - inner_commit_matrix, - outer_commit_matrix, - }) -} - -fn materialize_precommitted_group_for_open_basis( - group: &PrecommittedGroupSeed, - policy: &PlannerPolicy, - ring_challenge_cfg: &SparseChallengeConfig, - log_basis_open: u32, -) -> Result { - if log_basis_open < group.layout.log_basis_inner - || log_basis_open < group.layout.log_basis_outer - { - return Err(AkitaError::InvalidSetup( - "certified opening basis must dominate precommitted inner/outer bases".to_string(), - )); - } - let open_decomp = DecompositionParams { - log_basis: log_basis_open, - ..policy.decomposition - }; - let num_digits_open = num_digits_open(open_decomp); - let num_digits_fold = group.num_digits_fold; - let required_a_bound = rounded_up_role_a_inf_norm( - policy.sis_security_policy, - policy.sis_table_digest, - policy.sis_modulus_profile, - group.layout.inner_commit_matrix.ring_dimension(), - log_basis_open, - ring_challenge_cfg, - num_digits_fold, - policy.ring_subfield_norm_bound, - ) - .ok_or_else(|| AkitaError::InvalidSetup("no precommitted A-role norm".to_string()))?; - if required_a_bound > group.inner_commit_matrix.coeff_linf_bound() { - return Err(AkitaError::InvalidSetup( - "precommitted A bound does not cover the certified opening basis".to_string(), - )); - } - let required_b_bound = rounded_up_collision_inf_norm( - policy.sis_security_policy, - policy.sis_modulus_profile, - SisMatrixRole::Outer, - group.layout.outer_commit_matrix.ring_dimension(), - log_basis_open, - ) - .ok_or_else(|| AkitaError::InvalidSetup("no precommitted B-role norm".to_string()))?; - if required_b_bound > group.outer_commit_matrix.coeff_linf_bound() { - return Err(AkitaError::InvalidSetup( - "precommitted B bound does not cover the certified opening basis".to_string(), - )); - } - Ok(PrecommittedLevelParams { - layout: group.layout, - log_basis_open, - fold_challenge_config: *ring_challenge_cfg, - num_digits_open, - num_digits_fold, - }) -} - -fn multi_group_root_precommitted_group_seeds( +pub(crate) fn multi_group_root_precommitted_groups_for_open_basis( key: &AkitaScheduleLookupKey, generated_groups: &[GeneratedRootPrecommittedGroup], policy: &PlannerPolicy, -) -> Result, AkitaError> { + ring_challenge_config: &dyn Fn(usize) -> Result, + log_basis_open: u32, + open_ring_dimension: usize, +) -> Result<(Vec, usize), AkitaError> { if key.precommitteds.is_empty() { return Err(AkitaError::InvalidSetup( "multi-group root params require at least one precommitted group".to_string(), )); } - if key.precommitteds.len() != generated_groups.len() { return Err(AkitaError::InvalidSetup( "generated precommitted group count does not match the schedule key".to_string(), )); } - key.precommitteds + let admission_policy = PrecommittedGroupAdmissionPolicy { + decomposition: policy.decomposition, + sis_security_policy: policy.sis_security_policy, + sis_table_digest: policy.sis_table_digest, + sis_modulus_profile: policy.sis_modulus_profile, + ring_subfield_norm_bound: policy.ring_subfield_norm_bound, + }; + let groups = key + .precommitteds .iter() .zip(generated_groups) - .map(|(layout, generated)| freeze_precommitted_group_layout(layout, generated, policy)) - .collect::, _>>() -} - -pub(crate) fn multi_group_root_precommitted_groups_for_open_basis( - key: &AkitaScheduleLookupKey, - generated_groups: &[GeneratedRootPrecommittedGroup], - policy: &PlannerPolicy, - ring_challenge_config: &dyn Fn(usize) -> Result, - log_basis_open: u32, - open_ring_dimension: usize, -) -> Result<(Vec, usize), AkitaError> { - let seeds = multi_group_root_precommitted_group_seeds(key, generated_groups, policy)?; - let groups = seeds - .iter() - .map(|group| { + .map(|(layout, generated)| { let ring_challenge_cfg = - ring_challenge_config(group.layout.inner_commit_matrix.ring_dimension())?; - materialize_precommitted_group_for_open_basis( - group, - policy, - &ring_challenge_cfg, + ring_challenge_config(layout.inner_commit_matrix.ring_dimension())?; + let num_digits_fold = usize::try_from(generated.num_digits_fold).map_err(|_| { + AkitaError::InvalidSetup( + "generated precommitted fold depth does not fit the target platform" + .to_string(), + ) + })?; + PrecommittedLevelParams::admit( + *layout, + num_digits_fold, + admission_policy, + ring_challenge_cfg, log_basis_open, ) }) diff --git a/crates/akita-schedules/src/lib.rs b/crates/akita-schedules/src/lib.rs index 92889bdb4..1b55e1105 100644 --- a/crates/akita-schedules/src/lib.rs +++ b/crates/akita-schedules/src/lib.rs @@ -24,8 +24,8 @@ pub use resolve::{ ResolvedScheduleRow, }; pub use runtime::{ - default_sis_security_policy, PlannerCostModelId, PlannerPolicy, RingDimensionScheduleMode, - RuntimeSchedulePolicy, SelectionPolicyId, ADAPTIVE_SEARCH_LEVELS, + default_sis_security_policy, PlannerCostModelId, PlannerPolicy, RecursiveSplitSearchPolicy, + RingDimensionScheduleMode, RuntimeSchedulePolicy, SelectionPolicyId, ADAPTIVE_SEARCH_LEVELS, }; /// Shared schedule-construction primitives used by offline search and generated-row replay. diff --git a/crates/akita-schedules/src/runtime.rs b/crates/akita-schedules/src/runtime.rs index 11cce2624..b476aa5ed 100644 --- a/crates/akita-schedules/src/runtime.rs +++ b/crates/akita-schedules/src/runtime.rs @@ -7,8 +7,9 @@ use akita_types::{ RecursiveFoldStep, RingRole, RootFinalGroupParams, RootFoldParams, RootFoldStep, RootPrecommittedGroupParams, SisModulusProfileId, SisSecurityPolicyId, TerminalFoldParams, TerminalFoldStep, TerminalResponseShape, WitnessLayout, WitnessPartition, - DEFAULT_SIS_SECURITY_POLICY, + DEFAULT_SIS_SECURITY_POLICY, MAX_I16_LOG_BASIS, MAX_I8_LOG_BASIS, }; +use std::sync::Arc; /// Quantities materialized and checked by the current bounded planner cost model. #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -83,6 +84,32 @@ impl SelectionPolicyId { } } +/// Catalog-bound recursive split traversal policy. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub enum RecursiveSplitSearchPolicy { + /// Traverse every feasible recursive witness split. + Exhaustive, + /// Search the two extremes and a fixed radius-two balance window for + /// states above twelve reduced variables. + BoundedBalancedExtremesV1, +} + +impl RecursiveSplitSearchPolicy { + pub const fn tag(self) -> u32 { + match self { + Self::Exhaustive => 1, + Self::BoundedBalancedExtremesV1 => 2, + } + } + + pub const fn name(self) -> &'static str { + match self { + Self::Exhaustive => "Exhaustive", + Self::BoundedBalancedExtremesV1 => "BoundedBalancedExtremesV1", + } + } +} + /// Catalog-bound ring-dimension schedule policy. #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum RingDimensionScheduleMode { @@ -133,6 +160,7 @@ impl RingDimensionScheduleMode { pub struct PlannerPolicy { pub cost_model: PlannerCostModelId, pub selection_policy: SelectionPolicyId, + pub recursive_split_search_policy: RecursiveSplitSearchPolicy, /// Optional host admission budget for materialized setup field elements. /// `None` leaves the deterministic public stream uncapped by protocol policy. pub setup_field_budget: Option, @@ -152,7 +180,10 @@ pub struct PlannerPolicy { pub ring_subfield_norm_bound: u32, pub claim_ext_degree: usize, pub chal_ext_degree: usize, - pub basis_range: (u32, u32), + /// Inclusive A/source decomposition basis domain at every level. + pub inner_basis_range: (u32, u32), + /// Inclusive B/D opening and folded-response basis domain. + pub opening_basis_range: (u32, u32), pub witness_chunk: ChunkedWitnessCfg, pub recursive_setup_planning: bool, } @@ -195,59 +226,6 @@ impl PlannerPolicy { AkitaError::InvalidSetup("challenge field bit width overflow".to_string()) }) } - - /// Direct-only counterpart used when scalar schedules are cataloged under - /// the non-recursive family identity. It deliberately restores the - /// proof-payload objective: callers crossing from a grouped/recursive - /// adapter into the uniform scalar planner must not reuse a mixed-domain - /// setup-first policy. - pub fn direct_only(self) -> Self { - Self { - recursive_setup_planning: false, - selection_policy: SelectionPolicyId::for_policy( - false, - self.ring_dimension_schedule_mode, - ), - ..self - } - } - - /// Number of chunks emitted by fold level `fold_level`. - pub fn chunks_at_level(&self, fold_level: usize) -> usize { - let mc = self.witness_chunk; - if mc.uses_multi_chunk() && fold_level < mc.num_activated_levels { - mc.num_chunks - } else { - 1 - } - } - - /// Per-level witness chunk metadata. - pub fn witness_chunk_for_level(&self, fold_level: usize) -> ChunkedWitnessCfg { - let num_chunks = self.chunks_at_level(fold_level); - if num_chunks > 1 { - ChunkedWitnessCfg { - num_chunks, - num_activated_levels: self.witness_chunk.num_activated_levels, - } - } else { - ChunkedWitnessCfg::default() - } - } - - /// Inclusive `(min, max)` `log_basis` values to evaluate at an absolute fold - /// level. - /// - /// The root fold is fixed to the configured minimum basis. Deeper folds can - /// search the full configured range, while the suffix DP separately enforces - /// non-decreasing bases across adjacent folds. - pub fn log_basis_search_range_at_level(&self, level: usize) -> (u32, u32) { - let (configured_min, max) = self.basis_range; - if level == 0 { - return (configured_min, configured_min); - } - (configured_min, max) - } } /// Suffix-DP depth cap shared by planner search and runtime policy validation. @@ -287,6 +265,16 @@ pub fn validate_policy(policy: &PlannerPolicy) -> Result<(), AkitaError> { "minimum offloaded witness contraction must be positive".to_string(), )); } + for (label, (min, max), supported_max) in [ + ("opening", policy.opening_basis_range, MAX_I8_LOG_BASIS), + ("inner", policy.inner_basis_range, MAX_I16_LOG_BASIS), + ] { + if min == 0 || min > max || max > supported_max { + return Err(AkitaError::InvalidSetup(format!( + "{label} basis range [{min}, {max}] is outside 1..={supported_max}" + ))); + } + } policy.witness_chunk.validate()?; if policy.witness_chunk.num_activated_levels > MAX_RECURSION_DEPTH { return Err(AkitaError::InvalidSetup(format!( @@ -426,7 +414,7 @@ fn validate_dimension_list( #[derive(Clone, Debug)] /// One fully priced non-terminal fold awaiting schedule materialization. pub struct CandidateFoldStep { - pub params: CommittedGroupParams, + pub params: Arc, pub input_witness_len: usize, pub output_witness_len: usize, pub estimated_direct_payload_bytes: usize, @@ -508,14 +496,14 @@ pub fn materialize_candidate_schedule( "cached schedule cost {cached_total} disagrees with materialized estimate {recomputed}" ))); } + let root_params = Arc::unwrap_or_clone(root.params); let schedule = FoldSchedule { root: RootFoldStep { params: RootFoldParams { final_group: RootFinalGroupParams { - commitment: root.params.clone(), + commitment: root_params.clone(), }, - precommitted_groups: root - .params + precommitted_groups: root_params .precommitted_groups .iter() .cloned() @@ -524,25 +512,28 @@ pub fn materialize_candidate_schedule( commitment, }) .collect(), - open_commit_matrix: root.params.open_commit_matrix, - sparse_challenge_config: root.params.fold_challenge_config, - witness_partition: witness_partition(root.params.witness_chunk.num_chunks), + open_commit_matrix: root_params.open_commit_matrix, + sparse_challenge_config: root_params.fold_challenge_config, + witness_partition: witness_partition(root_params.witness_chunk.num_chunks), }, input_witness_len: root.input_witness_len, output_witness_len: root.output_witness_len, }, recursive_folds: folds .into_iter() - .map(|fold| RecursiveFoldStep { - params: RecursiveFoldParams { - open_commit_matrix: fold.params.open_commit_matrix, - sparse_challenge_config: fold.params.fold_challenge_config, - incoming_setup_prefix: fold.params.setup_prefix.clone(), - witness_partition: witness_partition(fold.params.witness_chunk.num_chunks), - witness: fold.params, - }, - input_witness_len: fold.input_witness_len, - output_witness_len: fold.output_witness_len, + .map(|fold| { + let params = Arc::unwrap_or_clone(fold.params); + RecursiveFoldStep { + params: RecursiveFoldParams { + open_commit_matrix: params.open_commit_matrix, + sparse_challenge_config: params.fold_challenge_config, + incoming_setup_prefix: params.setup_prefix.clone(), + witness_partition: witness_partition(params.witness_chunk.num_chunks), + witness: params, + }, + input_witness_len: fold.input_witness_len, + output_witness_len: fold.output_witness_len, + } }) .collect(), terminal: TerminalFoldStep { @@ -625,18 +616,24 @@ pub fn planned_next_witness_len( .to_string(), )); } + let opening_batch = + params.opening_layout_for_final_group(PolynomialGroupLayout::new(0, final_num_polys))?; + let quotient_depth = + akita_types::sis::compute_num_digits_field_width(field_bits, params.log_basis_open); + if params.setup_prefix.is_none() { + return WitnessLayout::try_scalar_live_coeff_len( + params, + &opening_batch, + num_chunks, + quotient_depth, + ); + } if !params.compression_sources_supported()? { return Ok(None); } - let opening_batch = - params.opening_layout_for_final_group(PolynomialGroupLayout::new(0, final_num_polys))?; - let layout = WitnessLayout::new( - params, - &opening_batch, - num_chunks, - akita_types::sis::compute_num_digits_field_width(field_bits, params.log_basis_open), - )?; - Ok(Some(layout.live_coeff_len())) + Ok(Some( + WitnessLayout::new(params, &opening_batch, num_chunks, quotient_depth)?.live_coeff_len(), + )) } /// Convenience policy used by config adapters. @@ -655,6 +652,7 @@ mod tests { PlannerPolicy { cost_model: PlannerCostModelId::ExactPayloadAndSetupEnvelope, selection_policy: SelectionPolicyId::MinSetupMatrixFieldElementsThenProofPayload, + recursive_split_search_policy: crate::RecursiveSplitSearchPolicy::Exhaustive, setup_field_budget: None, min_offloaded_witness_contraction: 3, // This remains the uniform preset candidate. It is deliberately @@ -679,7 +677,8 @@ mod tests { ring_subfield_norm_bound: 1, claim_ext_degree: 1, chal_ext_degree: 1, - basis_range: (3, 6), + inner_basis_range: (3, 16), + opening_basis_range: (3, 6), witness_chunk: ChunkedWitnessCfg::default(), recursive_setup_planning: false, } diff --git a/crates/akita-sis-estimator/Cargo.toml b/crates/akita-sis-estimator/Cargo.toml index 84496a39e..7fba675cd 100644 --- a/crates/akita-sis-estimator/Cargo.toml +++ b/crates/akita-sis-estimator/Cargo.toml @@ -21,6 +21,7 @@ libm = "0.2" num-bigint = "0.4.6" num-traits = "0.2" rayon = { version = "1.10", optional = true } +sha3 = "0.10.8" thiserror = "2.0" [dev-dependencies] diff --git a/crates/akita-sis-estimator/examples/infinity_width_table.rs b/crates/akita-sis-estimator/examples/infinity_width_table.rs index 2bfee9d1f..79fbf4458 100644 --- a/crates/akita-sis-estimator/examples/infinity_width_table.rs +++ b/crates/akita-sis-estimator/examples/infinity_width_table.rs @@ -1,11 +1,13 @@ use akita_sis_estimator::{ width_table::{ - generate_infinity_width_rows, is_full_infinity_width_table_config, rust_table_arms, - validate_infinity_width_rows, InfinityWidthProfile, InfinityWidthRow, - InfinityWidthTableConfig, + generate_infinity_width_rows, is_production_infinity_width_table_config, + runtime_width_rows, validate_infinity_width_rows, InfinityWidthProfile, InfinityWidthRow, + InfinityWidthTableConfig, RuntimeWidthRow, PRODUCTION_CERTIFICATE_DOMAIN, }, AkitaModulusProfileId, }; +use num_traits::ToPrimitive; +use sha3::{Digest, Sha3_256}; use std::{ env, fs, io::{self, Write}, @@ -30,12 +32,8 @@ enum OutputFormat { fn main() { let args = Args::parse_or_exit(); - if args.format == OutputFormat::RustSplit && !is_full_infinity_width_table_config(&args.config) - { - fatal( - "rust-split output requires the complete production table config; use CSV for partial comparison jobs", - ); - } + validate_output_request(args.format, args.skip_validation, &args.config) + .unwrap_or_else(|error| fatal(error)); let t0 = Instant::now(); let rows = generate_infinity_width_rows(&args.config) .unwrap_or_else(|error| fatal(&format!("width-table generation failed: {error}"))); @@ -56,6 +54,25 @@ fn main() { ); } +fn validate_output_request( + format: OutputFormat, + skip_validation: bool, + config: &InfinityWidthTableConfig, +) -> Result<(), &'static str> { + if format != OutputFormat::RustSplit { + return Ok(()); + } + if skip_validation { + return Err("rust-split output requires table validation"); + } + if !is_production_infinity_width_table_config(config) { + return Err( + "rust-split output requires the complete certified production table config; use CSV for comparison profiles or partial jobs", + ); + } + Ok(()) +} + impl Args { fn parse_or_exit() -> Self { let mut config = InfinityWidthTableConfig::default(); @@ -133,25 +150,38 @@ fn write_rust_split( Path::new(env!("CARGO_MANIFEST_DIR")).join("../akita-types/src/sis/generated_sis_table"); let out_dir = output.unwrap_or(default_out_dir.as_path()); fs::create_dir_all(out_dir)?; - fs::write( - out_dir.join("mod.rs"), - rust_mod_source(config.policy, config.profile), - )?; - let arms = rust_table_arms(rows, config.max_rank); + let runtime_rows = runtime_width_rows(rows, config.max_rank).map_err(io::Error::other)?; + let mut generated_files = Vec::new(); for modulus_profile in [ AkitaModulusProfileId::Q32Offset99, AkitaModulusProfileId::Q64Offset59, AkitaModulusProfileId::Q128OffsetA7F7, ] { - fs::write( - out_dir.join(format!("{}.rs", modulus_profile.label())), + generated_files.push(( + format!("{}.rs", modulus_profile.label()), rust_modulus_profile_source( modulus_profile, config.policy, config.profile, - arms.get(&modulus_profile).map(Vec::as_slice).unwrap_or(&[]), + runtime_rows + .iter() + .filter(|row| row.modulus_profile == modulus_profile), ), - )?; + )); + } + generated_files.push(("policy_audit.csv".to_string(), policy_audit_source(rows))); + generated_files.push(( + "policy_review.txt".to_string(), + policy_review_source(rows, config), + )); + let base_digest = table_digest(&generated_files)?; + let d512_digest = q128_inner_d512_digest(base_digest, &runtime_rows, config)?; + fs::write( + out_dir.join("mod.rs"), + rust_mod_source(config.policy, config.profile, base_digest, d512_digest), + )?; + for (filename, contents) in generated_files { + fs::write(out_dir.join(filename), contents)?; } Ok(()) } @@ -159,29 +189,40 @@ fn write_rust_split( fn rust_mod_source( policy: akita_sis_estimator::SisSecurityPolicy, profile: InfinityWidthProfile, + base_digest: [u8; 32], + d512_digest: [u8; 32], ) -> String { format!( - "{}mod q128;\nmod q32;\nmod q64;\n\nuse super::{{SisModulusProfileId, SisSecurityPolicyId}};\n\n/// Generated SIS max-width table for the named security policy.\n///\n/// Runtime keys are `(d, coeff_linf_bound) -> widths[rank - 1]`, projected from\n/// scalar cutoffs as `width = cutoff_m(B, n = rank * d) / d`.\n#[rustfmt::skip]\npub(crate) fn sis_max_widths(\n policy: SisSecurityPolicyId,\n modulus_profile: SisModulusProfileId,\n d: u32,\n coeff_linf_bound: u128,\n) -> Option<&'static [u64]> {{\n if policy != SisSecurityPolicyId::{} {{\n return None;\n }}\n match modulus_profile {{\n SisModulusProfileId::Q32Offset99 => q32::sis_max_widths(d, coeff_linf_bound),\n SisModulusProfileId::Q64Offset59 => q64::sis_max_widths(d, coeff_linf_bound),\n SisModulusProfileId::Q128OffsetA7F7 => q128::sis_max_widths(d, coeff_linf_bound),\n }}\n}}\n", + "{}mod q128;\nmod q32;\nmod q64;\n\nuse super::{{SisModulusProfileId, SisSecurityPolicyId}};\n\n/// SHA3-256 identity of the generated base table and provenance files.\npub(super) const SIS_TABLE_DIGEST: [u8; 32] = {};\n\n/// SHA3-256 identity of the base table plus q128 Inner/512 coverage.\npub(super) const Q128_INNER_D512_DIGEST: [u8; 32] = {};\n\n/// Generated SIS max-width table for the named security policy.\n///\n/// Runtime keys are `(d, coeff_linf_bound) -> widths[rank - 1]`, projected from\n/// scalar cutoffs as `width = cutoff_m(B, n = rank * d) / d`.\n#[rustfmt::skip]\npub(crate) fn sis_max_widths(\n policy: SisSecurityPolicyId,\n modulus_profile: SisModulusProfileId,\n d: u32,\n coeff_linf_bound: u128,\n) -> Option<&'static [u64]> {{\n if policy != SisSecurityPolicyId::{} {{\n return None;\n }}\n match modulus_profile {{\n SisModulusProfileId::Q32Offset99 => q32::sis_max_widths(d, coeff_linf_bound),\n SisModulusProfileId::Q64Offset59 => q64::sis_max_widths(d, coeff_linf_bound),\n SisModulusProfileId::Q128OffsetA7F7 => q128::sis_max_widths(d, coeff_linf_bound),\n }}\n}}\n", table_header(policy, profile), + rust_byte_array(base_digest), + rust_byte_array(d512_digest), policy.label(), ) } -fn rust_modulus_profile_source( +fn rust_modulus_profile_source<'a>( modulus_profile: AkitaModulusProfileId, policy: akita_sis_estimator::SisSecurityPolicy, profile: InfinityWidthProfile, - arms: &[String], + rows: impl Iterator, ) -> String { let mut source = format!( "{}// Profile: {}\n\n#[rustfmt::skip]\npub(super) fn sis_max_widths(d: u32, coeff_linf_bound: u128) -> Option<&'static [u64]> {{\n match (d, coeff_linf_bound) {{\n", table_header(policy, profile), modulus_profile.label() ); - for arm in arms { - source.push_str(" "); - source.push_str(arm); - source.push('\n'); + for row in rows { + let widths = row + .widths + .iter() + .map(u64::to_string) + .collect::>() + .join(", "); + source.push_str(&format!( + " ({}, {}) => Some(&[{}]),\n", + row.d, row.coeff_linf_bound, widths + )); } source.push_str(" _ => None,\n }\n}\n"); source @@ -192,12 +233,179 @@ fn table_header( profile: InfinityWidthProfile, ) -> String { format!( - "// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand.\n//\n// SIS max-width tables for {}.\n// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits.\n// Each row records the selected optimizer's accepted cutoff and rejected successor.\n// Shape and norm: LGSA, coefficient L-infinity.\n// Rust estimator path: akita-sis-estimator::width_table.\n// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank.\n// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d.\n// Optimizer profile: {}; D512 uses lattice-estimator-local-minimum.\n\n", + "// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand.\n//\n// SIS max-width tables for {}.\n// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits.\n// Each row records the selected optimizer's accepted cutoff and rejected successor.\n// Shape and norm: LGSA, coefficient L-infinity.\n// Rust estimator path: akita-sis-estimator::width_table.\n// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank.\n// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d.\n// Optimizer profile: {}.\n\n", policy.label(), profile.label() ) } +fn policy_audit_source(rows: &[InfinityWidthRow]) -> String { + let mut source = String::from(InfinityWidthRow::csv_header()); + source.push('\n'); + for row in rows { + source.push_str(&row.to_csv_record()); + source.push('\n'); + } + source +} + +fn policy_review_source(rows: &[InfinityWidthRow], config: &InfinityWidthTableConfig) -> String { + let cap_hits = rows.iter().filter(|row| row.hit_cap).count(); + let mut source = format!( + "Akita SIS generated-table policy review\n\ +policy={}\n\ +estimator_revision=akita-sis-estimator-adps16-quantum-lgsa-v1\n\ +optimizer_profile={}\n\ +certificate_domain={}\n\ +modulus_profiles=q32:2^32-99,q64:2^64-59,q128:2^128-(2^32-22537)\n\ +norm=coefficient-l-infinity\n\ +shape=LGSA\n\ +adps16_quantum_exponent=0.2650\n\ +target_log2_rop={:.1}\n\ +max_module_rank={}\n\ +search_cap={}\n\ +generated_ring_origin_rows={}\n\ +exact_boundaries={}\n\ +cap_hits={}\n\ +monotonicity=validated across rank and coefficient-bound axes\n\ +structured_attack_review=The scalarized estimate does not model ring/module structure, CRT splitting, subfield projection, or role-specific matrix structure. No extra numerical adjustment is applied; public claims remain explicitly limited to the scalarized ADPS16 quantum LGSA attack model.\n", + config.policy.label(), + config.profile.label(), + PRODUCTION_CERTIFICATE_DOMAIN, + config + .policy + .adps16_quantum_constraint() + .minimum_log2_rop, + config.max_rank, + config + .search_cap + .unwrap_or(akita_sis_estimator::width_table::DEFAULT_SEARCH_CAP), + rows.len(), + rows.len() - cap_hits, + cap_hits, + ); + source.push_str("role_coverage_columns=role,modulus_profile,d,coeff_linf_bound,max_module_rank,required_max_width\n"); + for profile in [ + akita_types::sis::SisModulusProfileId::Q32Offset99, + akita_types::sis::SisModulusProfileId::Q64Offset59, + akita_types::sis::SisModulusProfileId::Q128OffsetA7F7, + ] { + for &role in akita_types::sis::SIS_MATRIX_ROLES { + for &d in akita_sis_estimator::width_table::RING_DIMS.iter() { + for &bound in akita_types::sis::COEFF_LINF_BUCKETS { + if let Some(cell) = akita_types::sis::sis_role_cell(role, profile, d, bound) { + source.push_str(&format!( + "role_coverage={},{},{},{},{},{}\n", + role.name(), + profile.name(), + cell.ring_dimension, + cell.coeff_linf_bound, + cell.max_module_rank, + cell.required_max_width, + )); + } + } + } + } + } + source +} + +fn table_digest(files: &[(String, String)]) -> io::Result<[u8; 32]> { + const DOMAIN: &[u8] = b"akita-sis-table-digest-adps16-quantum-128bit\0"; + let mut hasher = Sha3_256::new(); + hasher.update(DOMAIN); + for required_name in [ + "q32.rs", + "q64.rs", + "q128.rs", + "policy_audit.csv", + "policy_review.txt", + ] { + let contents = files + .iter() + .find_map(|(name, contents)| (name == required_name).then_some(contents.as_bytes())) + .ok_or_else(|| io::Error::other(format!("missing generated file {required_name}")))?; + hasher.update( + u64::try_from(contents.len()) + .map_err(io::Error::other)? + .to_le_bytes(), + ); + hasher.update(required_name.as_bytes()); + hasher.update([0]); + hasher.update(contents); + } + Ok(hasher.finalize().into()) +} + +fn q128_inner_d512_digest( + base_digest: [u8; 32], + runtime_rows: &[RuntimeWidthRow], + config: &InfinityWidthTableConfig, +) -> io::Result<[u8; 32]> { + const DOMAIN: &[u8] = b"akita-sis-table-q128-inner-d512-direct-v1\0"; + const D: u32 = 512; + let q128 = AkitaModulusProfileId::Q128OffsetA7F7 + .modulus() + .to_u128() + .ok_or_else(|| io::Error::other("q128 modulus does not fit u128"))?; + let rows = runtime_rows + .iter() + .filter(|row| row.modulus_profile == AkitaModulusProfileId::Q128OffsetA7F7 && row.d == D) + .collect::>(); + if rows.len() != akita_sis_estimator::width_table::COEFF_LINF_BUCKETS.len() { + return Err(io::Error::other( + "q128 Inner/512 coverage does not contain every canonical coefficient bucket", + )); + } + let mut hasher = Sha3_256::new(); + hasher.update(DOMAIN); + hasher.update(base_digest); + hasher.update(q128.to_le_bytes()); + hasher.update(D.to_le_bytes()); + hasher.update( + config + .search_cap + .unwrap_or(akita_sis_estimator::width_table::DEFAULT_SEARCH_CAP) + .to_le_bytes(), + ); + hasher.update(config.max_rank.to_le_bytes()); + hasher.update( + u64::try_from(rows.len()) + .map_err(io::Error::other)? + .to_le_bytes(), + ); + for row in &rows { + hasher.update(u128::from(row.coeff_linf_bound).to_le_bytes()); + } + for row in rows { + if row.widths.len() != config.max_rank as usize { + return Err(io::Error::other("incomplete q128 Inner/512 rank row")); + } + for &width in &row.widths { + hasher.update(width.to_le_bytes()); + } + } + Ok(hasher.finalize().into()) +} + +fn rust_byte_array(bytes: [u8; 32]) -> String { + let mut output = String::from("[\n"); + for chunk in bytes.chunks(16) { + output.push_str(" "); + output.push_str( + &chunk + .iter() + .map(|byte| format!("0x{byte:02x}")) + .collect::>() + .join(", "), + ); + output.push_str(",\n"); + } + output.push(']'); + output +} + fn parse_profiles(raw: &str) -> Vec { raw.split(',') .filter(|value| !value.trim().is_empty()) @@ -274,3 +482,31 @@ fn fatal(message: &str) -> ! { eprintln!("error: {message}"); process::exit(2); } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn production_rust_output_requires_the_certified_profile() { + let mut config = InfinityWidthTableConfig::default(); + config.profile = InfinityWidthProfile::LatticeEstimatorParity; + assert!(validate_output_request(OutputFormat::RustSplit, false, &config).is_err()); + assert!(validate_output_request(OutputFormat::Csv, false, &config).is_ok()); + } + + #[test] + fn production_rust_output_requires_validation() { + let config = InfinityWidthTableConfig::default(); + assert!(validate_output_request(OutputFormat::RustSplit, true, &config).is_err()); + assert!(validate_output_request(OutputFormat::RustSplit, false, &config).is_ok()); + } + + #[test] + fn policy_review_records_the_canonical_certificate_domain() { + let source = policy_review_source(&[], &InfinityWidthTableConfig::default()); + assert!(source.contains(&format!( + "certificate_domain={PRODUCTION_CERTIFICATE_DOMAIN}\n" + ))); + } +} diff --git a/crates/akita-sis-estimator/examples/sis_estimator_once.rs b/crates/akita-sis-estimator/examples/sis_estimator_once.rs index 8b58cabce..bf7236e86 100644 --- a/crates/akita-sis-estimator/examples/sis_estimator_once.rs +++ b/crates/akita-sis-estimator/examples/sis_estimator_once.rs @@ -1,3 +1,4 @@ +use akita_sis_estimator::width_table::InfinityWidthProfile; use akita_sis_estimator::{ cost_infinity, cost_zeta, estimate, scalar_sis_from_ring, AkitaModulusProfileId, Bound, CostValue, EstimateConfig, OptimizerConfig, SearchMode, SisNorm, SisParameters, @@ -19,6 +20,7 @@ enum Mode { #[derive(Clone, Copy, Debug, PartialEq, Eq)] enum Profile { LocalMinimum, + ProvenPruned, ExhaustiveSerial, ExhaustiveParallel, } @@ -212,20 +214,16 @@ impl Profile { fn config(self) -> EstimateConfig { match self { Self::LocalMinimum => EstimateConfig::lattice_estimator_parity(), - Self::ExhaustiveSerial => EstimateConfig::akita_infinity_table(), - Self::ExhaustiveParallel => EstimateConfig { - optimizer: OptimizerConfig::OptimizeZeta { - beta: SearchMode::ExhaustiveParallel, - zeta: SearchMode::ExhaustiveParallel, - }, - ..EstimateConfig::default() - }, + Self::ProvenPruned => EstimateConfig::akita_infinity_table(), + Self::ExhaustiveSerial => InfinityWidthProfile::ExhaustiveSerial.config(), + Self::ExhaustiveParallel => InfinityWidthProfile::ExhaustiveParallel.config(), } } const fn beta_search_mode(self) -> SearchMode { match self { Self::LocalMinimum => SearchMode::PythonLocalMinimum, + Self::ProvenPruned => SearchMode::Exhaustive, Self::ExhaustiveSerial => SearchMode::Exhaustive, Self::ExhaustiveParallel => SearchMode::ExhaustiveParallel, } @@ -244,10 +242,13 @@ fn parse_mode(value: &str) -> Mode { fn parse_profile(value: &str) -> Profile { match value { "local-minimum" | "local_minimum" => Profile::LocalMinimum, + "proven-pruned" | "proven_pruned" => Profile::ProvenPruned, "exhaustive-serial" | "exhaustive_serial" => Profile::ExhaustiveSerial, "exhaustive-parallel" | "exhaustive_parallel" => Profile::ExhaustiveParallel, _ => { - fatal("--profile must be one of: local-minimum, exhaustive-serial, exhaustive-parallel") + fatal( + "--profile must be one of: local-minimum, proven-pruned, exhaustive-serial, exhaustive-parallel", + ) } } } @@ -282,7 +283,7 @@ fn optional_u64_text(value: Option) -> String { fn usage(code: i32) -> ! { eprintln!( - "usage: sis_estimator_once --family q32|q64|q128 (--n N --m N | --d N --rank N --width N) --coeff-linf-bound N [--mode estimate|fixed|zeta] [--profile local-minimum|exhaustive-serial|exhaustive-parallel] [--beta N] [--zeta N] [--iterations N]" + "usage: sis_estimator_once --family q32|q64|q128 (--n N --m N | --d N --rank N --width N) --coeff-linf-bound N [--mode estimate|fixed|zeta] [--profile local-minimum|proven-pruned|exhaustive-serial|exhaustive-parallel] [--beta N] [--zeta N] [--iterations N]" ); process::exit(code); } @@ -291,3 +292,36 @@ fn fatal(message: &str) -> ! { eprintln!("error: {message}"); process::exit(2); } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn exhaustive_serial_profile_exhausts_beta_and_zeta() { + assert_eq!( + Profile::ExhaustiveSerial.config().optimizer, + OptimizerConfig::OptimizeZeta { + beta: SearchMode::Exhaustive, + zeta: SearchMode::Exhaustive, + } + ); + } + + #[test] + fn exhaustive_profiles_use_the_quantum_lgsa_model() { + for profile in [Profile::ExhaustiveSerial, Profile::ExhaustiveParallel] { + let config = profile.config(); + assert_eq!( + config.red_cost_model, + akita_sis_estimator::ReductionCostModel::Adps16 { + mode: akita_sis_estimator::Adps16Mode::Quantum, + } + ); + assert_eq!( + config.red_shape_model, + akita_sis_estimator::ShapeModel::Lgsa + ); + } + } +} diff --git a/crates/akita-sis-estimator/src/config.rs b/crates/akita-sis-estimator/src/config.rs index f7d8be276..40e96f1c1 100644 --- a/crates/akita-sis-estimator/src/config.rs +++ b/crates/akita-sis-estimator/src/config.rs @@ -177,7 +177,7 @@ pub enum SearchMode { Exhaustive, /// Exhaustively scan in parallel. ExhaustiveParallel, - /// Future pruned search with a proof that skipped cells cannot win. + /// Production ADPS16/LGSA zeta search using the proven profile endpoints. ProvenPruned, } @@ -200,8 +200,8 @@ pub struct EstimateConfig { } impl EstimateConfig { - /// Akita infinity table generation profile: ADPS16 quantum + LGSA with - /// exhaustive beta and zeta search. + /// Akita infinity table certificate profile: ADPS16 quantum + LGSA with + /// proven-pruned beta and zeta search. #[must_use] pub fn akita_infinity_table() -> Self { Self { @@ -210,7 +210,7 @@ impl EstimateConfig { }, optimizer: OptimizerConfig::OptimizeZeta { beta: SearchMode::Exhaustive, - zeta: SearchMode::Exhaustive, + zeta: SearchMode::ProvenPruned, }, ..Self::default() } diff --git a/crates/akita-sis-estimator/src/euclidean_width_table.rs b/crates/akita-sis-estimator/src/euclidean_width_table.rs index 34cf49884..659dd5d02 100644 --- a/crates/akita-sis-estimator/src/euclidean_width_table.rs +++ b/crates/akita-sis-estimator/src/euclidean_width_table.rs @@ -6,7 +6,7 @@ use crate::{ cost::{CostValue, EstimateTag, LatticeCost, LogCost}, error::{EstimatorError, Result}, estimate, - width_table::{D128_SEARCH_CAP, DEFAULT_MAX_RANK, DEFAULT_SEARCH_CAP, RING_DIMS}, + width_table::{D128_SEARCH_CAP, DEFAULT_MAX_RANK, DEFAULT_SEARCH_CAP}, }; #[cfg(feature = "parallel")] use rayon::prelude::*; @@ -14,6 +14,14 @@ use std::collections::{BTreeMap, BTreeSet}; /// Current shipped L2 table target security level. pub const DEFAULT_EUCLIDEAN_TARGET_BITS: f64 = 128.0; +/// Exact modulus domain owned by the independent Euclidean table. +pub const EUCLIDEAN_FAMILIES: &[AkitaModulusProfileId] = &[ + AkitaModulusProfileId::Q32Offset99, + AkitaModulusProfileId::Q64Offset59, + AkitaModulusProfileId::Q128OffsetA7F7, +]; +/// Exact ring-dimension domain owned by the independent Euclidean table. +pub const EUCLIDEAN_RING_DIMS: &[u32] = &[32, 64, 128, 256, 512]; /// Smallest squared-collision power-of-two bucket in the shipped L2 table. pub const MIN_LOG_BUCKET: u32 = 1; /// Largest squared-collision power-of-two bucket in the shipped L2 table. @@ -24,13 +32,6 @@ pub const COEFF_LINF_BUCKETS: &[u64] = &[ 262_143, 524_287, 1_048_575, 2_097_151, 4_194_303, 8_388_607, 16_777_215, 33_554_431, 67_108_863, ]; -/// Modulus families covered by Akita SIS table generation. -pub const FAMILIES: &[AkitaModulusProfileId] = &[ - AkitaModulusProfileId::Q32Offset99, - AkitaModulusProfileId::Q64Offset59, - AkitaModulusProfileId::Q128OffsetA7F7, -]; - /// One Euclidean max-width generation request. #[derive(Clone, Debug, PartialEq)] pub struct EuclideanWidthTableConfig { @@ -51,8 +52,8 @@ pub struct EuclideanWidthTableConfig { impl Default for EuclideanWidthTableConfig { fn default() -> Self { Self { - families: FAMILIES.to_vec(), - ring_dims: RING_DIMS.to_vec(), + families: EUCLIDEAN_FAMILIES.to_vec(), + ring_dims: EUCLIDEAN_RING_DIMS.to_vec(), collision_l2_sq: l2_table_collision_keys(), max_rank: DEFAULT_MAX_RANK, target_bits: DEFAULT_EUCLIDEAN_TARGET_BITS, @@ -64,8 +65,8 @@ impl Default for EuclideanWidthTableConfig { /// Return whether `config` is the complete production L2 SIS width-table job. #[must_use] pub fn is_full_euclidean_width_table_config(config: &EuclideanWidthTableConfig) -> bool { - same_set(&config.families, FAMILIES) - && same_set(&config.ring_dims, RING_DIMS) + same_set(&config.families, EUCLIDEAN_FAMILIES) + && same_set(&config.ring_dims, EUCLIDEAN_RING_DIMS) && same_set(&config.collision_l2_sq, &l2_table_collision_keys()) && config.max_rank == DEFAULT_MAX_RANK && config.target_bits == DEFAULT_EUCLIDEAN_TARGET_BITS @@ -146,7 +147,7 @@ pub fn power_of_two_collision_keys() -> Vec { #[must_use] pub fn derived_l2_collision_keys() -> Vec { let mut keys = BTreeSet::new(); - for &d in RING_DIMS { + for &d in EUCLIDEAN_RING_DIMS { for &bound in COEFF_LINF_BUCKETS { keys.insert(u128::from(d) * coeff_linf_bucket_sq(bound)); } diff --git a/crates/akita-sis-estimator/src/lattice.rs b/crates/akita-sis-estimator/src/lattice.rs index 45e105ef2..3d4dfca7f 100644 --- a/crates/akita-sis-estimator/src/lattice.rs +++ b/crates/akita-sis-estimator/src/lattice.rs @@ -197,10 +197,10 @@ fn infinity_log_trial_probability( ) -> Result { let d_ = effective_dimension as f64; if ((lattice_dimension as f64).sqrt() * length_bound) <= 2.0_f64.powf(log_q) { - let vector_length = rho * profile[0].sqrt(); - let sigma = vector_length / d_.sqrt(); - let erf_arg = length_bound / (2.0_f64.sqrt() * sigma); - Ok(d_ * log2_positive(erf(erf_arg))) + let log2_sigma = + log2_positive(rho) + 0.5 * log2_positive(profile[0]) - 0.5 * log2_positive(d_); + let log2_erf_arg = log2_positive(length_bound) - 0.5 - log2_sigma; + Ok(d_ * log2_erf_from_log2_arg(log2_erf_arg)) } else { dilithium_log_trial_probability(log_q, length_bound, profile, sieve_dim) } @@ -265,11 +265,10 @@ fn dilithium_log_trial_probability( .iter() .rposition(|value| value.sqrt() > 1.0 + UNIT_VECTOR_TOLERANCE) .map_or(profile.len() - 1, |index| index); - let vector_length = profile[idx_start].sqrt(); let gaussian_coords = (idx_end - idx_start + 1).max(sieve_dim as usize) as f64; - let sigma = vector_length / gaussian_coords.sqrt(); - let erf_arg = length_bound / (2.0_f64.sqrt() * sigma); - let mut log_trial_prob = log2_positive(erf(erf_arg)) * gaussian_coords; + let log2_sigma = 0.5 * log2_positive(profile[idx_start]) - 0.5 * log2_positive(gaussian_coords); + let log2_erf_arg = log2_positive(length_bound) - 0.5 - log2_sigma; + let mut log_trial_prob = log2_erf_from_log2_arg(log2_erf_arg) * gaussian_coords; log_trial_prob += log2_positive((2.0 * length_bound + 1.0) / q_f) * idx_start as f64; Ok(log_trial_prob) } diff --git a/crates/akita-sis-estimator/src/optimizer.rs b/crates/akita-sis-estimator/src/optimizer.rs index e2db353dd..fbfa21ba4 100644 --- a/crates/akita-sis-estimator/src/optimizer.rs +++ b/crates/akita-sis-estimator/src/optimizer.rs @@ -3,13 +3,17 @@ use std::collections::HashSet; use crate::{ - config::{EstimateConfig, OptimizerConfig, SearchMode}, + config::{EstimateConfig, OptimizerConfig, ReductionCostModel, SearchMode, ShapeModel}, cost::{CostValue, LatticeCost}, error::{EstimatorError, Result}, lattice::cost_infinity_fixed, math::{log2_biguint, log2_positive}, params::{Bound, SisParameters}, - reduction::delta::{beta as beta_from_delta, BETA_SEARCH_MAX}, + reduction::{ + adps16_log2_cost, + delta::{beta as beta_from_delta, BETA_SEARCH_MAX}, + }, + simulator::lgsa_stable_dimension, }; use num_traits::{One, ToPrimitive}; #[cfg(feature = "parallel")] @@ -92,12 +96,84 @@ fn cost_zeta_search( })? .ok_or_else(empty_range_error("zeta")) } - SearchMode::ProvenPruned => Err(EstimatorError::Unsupported { - feature: "proven-pruned zeta search", - }), + SearchMode::ProvenPruned => proven_pruned_zeta_search(beta_mode, params, config), } } +fn proven_pruned_zeta_search( + beta_mode: SearchMode, + params: &SisParameters, + config: &EstimateConfig, +) -> Result { + let adps16_mode = match config.red_cost_model { + ReductionCostModel::Adps16 { mode } => mode, + _ => { + return Err(EstimatorError::Unsupported { + feature: "proven-pruned zeta search outside exhaustive ADPS16/LGSA", + }) + } + }; + if config.red_shape_model != ShapeModel::Lgsa + || !matches!( + beta_mode, + SearchMode::Exhaustive | SearchMode::ExhaustiveParallel + ) + { + return Err(EstimatorError::Unsupported { + feature: "proven-pruned zeta search outside exhaustive ADPS16/LGSA", + }); + } + + let m = explicit_m(params)?; + let lattice_dimension = config.lattice_dimension.unwrap_or(m).min(m); + let beta_stop = beta_search_stop(params, config)?; + let beta_start = MIN_BETA.min(beta_stop); + let mut best = None::; + + for beta in beta_start..beta_stop.max(beta_start.saturating_add(1)) { + // ADPS16's fixed-beta reduction price is a lower bound on the total + // attack cost. Once it exceeds the best complete candidate, every + // larger beta is provably unable to win. + if best + .as_ref() + .is_some_and(|current| adps16_log2_cost(beta, adps16_mode) > cost_order(current.rop)) + { + break; + } + // For fixed beta, LGSA has two dimension regimes. Before the stable + // dimension its q-ary/GSA prefix grows to the complete profile; after + // it, added coordinates are unit vectors. In the first regime the + // modeled attack cost is minimized at the complete-profile endpoint. + // In the stable regime the Dilithium branch is constant, while the + // Matzov branch has a single interior maximum in attack cost, so its + // minimum is at one of the two endpoints. Therefore the stable + // transition and its immediate predecessor, together with zeta=0 and + // zeta=1, cover the complete zeta domain for each beta. The predecessor + // points retain the q-vector transition used by lattice-estimator. + let stable_dimension = lgsa_stable_dimension(u64::from(params.n), ¶ms.q, beta)? + .clamp(u64::from(beta), lattice_dimension); + let before_stable = stable_dimension.saturating_sub(1).max(u64::from(beta)); + let before_full = lattice_dimension.saturating_sub(1).max(u64::from(beta)); + for effective_dimension in [ + before_stable, + stable_dimension, + before_full, + lattice_dimension, + ] { + let zeta = lattice_dimension - effective_dimension; + let candidate = cost_infinity_fixed(beta, params, zeta, config)?; + if best + .as_ref() + .is_none_or(|current| cost_leq(&candidate, current)) + { + best = Some(candidate); + } + } + } + + best.ok_or_else(empty_range_error("zeta")) +} + fn cost_zeta_with_mode( zeta: u64, beta_mode: SearchMode, @@ -192,7 +268,7 @@ where let mut direction = -1i8; let mut next_x = Some(search_stop); let mut best_x = None; - let mut best = None; + let mut best = None::; let mut seen = HashSet::new(); while let Some(x) = next_search_x(next_x, &seen, initial_low, initial_high) { @@ -200,10 +276,12 @@ where let candidate = f(x.saturating_mul(precision))?; seen.insert(x); - let is_better = match &best { - None => true, - Some(current) => cost_leq(&candidate, current), - }; + let is_equal = best + .as_ref() + .is_some_and(|current| cost_order(candidate.rop) == cost_order(current.rop)); + let is_better = best + .as_ref() + .is_none_or(|current| cost_leq(&candidate, current)); if best_x.is_none() { best_x = Some(x); best = Some(candidate.clone()); @@ -211,7 +289,14 @@ where if is_better { best_x = Some(x); best = Some(candidate); - if direction.unsigned_abs() != 1 { + if is_equal && direction == -1 { + // Preserve lattice-estimator's preference for the lowest + // zeta on an equal-cost plateau, but bisect the plateau rather + // than walking it one coordinate at a time. + direction = -2; + search_stop = x; + next_x = Some(ceil_div(search_start + search_stop, 2)); + } else if direction.unsigned_abs() != 1 { direction = -1; next_x = x.checked_sub(1); } else if direction == -1 { @@ -448,3 +533,52 @@ fn sage_sanity_check(mut cost: LatticeCost) -> LatticeCost { } cost } + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ + config::Adps16Mode, + params::{akita_q128, akita_q32, akita_q64, SisNorm}, + }; + + fn exhaustive_config(zeta: SearchMode) -> EstimateConfig { + EstimateConfig { + red_cost_model: ReductionCostModel::Adps16 { + mode: Adps16Mode::Quantum, + }, + red_shape_model: ShapeModel::Lgsa, + optimizer: OptimizerConfig::OptimizeZeta { + beta: SearchMode::Exhaustive, + zeta, + }, + ..EstimateConfig::default() + } + } + + #[test] + fn proven_pruned_matches_finite_exhaustive_domains() { + let cases = [ + (32, akita_q32(), 384, 2), + (64, akita_q32(), 768, 127), + (64, akita_q64(), 768, 32_767), + (128, akita_q64(), 1_024, 1_048_575), + (64, akita_q128(), 768, 67_108_863), + (128, akita_q128(), 1_024, 536_870_911), + ]; + for (n, q, m, bound) in cases { + let params = + SisParameters::try_new(n, q, Some(m), Bound::from_u64(bound), SisNorm::Infinity) + .unwrap(); + let exhaustive = + estimate_infinity(¶ms, &exhaustive_config(SearchMode::Exhaustive)).unwrap(); + let pruned = + estimate_infinity(¶ms, &exhaustive_config(SearchMode::ProvenPruned)).unwrap(); + assert_eq!( + cost_order(pruned.rop), + cost_order(exhaustive.rop), + "n={n} m={m} bound={bound}: pruned={pruned:?}, exhaustive={exhaustive:?}" + ); + } + } +} diff --git a/crates/akita-sis-estimator/src/simulator/lgsa.rs b/crates/akita-sis-estimator/src/simulator/lgsa.rs index 8d37b4588..ac8c151d6 100644 --- a/crates/akita-sis-estimator/src/simulator/lgsa.rs +++ b/crates/akita-sis-estimator/src/simulator/lgsa.rs @@ -25,6 +25,42 @@ pub struct LgsaSummary { pub log2_vector_length_at_idx_start: f64, } +/// Smallest dimension at which the LGSA profile has its full GSA prefix. +/// +/// For larger dimensions the non-unit part of the profile is unchanged: the +/// extra coordinates are unit vectors. This is the finite transition point +/// used by the proven-pruned zeta optimizer. +pub(crate) fn lgsa_stable_dimension(n: u64, q: &num_bigint::BigUint, beta: u32) -> Result { + if beta < 2 { + return Err(EstimatorError::InvalidParameter { + field: "beta", + reason: "LGSA requires beta >= 2".to_string(), + }); + } + + let log_vol = n as f64 * log2_biguint(q); + let step = 2.0 * delta(beta).log2(); + let mut count = if log_vol <= 0.0 { + 1 + } else { + (((1.0 + 8.0 * log_vol / step).sqrt() - 1.0) / 2.0).floor() as u64 + } + .max(1); + let profile_sum = |candidate: u64| step * candidate as f64 * (candidate as f64 + 1.0) / 2.0; + while profile_sum(count) <= log_vol { + count = count + .checked_add(1) + .ok_or(EstimatorError::InvalidParameter { + field: "n", + reason: "LGSA stable dimension overflow".to_string(), + })?; + } + while count > 1 && profile_sum(count - 1) > log_vol { + count -= 1; + } + Ok(count) +} + /// Return squared Gram-Schmidt norms for the LGSA profile. /// /// Mirrors `estimator.simulator.LGSA` with `xi=1` and `tau=False`. @@ -105,25 +141,20 @@ pub fn lgsa_summary( } let log_q = log2_biguint(q); - let log_vol = (d as f64 - identity_vectors as f64) * log_q; + let n = u64::try_from(d as i128 - identity_vectors).map_err(|_| { + EstimatorError::InvalidParameter { + field: "n", + reason: "LGSA q-ary dimension must be non-negative".to_string(), + } + })?; + let log_vol = n as f64 * log_q; let step = 2.0 * delta(beta).log2(); // The loop in the dense reference implementation sums the arithmetic // progression `step * k` until it exceeds `log_vol`. Solve the quadratic // directly, then correct the rounded candidate by at most a few steps. // This keeps the compact path genuinely compact when `m` is very large. - let mut num_gsa_vec = if log_vol <= 0.0 { - 1 - } else { - (((1.0 + 8.0 * log_vol / step).sqrt() - 1.0) / 2.0).floor() as u64 - }; - num_gsa_vec = num_gsa_vec.clamp(1, d); + let num_gsa_vec = lgsa_stable_dimension(n, q, beta)?.min(d); let profile_sum = |count: u64| step * count as f64 * (count as f64 + 1.0) / 2.0; - while num_gsa_vec < d && profile_sum(num_gsa_vec) <= log_vol { - num_gsa_vec += 1; - } - while num_gsa_vec > 1 && profile_sum(num_gsa_vec - 1) > log_vol { - num_gsa_vec -= 1; - } let profile_log_vol = profile_sum(num_gsa_vec); let shift = if num_gsa_vec > 0 { diff --git a/crates/akita-sis-estimator/src/simulator/mod.rs b/crates/akita-sis-estimator/src/simulator/mod.rs index 4bd85d1ad..0c171c6d8 100644 --- a/crates/akita-sis-estimator/src/simulator/mod.rs +++ b/crates/akita-sis-estimator/src/simulator/mod.rs @@ -7,6 +7,7 @@ pub mod zgsa; pub mod zgsa_tables; pub use gsa::gsa_squared_norms; +pub(crate) use lgsa::lgsa_stable_dimension; pub use lgsa::{lgsa_squared_norms, lgsa_summary, LgsaSummary}; pub use profile::ShapeProfile; pub use zgsa::zgsa_squared_norms; diff --git a/crates/akita-sis-estimator/src/width_table.rs b/crates/akita-sis-estimator/src/width_table.rs index b47eeed57..3e01d659e 100644 --- a/crates/akita-sis-estimator/src/width_table.rs +++ b/crates/akita-sis-estimator/src/width_table.rs @@ -15,38 +15,102 @@ use rayon::prelude::*; use std::collections::{BTreeMap, BTreeSet}; #[cfg(feature = "parallel")] use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::LazyLock; -/// Role-independent A coefficient cells used by the current planner domain. -pub const COEFF_LINF_BUCKETS: &[u64] = &[ - 2, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131_071, - 262_143, 524_287, 1_048_575, 2_097_151, 4_194_303, 8_388_607, 16_777_215, 33_554_431, - 67_108_863, -]; +mod boundary; -/// Ring dimensions included in the current reachable generation domain. -pub const RING_DIMS: &[u32] = &[32, 64, 128, 256, 512]; +use boundary::{certified_boundary_from_hint, max_true_in_prefix}; -/// Exact modulus profiles included in the generated artifact. -pub const FAMILIES: &[AkitaModulusProfileId] = &[ - AkitaModulusProfileId::Q32Offset99, - AkitaModulusProfileId::Q64Offset59, - AkitaModulusProfileId::Q128OffsetA7F7, -]; +/// Estimator projection of the runtime's canonical coefficient buckets. +pub static COEFF_LINF_BUCKETS: LazyLock> = LazyLock::new(|| { + akita_types::sis::COEFF_LINF_BUCKETS + .iter() + .map(|&bound| u64::try_from(bound).expect("runtime SIS bucket exceeds u64")) + .collect() +}); + +fn estimator_profile(profile: akita_types::sis::SisModulusProfileId) -> AkitaModulusProfileId { + match profile { + akita_types::sis::SisModulusProfileId::Q32Offset99 => AkitaModulusProfileId::Q32Offset99, + akita_types::sis::SisModulusProfileId::Q64Offset59 => AkitaModulusProfileId::Q64Offset59, + akita_types::sis::SisModulusProfileId::Q128OffsetA7F7 => { + AkitaModulusProfileId::Q128OffsetA7F7 + } + } +} + +fn canonical_scalar_origins() -> Vec<(AkitaModulusProfileId, u32, u64)> { + let mut origins = BTreeSet::new(); + origins.extend(akita_types::sis::sis_role_cells().into_iter().map(|cell| { + ( + estimator_profile(cell.modulus_profile), + cell.ring_dimension, + u64::try_from(cell.coeff_linf_bound).expect("canonical SIS bound exceeds u64"), + ) + })); + origins.extend( + akita_types::sis::compression::compression_sis_cells().map(|cell| { + ( + estimator_profile(cell.modulus_profile), + cell.ring_dimension, + u64::try_from(akita_types::sis::compression::COMPRESSION_SIS_COEFF_LINF_BOUND) + .expect("compression SIS bound exceeds u64"), + ) + }), + ); + origins.into_iter().collect() +} + +#[cfg(test)] +fn scalar_origin_is_canonical( + profile: AkitaModulusProfileId, + ring_dimension: u32, + coeff_linf_bound: u64, +) -> bool { + canonical_scalar_origins().contains(&(profile, ring_dimension, coeff_linf_bound)) +} + +/// Ring dimensions derived from the exact canonical role and compression cells. +pub static RING_DIMS: LazyLock> = LazyLock::new(|| { + canonical_scalar_origins() + .into_iter() + .map(|(_, dimension, _)| dimension) + .collect::>() + .into_iter() + .collect() +}); + +/// Modulus profiles derived from the exact canonical generation cells. +pub static FAMILIES: LazyLock> = LazyLock::new(|| { + canonical_scalar_origins() + .into_iter() + .map(|(profile, _, _)| profile) + .collect::>() + .into_iter() + .collect() +}); /// Maximum module rank emitted for each scalar row. -pub const DEFAULT_MAX_RANK: u32 = 20; +pub const DEFAULT_MAX_RANK: u32 = akita_types::sis::SIS_MAX_MODULE_RANK; /// Policy table search cap. -pub const DEFAULT_SEARCH_CAP: u64 = 6_400_000_000_000; +pub const DEFAULT_SEARCH_CAP: u64 = akita_types::sis::SIS_REQUIRED_MAX_WIDTH; /// Legacy L2 generator cap retained for the independent Euclidean table. /// The quantum infinity table itself uses [`DEFAULT_SEARCH_CAP`] uniformly. pub const D128_SEARCH_CAP: u64 = DEFAULT_SEARCH_CAP; +/// Search domain recorded for production boundary certificates. +pub const PRODUCTION_CERTIFICATE_DOMAIN: &str = concat!( + "proven-pruned beta from 40 to the capped Euclidean baseline, ", + "with ADPS16 lower-bound early stop; for each visited beta, ", + "LGSA complete-profile transition and predecessor plus zeta 0 and 1" +); + /// Optimizer profile used to discover and certify scalar boundaries. #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum InfinityWidthProfile { - /// Local minimum discovery followed by exhaustive boundary certification. + /// Local minimum discovery followed by proven-pruned boundary certification. LocalMinimum, /// Pinned lattice-estimator-compatible local-minimum beta and zeta search. LatticeEstimatorParity, @@ -60,7 +124,7 @@ impl InfinityWidthProfile { /// Stable provenance label. pub const fn label(self) -> &'static str { match self { - Self::LocalMinimum => "local-minimum+exhaustive-certification", + Self::LocalMinimum => "local-minimum+proven-pruned-certification", Self::LatticeEstimatorParity => "lattice-estimator-local-minimum", Self::ExhaustiveSerial => "exhaustive-serial", Self::ExhaustiveParallel => "exhaustive-parallel", @@ -76,7 +140,16 @@ impl InfinityWidthProfile { }, ..EstimateConfig::lattice_estimator_parity() }, - Self::ExhaustiveSerial => EstimateConfig::akita_infinity_table(), + Self::ExhaustiveSerial => EstimateConfig { + red_cost_model: ReductionCostModel::Adps16 { + mode: crate::config::Adps16Mode::Quantum, + }, + optimizer: OptimizerConfig::OptimizeZeta { + beta: SearchMode::Exhaustive, + zeta: SearchMode::Exhaustive, + }, + ..EstimateConfig::default() + }, Self::ExhaustiveParallel => EstimateConfig { red_cost_model: ReductionCostModel::Adps16 { mode: crate::config::Adps16Mode::Quantum, @@ -117,7 +190,7 @@ impl Default for InfinityWidthTableConfig { Self { profiles: FAMILIES.to_vec(), ring_dims: RING_DIMS.to_vec(), - coeff_linf_bounds: COEFF_LINF_BUCKETS.to_vec(), + coeff_linf_bounds: COEFF_LINF_BUCKETS.clone(), max_rank: DEFAULT_MAX_RANK, policy: SisSecurityPolicy::Quantum128BitADPS16, search_cap: None, @@ -127,14 +200,18 @@ impl Default for InfinityWidthTableConfig { } } -/// Whether a config is the complete current generation domain. -pub fn is_full_infinity_width_table_config(config: &InfinityWidthTableConfig) -> bool { - same_set(&config.profiles, FAMILIES) - && same_set(&config.ring_dims, RING_DIMS) - && same_set(&config.coeff_linf_bounds, COEFF_LINF_BUCKETS) +/// Whether a config may publish the canonical production artifact. +/// +/// Comparison profiles may generate CSV output, but production Rust output +/// must use the profile that certifies every discovered boundary. +pub fn is_production_infinity_width_table_config(config: &InfinityWidthTableConfig) -> bool { + same_set(&config.profiles, FAMILIES.as_slice()) + && same_set(&config.ring_dims, RING_DIMS.as_slice()) + && same_set(&config.coeff_linf_bounds, &COEFF_LINF_BUCKETS) && config.max_rank == DEFAULT_MAX_RANK && config.policy == SisSecurityPolicy::Quantum128BitADPS16 && config.search_cap.is_none() + && config.profile == InfinityWidthProfile::LocalMinimum } /// ADPS16 quantum certificate costs for one accepted or rejected boundary. @@ -233,16 +310,15 @@ pub fn generate_infinity_width_rows( validate_table_config(config)?; let estimator_config = config.profile.config(); let mut work = Vec::new(); - for &modulus_profile in &config.profiles { - for &d in &config.ring_dims { - for &bound in &config.coeff_linf_bounds { - if !reachable_role_cell(modulus_profile, d, bound) { - continue; - } - for rank in 1..=config.max_rank { - work.push((modulus_profile, d, rank, bound)); - } - } + for (modulus_profile, d, bound) in canonical_scalar_origins() { + if !config.profiles.contains(&modulus_profile) + || !config.ring_dims.contains(&d) + || !config.coeff_linf_bounds.contains(&bound) + { + continue; + } + for rank in 1..=config.max_rank { + work.push((modulus_profile, d, rank, bound)); } } if work.is_empty() { @@ -254,42 +330,6 @@ pub fn generate_infinity_width_rows( generate_rows_from_work(work, config, &estimator_config) } -/// Return whether a scalar origin is reachable from at least one canonical -/// matrix-role cell. The shared coverage declaration lives in `akita-types`; -/// this adapter only maps the estimator's modulus enum to that declaration. -fn reachable_role_cell( - modulus_profile: AkitaModulusProfileId, - ring_dimension: u32, - coeff_linf_bound: u64, -) -> bool { - let profile = match modulus_profile { - AkitaModulusProfileId::Q32Offset99 => akita_types::sis::SisModulusProfileId::Q32Offset99, - AkitaModulusProfileId::Q64Offset59 => akita_types::sis::SisModulusProfileId::Q64Offset59, - AkitaModulusProfileId::Q128OffsetA7F7 => { - akita_types::sis::SisModulusProfileId::Q128OffsetA7F7 - } - }; - let production_role = akita_types::sis::SIS_MATRIX_ROLES - .iter() - .copied() - .any(|role| { - akita_types::sis::ajtai_key::sis_role_cell( - role, - profile, - ring_dimension, - u128::from(coeff_linf_bound), - ) - .is_some() - }); - production_role - || akita_types::sis::compression::compression_sis_cell( - profile, - ring_dimension, - u128::from(coeff_linf_bound), - ) - .is_some() -} - #[cfg(feature = "parallel")] fn generate_rows_from_work( work: Vec<(AkitaModulusProfileId, u32, u32, u64)>, @@ -308,7 +348,17 @@ fn generate_rows_from_work( request.3, config, estimator_config, - ); + ) + .map_err(|error| EstimatorError::InvalidConfig { + field: "width_table_row", + reason: format!( + "profile={} d={} rank={} bound={}: {error}", + request.0.label(), + request.1, + request.2, + request.3 + ), + }); report_progress(config.progress_every, &completed, total); row }) @@ -327,14 +377,19 @@ fn generate_rows_from_work( let total = work.len(); let mut rows = Vec::with_capacity(work.len()); for (completed, (modulus_profile, d, rank, bound)) in work.into_iter().enumerate() { - rows.push(max_secure_width_row( - modulus_profile, - d, - rank, - bound, - config, - estimator_config, - )?); + rows.push( + max_secure_width_row(modulus_profile, d, rank, bound, config, estimator_config) + .map_err(|error| EstimatorError::InvalidConfig { + field: "width_table_row", + reason: format!( + "profile={} d={} rank={} bound={}: {error}", + modulus_profile.label(), + d, + rank, + bound + ), + })?, + ); report_progress(config.progress_every, completed + 1, total); } rows.sort_by_key(|row| (row.modulus_profile, row.coeff_linf_bound, row.d, row.rank)); @@ -394,21 +449,47 @@ pub fn validate_infinity_width_rows(rows: &[InfinityWidthRow]) -> Result<()> { validate_bound_monotonicity(rows) } -/// Convert ring-origin rows to runtime `(d, B) -> widths[rank]` match arms. +/// One runtime `(profile, d, B) -> widths[rank]` table row. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct RuntimeWidthRow { + /// Exact modulus profile. + pub modulus_profile: AkitaModulusProfileId, + /// Ring dimension. + pub d: u32, + /// Coefficient infinity bound. + pub coeff_linf_bound: u64, + /// Maximum secure input width at each one-based module rank. + pub widths: Vec, +} + +/// Project certified ring-origin rows to runtime `(d, B) -> widths[rank]` rows. /// /// Scalar certification still groups by `(B, n)` and takes the min `m`. The /// emitted runtime table projects those cutoffs onto each reachable ring /// dimension as `width[r - 1] = cutoff_m(B, n = r * d) / d`. -/// -pub fn rust_table_arms( +pub fn runtime_width_rows( rows: &[InfinityWidthRow], max_rank: u32, -) -> BTreeMap> { +) -> Result> { + if max_rank == 0 { + return invalid_config("max_rank", "max_rank must be positive"); + } let mut scalar = BTreeMap::<(AkitaModulusProfileId, u64, u64), u64>::new(); let mut pairs = BTreeSet::<(AkitaModulusProfileId, u32, u64)>::new(); for row in rows { let n = u64::from(row.d) * u64::from(row.rank); - let scalar_m = row.max_width.checked_mul(u64::from(row.d)).unwrap_or(0); + let scalar_m = row.max_width.checked_mul(u64::from(row.d)).ok_or_else(|| { + EstimatorError::InvalidConfig { + field: "rows", + reason: format!( + "max_width * d overflowed for profile={} d={} rank={} bound={}", + row.modulus_profile.label(), + row.d, + row.rank, + row.coeff_linf_bound + ), + } + })?; scalar .entry((row.modulus_profile, row.coeff_linf_bound, n)) .and_modify(|current| { @@ -419,36 +500,32 @@ pub fn rust_table_arms( .or_insert(scalar_m); pairs.insert((row.modulus_profile, row.d, row.coeff_linf_bound)); } - let mut arms = BTreeMap::>::new(); + let mut runtime_rows = Vec::new(); for (profile, d, bound) in pairs { - if max_rank == 0 { - continue; - } let mut widths = Vec::with_capacity(max_rank as usize); - let mut complete = true; for rank in 1..=max_rank { let n = u64::from(d) * u64::from(rank); match scalar.get(&(profile, bound, n)) { Some(&scalar_m) => widths.push(scalar_m / u64::from(d)), None => { - complete = false; - break; + return invalid_config( + "rows", + &format!( + "missing scalar row for profile={} d={d} rank={rank} bound={bound}", + profile.label() + ), + ); } } } - if !complete { - continue; - } - let body = widths - .iter() - .map(|width| width.to_string()) - .collect::>() - .join(", "); - arms.entry(profile) - .or_default() - .push(format!("({d}, {bound}) => Some(&[{body}]),")); + runtime_rows.push(RuntimeWidthRow { + modulus_profile: profile, + d, + coeff_linf_bound: bound, + widths, + }); } - arms + Ok(runtime_rows) } fn max_secure_width_row( @@ -486,7 +563,7 @@ fn max_secure_width_row( coeff_linf_bound, search_cap, discovered.max_value, - &InfinityWidthProfile::ExhaustiveSerial.config(), + &EstimateConfig::akita_infinity_table(), target, )? } else { @@ -496,9 +573,9 @@ fn max_secure_width_row( discovered.hit_cap, ) }; - let exhaustive_boundary_config = InfinityWidthProfile::ExhaustiveSerial.config(); + let boundary_certificate_config = EstimateConfig::akita_infinity_table(); let boundary_config = if table_config.profile == InfinityWidthProfile::LocalMinimum { - &exhaustive_boundary_config + &boundary_certificate_config } else { estimator_config }; @@ -554,31 +631,11 @@ fn certify_boundary( config: &EstimateConfig, target: f64, ) -> Result<(u64, Option, bool)> { - let mut accepted = discovered.min(cap); - while accepted > 0 { - let cost = estimate_width(modulus_profile, d, rank, accepted, bound, config)?; - if secure_or_error(cost.rop, target)? { - break; - } - accepted -= 1; - } - let Some(mut successor) = accepted.checked_add(1) else { - return Ok((accepted, None, false)); - }; - while successor <= cap { - let cost = estimate_width(modulus_profile, d, rank, successor, bound, config)?; - if !secure_or_error(cost.rop, target)? { - return Ok((accepted, Some(successor), false)); - } - accepted = successor; - successor = successor - .checked_add(1) - .ok_or_else(|| EstimatorError::InvalidConfig { - field: "search_cap", - reason: "width successor overflow".to_string(), - })?; - } - Ok((cap, None, true)) + let result = certified_boundary_from_hint(cap, discovered, |width| { + let cost = estimate_width(modulus_profile, d, rank, width, bound, config)?; + secure_or_error(cost.rop, target) + })?; + Ok((result.max_value, result.next_value, result.hit_cap)) } fn row_search_cap(d: u32, requested: Option) -> Result { @@ -643,72 +700,6 @@ fn security_met(rop: CostValue, target: f64) -> bool { || (lower_bound.log2.is_infinite() && lower_bound.log2.is_sign_positive())) } -fn max_true_in_prefix(start: u64, cap: u64, mut predicate: F) -> Result -where - F: FnMut(u64) -> Result, -{ - if start == 0 || cap < start { - return invalid_config("search range", "must satisfy 0 < start <= cap"); - } - let mut first = start; - while first <= cap && !predicate(first)? { - first = first - .checked_add(1) - .ok_or_else(|| EstimatorError::InvalidConfig { - field: "search_cap", - reason: "search probe overflow".to_string(), - })?; - } - if first > cap { - return Ok(PrefixSearchResult { - max_value: 0, - next_value: Some(start), - hit_cap: false, - }); - } - let mut low = first; - let mut high = first.checked_mul(2).unwrap_or(cap).min(cap); - if high == low && high < cap { - high = high - .checked_add(1) - .ok_or_else(|| EstimatorError::InvalidConfig { - field: "search_cap", - reason: "search probe overflow".to_string(), - })?; - } - while high < cap && predicate(high)? { - low = high; - high = high.checked_mul(2).unwrap_or(cap).min(cap); - } - if high == cap && predicate(cap)? { - return Ok(PrefixSearchResult { - max_value: cap, - next_value: None, - hit_cap: true, - }); - } - while low + 1 < high { - let mid = low + (high - low) / 2; - if predicate(mid)? { - low = mid; - } else { - high = mid; - } - } - Ok(PrefixSearchResult { - max_value: low, - next_value: Some(high), - hit_cap: false, - }) -} - -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -struct PrefixSearchResult { - max_value: u64, - next_value: Option, - hit_cap: bool, -} - fn validate_rank_monotonicity(rows: &[InfinityWidthRow]) -> Result<()> { let mut groups = BTreeMap::<(AkitaModulusProfileId, u32, u64), Vec<&InfinityWidthRow>>::new(); for row in rows { @@ -789,134 +780,4 @@ fn same_set(left: &[T], right: &[T]) -> bool { } #[cfg(test)] -mod tests { - use super::*; - - #[test] - fn prefix_search_finds_last_true_value() { - assert_eq!( - max_true_in_prefix(1, 16, |value| Ok(value <= 9)) - .unwrap() - .max_value, - 9 - ); - } - - #[test] - fn infinity_never_counts_as_secure() { - assert!(!security_met(CostValue::Infinity, 128.0)); - assert!(secure_or_error(CostValue::Infinity, 128.0).is_err()); - } - - #[test] - fn csv_has_no_classical_columns() { - assert!(!InfinityWidthRow::csv_header().contains("classical")); - } - - #[test] - fn rust_table_emits_direct_q128_d512_rows() { - let rows = [10, 20, 30, 40] - .into_iter() - .enumerate() - .map(|(index, max_width)| InfinityWidthRow { - modulus_profile: AkitaModulusProfileId::Q128OffsetA7F7, - d: 512, - rank: u32::try_from(index + 1).unwrap(), - coeff_linf_bound: 2, - max_width, - policy: SisSecurityPolicy::Quantum128BitADPS16, - search_cap: DEFAULT_SEARCH_CAP, - hit_cap: false, - profile: InfinityWidthProfile::LocalMinimum, - max_costs: None, - next_costs: None, - }) - .collect::>(); - let arms = rust_table_arms(&rows, 4); - assert!(arms[&AkitaModulusProfileId::Q128OffsetA7F7] - .contains(&"(512, 2) => Some(&[10, 20, 30, 40]),".to_string())); - } - - #[test] - fn generation_filters_to_canonical_production_and_compression_cells() { - assert!(reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 64, - 15 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 32, - 2 - )); - assert!(reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 64, - 2 - )); - assert!(reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 512, - 2 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q64Offset59, - 512, - 2 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 16, - 15 - )); - assert!(reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 16, - 1 - )); - assert!(reachable_role_cell( - AkitaModulusProfileId::Q64Offset59, - 16, - 1 - )); - assert!(reachable_role_cell( - AkitaModulusProfileId::Q32Offset99, - 32, - 1 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q128OffsetA7F7, - 32, - 1 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q64Offset59, - 64, - 1 - )); - assert!(!reachable_role_cell( - AkitaModulusProfileId::Q32Offset99, - 128, - 1 - )); - } - - #[test] - fn q128_d512_rows_are_estimated_directly() { - let config = InfinityWidthTableConfig { - profiles: vec![AkitaModulusProfileId::Q128OffsetA7F7], - ring_dims: vec![512], - coeff_linf_bounds: vec![67_108_863], - max_rank: 2, - search_cap: Some(100_000), - profile: InfinityWidthProfile::LatticeEstimatorParity, - ..InfinityWidthTableConfig::default() - }; - let rows = generate_infinity_width_rows(&config).unwrap(); - validate_infinity_width_rows(&rows).unwrap(); - assert_eq!(rows.len(), 2); - assert!(rows.iter().all(|row| row.d == 512)); - assert_eq!(rows[0].max_width, 94_477); - assert_eq!(rows[1].max_width, 100_000); - } -} +mod tests; diff --git a/crates/akita-sis-estimator/src/width_table/boundary.rs b/crates/akita-sis-estimator/src/width_table/boundary.rs new file mode 100644 index 000000000..d74605f80 --- /dev/null +++ b/crates/akita-sis-estimator/src/width_table/boundary.rs @@ -0,0 +1,174 @@ +//! Monotone prefix and certified boundary search. + +use crate::error::{EstimatorError, Result}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub(super) struct PrefixSearchResult { + pub(super) max_value: u64, + pub(super) next_value: Option, + pub(super) hit_cap: bool, +} + +pub(super) fn certified_boundary_from_hint( + cap: u64, + hint: u64, + mut predicate: F, +) -> Result +where + F: FnMut(u64) -> Result, +{ + // The predicate must be true on one prefix and false thereafter. This + // search is not valid for non-monotone projected security rows. + if cap == 0 { + return Err(EstimatorError::InvalidConfig { + field: "search_cap", + reason: "search cap must be positive".to_string(), + }); + } + let hint = hint.clamp(1, cap); + if predicate(hint)? { + if hint == cap { + return Ok(PrefixSearchResult { + max_value: cap, + next_value: None, + hit_cap: true, + }); + } + let next = hint + 1; + if !predicate(next)? { + return Ok(PrefixSearchResult { + max_value: hint, + next_value: Some(next), + hit_cap: false, + }); + } + let mut low = next; + let mut step = 2u64; + loop { + let high = low.saturating_add(step).min(cap); + if predicate(high)? { + low = high; + if low == cap { + return Ok(PrefixSearchResult { + max_value: cap, + next_value: None, + hit_cap: true, + }); + } + step = step.saturating_mul(2); + } else { + return binary_boundary(low, high, predicate); + } + } + } + + if hint == 1 { + return Ok(PrefixSearchResult { + max_value: 0, + next_value: Some(1), + hit_cap: false, + }); + } + let previous = hint - 1; + if predicate(previous)? { + return Ok(PrefixSearchResult { + max_value: previous, + next_value: Some(hint), + hit_cap: false, + }); + } + let mut high = previous; + let mut step = 1u64; + loop { + let low = high.saturating_sub(step).max(1); + if predicate(low)? { + return binary_boundary(low, high, predicate); + } + if low == 1 { + return Ok(PrefixSearchResult { + max_value: 0, + next_value: Some(1), + hit_cap: false, + }); + } + high = low; + step = step.saturating_mul(2); + } +} + +fn binary_boundary(mut low: u64, mut high: u64, mut predicate: F) -> Result +where + F: FnMut(u64) -> Result, +{ + while low + 1 < high { + let mid = low + (high - low) / 2; + if predicate(mid)? { + low = mid; + } else { + high = mid; + } + } + Ok(PrefixSearchResult { + max_value: low, + next_value: Some(high), + hit_cap: false, + }) +} + +pub(super) fn max_true_in_prefix( + start: u64, + cap: u64, + mut predicate: F, +) -> Result +where + F: FnMut(u64) -> Result, +{ + // The predicate must be true on one prefix and false thereafter. + if start == 0 || cap < start { + return Err(EstimatorError::InvalidConfig { + field: "search range", + reason: "must satisfy 0 < start <= cap".to_string(), + }); + } + if !predicate(start)? { + return Ok(PrefixSearchResult { + max_value: 0, + next_value: Some(start), + hit_cap: false, + }); + } + let mut low = start; + let mut high = start.checked_mul(2).unwrap_or(cap).min(cap); + if high == low && high < cap { + high = high + .checked_add(1) + .ok_or_else(|| EstimatorError::InvalidConfig { + field: "search_cap", + reason: "search probe overflow".to_string(), + })?; + } + while high < cap && predicate(high)? { + low = high; + high = high.checked_mul(2).unwrap_or(cap).min(cap); + } + if high == cap && predicate(cap)? { + return Ok(PrefixSearchResult { + max_value: cap, + next_value: None, + hit_cap: true, + }); + } + while low + 1 < high { + let mid = low + (high - low) / 2; + if predicate(mid)? { + low = mid; + } else { + high = mid; + } + } + Ok(PrefixSearchResult { + max_value: low, + next_value: Some(high), + hit_cap: false, + }) +} diff --git a/crates/akita-sis-estimator/src/width_table/tests.rs b/crates/akita-sis-estimator/src/width_table/tests.rs new file mode 100644 index 000000000..30f3453fc --- /dev/null +++ b/crates/akita-sis-estimator/src/width_table/tests.rs @@ -0,0 +1,183 @@ +use super::*; + +#[test] +fn prefix_search_finds_last_true_value() { + assert_eq!( + max_true_in_prefix(1, 16, |value| Ok(value <= 9)) + .unwrap() + .max_value, + 9 + ); +} + +#[test] +fn prefix_search_stops_when_the_first_width_is_insecure() { + let mut probes = 0; + let result = max_true_in_prefix(1, DEFAULT_SEARCH_CAP, |_| { + probes += 1; + Ok(false) + }) + .unwrap(); + assert_eq!(result.max_value, 0); + assert_eq!(result.next_value, Some(1)); + assert_eq!(probes, 1); +} + +#[test] +fn certificate_search_brackets_distant_boundaries() { + for (cap, hint, boundary) in [ + (1_000_000, 3, 800_000), + (1_000_000, 900_000, 17), + (1_000_000, 900_000, 0), + (1_000_000, 3, 1_000_000), + ] { + let mut probes = 0; + let result = certified_boundary_from_hint(cap, hint, |value| { + probes += 1; + Ok(value <= boundary) + }) + .unwrap(); + assert_eq!(result.max_value, boundary); + assert_eq!(result.hit_cap, boundary == cap); + assert_eq!(result.next_value, (boundary < cap).then_some(boundary + 1)); + assert!( + probes < 64, + "hint={hint} boundary={boundary} probes={probes}" + ); + } +} + +#[test] +fn infinity_never_counts_as_secure() { + assert!(!security_met(CostValue::Infinity, 128.0)); + assert!(secure_or_error(CostValue::Infinity, 128.0).is_err()); +} + +#[test] +fn csv_has_no_classical_columns() { + assert!(!InfinityWidthRow::csv_header().contains("classical")); +} + +#[test] +fn production_config_requires_the_certified_profile() { + let mut config = InfinityWidthTableConfig::default(); + assert!(is_production_infinity_width_table_config(&config)); + config.profile = InfinityWidthProfile::LatticeEstimatorParity; + assert!(!is_production_infinity_width_table_config(&config)); + config.profile = InfinityWidthProfile::ExhaustiveSerial; + assert!(!is_production_infinity_width_table_config(&config)); +} + +#[test] +fn runtime_table_emits_direct_q128_d512_rows() { + let rows = [10, 20, 30, 40] + .into_iter() + .enumerate() + .map(|(index, max_width)| InfinityWidthRow { + modulus_profile: AkitaModulusProfileId::Q128OffsetA7F7, + d: 512, + rank: u32::try_from(index + 1).unwrap(), + coeff_linf_bound: 2, + max_width, + policy: SisSecurityPolicy::Quantum128BitADPS16, + search_cap: DEFAULT_SEARCH_CAP, + hit_cap: false, + profile: InfinityWidthProfile::LocalMinimum, + max_costs: None, + next_costs: None, + }) + .collect::>(); + let runtime_rows = runtime_width_rows(&rows, 4).unwrap(); + assert_eq!( + runtime_rows, + [RuntimeWidthRow { + modulus_profile: AkitaModulusProfileId::Q128OffsetA7F7, + d: 512, + coeff_linf_bound: 2, + widths: vec![10, 20, 30, 40], + }] + ); +} + +#[test] +fn generation_filters_to_canonical_production_and_compression_cells() { + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 64, + 15 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 32, + 2 + )); + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 64, + 2 + )); + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 512, + 2 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q64Offset59, + 512, + 2 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 16, + 15 + )); + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 16, + 1 + )); + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q64Offset59, + 16, + 1 + )); + assert!(scalar_origin_is_canonical( + AkitaModulusProfileId::Q32Offset99, + 32, + 1 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q128OffsetA7F7, + 32, + 1 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q64Offset59, + 64, + 1 + )); + assert!(!scalar_origin_is_canonical( + AkitaModulusProfileId::Q32Offset99, + 128, + 1 + )); +} + +#[test] +fn q128_d512_rows_are_estimated_directly() { + let config = InfinityWidthTableConfig { + profiles: vec![AkitaModulusProfileId::Q128OffsetA7F7], + ring_dims: vec![512], + coeff_linf_bounds: vec![67_108_863], + max_rank: 2, + search_cap: Some(100_000), + profile: InfinityWidthProfile::LatticeEstimatorParity, + ..InfinityWidthTableConfig::default() + }; + let rows = generate_infinity_width_rows(&config).unwrap(); + validate_infinity_width_rows(&rows).unwrap(); + assert_eq!(rows.len(), 2); + assert!(rows.iter().all(|row| row.d == 512)); + assert_eq!(rows[0].max_width, 94_477); + assert_eq!(rows[1].max_width, 100_000); +} diff --git a/crates/akita-types/src/compression.rs b/crates/akita-types/src/compression.rs index 0f0cfb82a..a3bb1c393 100644 --- a/crates/akita-types/src/compression.rs +++ b/crates/akita-types/src/compression.rs @@ -9,6 +9,10 @@ use crate::sis::compression::{min_compression_secure_rank, COMPRESSION_SIS_COEFF use crate::sis::{SisModulusProfileId, DEFAULT_SIS_SECURITY_POLICY}; use akita_field::{AkitaError, CanonicalField, FieldCore}; +mod chain; + +pub use chain::CompressionChainPlan; + /// Maximum complete B/D image accepted by the compression protocol. pub const MAX_COMPRESSION_INPUT_BYTES: usize = 8 * 1024; @@ -387,219 +391,6 @@ impl CompressionMapPlan { } } -/// Complete checked compression plan for one flat source image. -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct CompressionChainPlan { - policy: CompressionPolicyId, - modulus_profile: SisModulusProfileId, - field_bits: usize, - field_bytes: usize, - source_coefficients: usize, - maps: Vec, -} - -impl CompressionChainPlan { - /// Validate an already derived canonical chain. - pub fn new( - modulus_profile: SisModulusProfileId, - source_coefficients: usize, - maps: Vec, - ) -> Result { - let field_bits = profile_field_bits(modulus_profile); - let field_bytes = field_bits.div_ceil(8); - let source_bytes = source_coefficients - .checked_mul(field_bytes) - .ok_or_else(|| { - AkitaError::InvalidSetup("compression source byte length overflow".into()) - })?; - if source_coefficients == 0 { - return Err(AkitaError::InvalidInput( - "compression source must be nonempty".into(), - )); - } - if source_bytes > MAX_COMPRESSION_INPUT_BYTES { - return Err(AkitaError::InvalidInput(format!( - "compression source is {source_bytes} bytes, exceeding the {MAX_COMPRESSION_INPUT_BYTES}-byte maximum" - ))); - } - if maps.len() != COMPRESSION_MAP_COUNT { - return Err(AkitaError::InvalidSetup(format!( - "compression chain must contain exactly {COMPRESSION_MAP_COUNT} maps" - ))); - } - let mut expected_input = source_coefficients; - let mut previous_dimension: Option = None; - for map in &maps { - if map.modulus_profile() != modulus_profile { - return Err(AkitaError::InvalidSetup( - "compression map profile disagrees with its chain".into(), - )); - } - if map.input_coefficients() != expected_input { - return Err(AkitaError::InvalidSetup( - "compression map input does not continue the preceding image".into(), - )); - } - if let Some(previous) = previous_dimension { - if previous.checked_div(2) != Some(map.ring_dimension()) { - return Err(AkitaError::InvalidSetup( - "compression ring dimensions must halve at each map".into(), - )); - } - } - expected_input = map.output_coefficients(); - previous_dimension = Some(map.ring_dimension()); - } - let terminal_bytes = expected_input.checked_mul(field_bytes).ok_or_else(|| { - AkitaError::InvalidSetup("compression terminal byte length overflow".into()) - })?; - if terminal_bytes != COMPRESSION_TARGET_BYTES { - return Err(AkitaError::InvalidSetup(format!( - "compression terminal is {terminal_bytes} bytes, expected {COMPRESSION_TARGET_BYTES}" - ))); - } - Ok(Self { - policy: COMPRESSION_POLICY, - modulus_profile, - field_bits, - field_bytes, - source_coefficients, - maps, - }) - } - - /// Derive and validate the canonical complete-image chain. - pub fn for_complete_source( - modulus_profile: SisModulusProfileId, - source_coefficients: usize, - ) -> Result { - Self::try_for_complete_source(modulus_profile, source_coefficients)?.ok_or_else(|| { - let field_bits = profile_field_bits(modulus_profile); - let source_bytes = source_coefficients.saturating_mul(field_bits.div_ceil(8)); - AkitaError::InvalidInput(format!( - "compression source is {source_bytes} bytes, exceeding the {MAX_COMPRESSION_INPUT_BYTES}-byte maximum" - )) - }) - } - - /// Candidate-aware derivation. `None` means only that the source exceeds - /// the protocol cap; malformed and uncertified shapes remain errors. - pub fn try_for_complete_source( - modulus_profile: SisModulusProfileId, - source_coefficients: usize, - ) -> Result, AkitaError> { - let field_bits = profile_field_bits(modulus_profile); - let field_bytes = field_bits.div_ceil(8); - let source_bytes = source_coefficients - .checked_mul(field_bytes) - .ok_or_else(|| { - AkitaError::InvalidSetup("compression source byte length overflow".into()) - })?; - if source_coefficients == 0 { - return Self::new(modulus_profile, source_coefficients, Vec::new()).map(Some); - } - if source_bytes > MAX_COMPRESSION_INPUT_BYTES { - return Ok(None); - } - let mut maps = Vec::with_capacity(COMPRESSION_MAP_COUNT); - let mut input_coefficients = source_coefficients; - for ring_dimension in compression_ring_dimensions(modulus_profile) { - let map = - CompressionMapPlan::new(modulus_profile, input_coefficients, ring_dimension, 1)?; - input_coefficients = map.output_coefficients(); - let output_bytes = input_coefficients.checked_mul(field_bytes).ok_or_else(|| { - AkitaError::InvalidSetup("compression output byte length overflow".into()) - })?; - maps.push(map); - if output_bytes == COMPRESSION_TARGET_BYTES { - return Self::new(modulus_profile, source_coefficients, maps).map(Some); - } - if output_bytes < COMPRESSION_TARGET_BYTES { - return Err(AkitaError::InvalidSetup( - "compression ladder undershot its terminal target".into(), - )); - } - } - Err(AkitaError::InvalidSetup(format!( - "compression ladder did not reach {COMPRESSION_TARGET_BYTES} bytes" - ))) - } - - /// Fixed protocol policy that determines this plan. - #[must_use] - pub fn policy(&self) -> CompressionPolicyId { - self.policy - } - - /// Exact modulus profile. - #[must_use] - pub fn modulus_profile(&self) -> SisModulusProfileId { - self.modulus_profile - } - - /// Canonical modulus bit width. - #[must_use] - pub fn field_bits(&self) -> usize { - self.field_bits - } - - /// Canonical field byte width. - #[must_use] - pub fn field_bytes(&self) -> usize { - self.field_bytes - } - - /// Complete source coefficient count. - #[must_use] - pub fn source_coefficients(&self) -> usize { - self.source_coefficients - } - - /// Ordered checked map plans. - #[must_use] - pub fn maps(&self) -> &[CompressionMapPlan] { - &self.maps - } - - /// Exact terminal coefficient count. - #[must_use] - pub fn terminal_coefficients(&self) -> usize { - self.maps.last().map_or(0, |map| map.output_coefficients()) - } - - /// Total persistent packed stage-witness bytes. - pub fn packed_witness_bytes(&self) -> Result { - self.maps.iter().try_fold(0usize, |total, map| { - total.checked_add(map.packed_digit_bytes()).ok_or_else(|| { - AkitaError::InvalidSetup("compression packed witness bytes overflow".into()) - }) - }) - } - - /// Equivalent persistent bytes for an `i8` digit representation. - pub fn unpacked_witness_bytes(&self) -> Result { - self.maps.iter().try_fold(0usize, |total, map| { - total.checked_add(map.real_digit_count()).ok_or_else(|| { - AkitaError::InvalidSetup("compression unpacked witness bytes overflow".into()) - }) - }) - } - - /// Largest universal-setup matrix prefix required by any map in fields. - pub fn max_setup_field_elements(&self) -> Result { - self.maps.iter().try_fold(0usize, |maximum, map| { - let fields = map - .output_rank() - .checked_mul(map.input_width()) - .and_then(|len| len.checked_mul(map.ring_dimension())) - .ok_or_else(|| { - AkitaError::InvalidSetup("compression setup envelope overflow".into()) - })?; - Ok(maximum.max(fields)) - }) - } -} - /// Bit-packed negative-binary digits for one checked map. /// /// Bit one encodes `-1`; bit zero encodes `0`. Padding through the final ring @@ -957,12 +748,10 @@ mod tests { assert!(CompressionMapPlan::new(profile, 64, 32, 1).is_err()); let plan = CompressionChainPlan::for_complete_source(profile, 64).unwrap(); - assert!(CompressionChainPlan::new(profile, 64, vec![plan.maps()[0]]).is_err()); let wrong_continuation = CompressionMapPlan::new(profile, 15, plan.maps()[1].ring_dimension(), 1).unwrap(); assert!( - CompressionChainPlan::new(profile, 64, vec![plan.maps()[0], wrong_continuation]) - .is_err() + CompressionChainPlan::new(profile, 64, [plan.maps()[0], wrong_continuation]).is_err() ); assert!(CompressionChainWitness::new(plan.clone(), Vec::new()).is_err()); assert!(CompressionTerminalPayload::::new( diff --git a/crates/akita-types/src/compression/chain.rs b/crates/akita-types/src/compression/chain.rs new file mode 100644 index 000000000..3b4ebccfb --- /dev/null +++ b/crates/akita-types/src/compression/chain.rs @@ -0,0 +1,233 @@ +//! Canonical compression-chain derivation. + +use super::*; + +/// Complete checked compression plan for one flat source image. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct CompressionChainPlan { + policy: CompressionPolicyId, + modulus_profile: SisModulusProfileId, + field_bits: usize, + field_bytes: usize, + source_coefficients: usize, + maps: [CompressionMapPlan; COMPRESSION_MAP_COUNT], +} + +impl CompressionChainPlan { + /// Validate an already derived canonical chain. + pub fn new( + modulus_profile: SisModulusProfileId, + source_coefficients: usize, + maps: [CompressionMapPlan; COMPRESSION_MAP_COUNT], + ) -> Result { + let field_bits = profile_field_bits(modulus_profile); + let field_bytes = field_bits.div_ceil(8); + let source_bytes = source_coefficients + .checked_mul(field_bytes) + .ok_or_else(|| { + AkitaError::InvalidSetup("compression source byte length overflow".into()) + })?; + if source_coefficients == 0 { + return Err(AkitaError::InvalidInput( + "compression source must be nonempty".into(), + )); + } + if source_bytes > MAX_COMPRESSION_INPUT_BYTES { + return Err(AkitaError::InvalidInput(format!( + "compression source is {source_bytes} bytes, exceeding the {MAX_COMPRESSION_INPUT_BYTES}-byte maximum" + ))); + } + let mut expected_input = source_coefficients; + let mut previous_dimension: Option = None; + for map in &maps { + if map.modulus_profile() != modulus_profile { + return Err(AkitaError::InvalidSetup( + "compression map profile disagrees with its chain".into(), + )); + } + if map.input_coefficients() != expected_input { + return Err(AkitaError::InvalidSetup( + "compression map input does not continue the preceding image".into(), + )); + } + if let Some(previous) = previous_dimension { + if previous.checked_div(2) != Some(map.ring_dimension()) { + return Err(AkitaError::InvalidSetup( + "compression ring dimensions must halve at each map".into(), + )); + } + } + expected_input = map.output_coefficients(); + previous_dimension = Some(map.ring_dimension()); + } + let terminal_bytes = expected_input.checked_mul(field_bytes).ok_or_else(|| { + AkitaError::InvalidSetup("compression terminal byte length overflow".into()) + })?; + if terminal_bytes != COMPRESSION_TARGET_BYTES { + return Err(AkitaError::InvalidSetup(format!( + "compression terminal is {terminal_bytes} bytes, expected {COMPRESSION_TARGET_BYTES}" + ))); + } + Ok(Self { + policy: COMPRESSION_POLICY, + modulus_profile, + field_bits, + field_bytes, + source_coefficients, + maps, + }) + } + + /// Derive and validate the canonical complete-image chain. + pub fn for_complete_source( + modulus_profile: SisModulusProfileId, + source_coefficients: usize, + ) -> Result { + Self::try_for_complete_source(modulus_profile, source_coefficients)?.ok_or_else(|| { + let field_bits = profile_field_bits(modulus_profile); + let source_bytes = source_coefficients.saturating_mul(field_bits.div_ceil(8)); + AkitaError::InvalidInput(format!( + "compression source is {source_bytes} bytes, exceeding the {MAX_COMPRESSION_INPUT_BYTES}-byte maximum" + )) + }) + } + + /// Candidate-aware derivation. `None` means only that the source exceeds + /// the protocol cap; malformed and uncertified shapes remain errors. + pub fn try_for_complete_source( + modulus_profile: SisModulusProfileId, + source_coefficients: usize, + ) -> Result, AkitaError> { + Self::derive_complete_source(modulus_profile, source_coefficients) + } + + fn derive_complete_source( + modulus_profile: SisModulusProfileId, + source_coefficients: usize, + ) -> Result, AkitaError> { + let field_bits = profile_field_bits(modulus_profile); + let field_bytes = field_bits.div_ceil(8); + let source_bytes = source_coefficients + .checked_mul(field_bytes) + .ok_or_else(|| { + AkitaError::InvalidSetup("compression source byte length overflow".into()) + })?; + if source_coefficients == 0 { + return Err(AkitaError::InvalidInput( + "compression source must be nonempty".into(), + )); + } + if source_bytes > MAX_COMPRESSION_INPUT_BYTES { + return Ok(None); + } + let mut maps = [None; COMPRESSION_MAP_COUNT]; + let mut input_coefficients = source_coefficients; + for (map_count, ring_dimension) in compression_ring_dimensions(modulus_profile) + .into_iter() + .enumerate() + { + if map_count == COMPRESSION_MAP_COUNT { + return Err(AkitaError::InvalidSetup(format!( + "compression chain exceeded {COMPRESSION_MAP_COUNT} maps" + ))); + } + let map = + CompressionMapPlan::new(modulus_profile, input_coefficients, ring_dimension, 1)?; + input_coefficients = map.output_coefficients(); + let output_bytes = input_coefficients.checked_mul(field_bytes).ok_or_else(|| { + AkitaError::InvalidSetup("compression output byte length overflow".into()) + })?; + maps[map_count] = Some(map); + if output_bytes == COMPRESSION_TARGET_BYTES { + let [Some(first), Some(second)] = maps else { + return Err(AkitaError::InvalidSetup(format!( + "compression chain must contain exactly {COMPRESSION_MAP_COUNT} maps" + ))); + }; + return Self::new(modulus_profile, source_coefficients, [first, second]).map(Some); + } + if output_bytes < COMPRESSION_TARGET_BYTES { + return Err(AkitaError::InvalidSetup( + "compression ladder undershot its terminal target".into(), + )); + } + } + Err(AkitaError::InvalidSetup(format!( + "compression ladder did not reach {COMPRESSION_TARGET_BYTES} bytes" + ))) + } + + /// Fixed protocol policy that determines this plan. + #[must_use] + pub fn policy(&self) -> CompressionPolicyId { + self.policy + } + + /// Exact modulus profile. + #[must_use] + pub fn modulus_profile(&self) -> SisModulusProfileId { + self.modulus_profile + } + + /// Canonical modulus bit width. + #[must_use] + pub fn field_bits(&self) -> usize { + self.field_bits + } + + /// Canonical field byte width. + #[must_use] + pub fn field_bytes(&self) -> usize { + self.field_bytes + } + + /// Complete source coefficient count. + #[must_use] + pub fn source_coefficients(&self) -> usize { + self.source_coefficients + } + + /// Ordered checked map plans. + #[must_use] + pub fn maps(&self) -> &[CompressionMapPlan] { + &self.maps + } + + /// Exact terminal coefficient count. + #[must_use] + pub fn terminal_coefficients(&self) -> usize { + self.maps.last().map_or(0, |map| map.output_coefficients()) + } + + /// Total persistent packed stage-witness bytes. + pub fn packed_witness_bytes(&self) -> Result { + self.maps.iter().try_fold(0usize, |total, map| { + total.checked_add(map.packed_digit_bytes()).ok_or_else(|| { + AkitaError::InvalidSetup("compression packed witness bytes overflow".into()) + }) + }) + } + + /// Equivalent persistent bytes for an `i8` digit representation. + pub fn unpacked_witness_bytes(&self) -> Result { + self.maps.iter().try_fold(0usize, |total, map| { + total.checked_add(map.real_digit_count()).ok_or_else(|| { + AkitaError::InvalidSetup("compression unpacked witness bytes overflow".into()) + }) + }) + } + + /// Largest universal-setup matrix prefix required by any map in fields. + pub fn max_setup_field_elements(&self) -> Result { + self.maps.iter().try_fold(0usize, |maximum, map| { + let fields = map + .output_rank() + .checked_mul(map.input_width()) + .and_then(|len| len.checked_mul(map.ring_dimension())) + .ok_or_else(|| { + AkitaError::InvalidSetup("compression setup envelope overflow".into()) + })?; + Ok(maximum.max(fields)) + }) + } +} diff --git a/crates/akita-types/src/layout/mod.rs b/crates/akita-types/src/layout/mod.rs index e5cd52307..6a8a8dbad 100644 --- a/crates/akita-types/src/layout/mod.rs +++ b/crates/akita-types/src/layout/mod.rs @@ -24,7 +24,8 @@ pub use opening_point::{ }; pub use params::{ shared_d_digit_log_basis, CommittedGroupParams, InnerCommitMatrixParams, LevelParamsLike, - OpenCommitMatrixParams, OuterCommitMatrixParams, PrecommittedLevelParams, SisModulusProfileId, + OpenCommitMatrixParams, OuterCommitMatrixParams, PrecommittedGroupAdmissionPolicy, + PrecommittedLevelParams, SisModulusProfileId, }; pub use proof_size::{ extension_opening_reduction_level_bytes, extension_opening_reduction_proof_bytes, field_bytes, diff --git a/crates/akita-types/src/layout/params.rs b/crates/akita-types/src/layout/params.rs index 287a9b95e..11e59cd1b 100644 --- a/crates/akita-types/src/layout/params.rs +++ b/crates/akita-types/src/layout/params.rs @@ -14,7 +14,6 @@ use crate::proof::{ CompressionRelationAddressGeometry, RelationAddressGeometry, RelationRowFamily, SetupPrefixSlotId, }; -use crate::CompressionChainPlan; pub use crate::sis::{ InnerCommitMatrixParams, OpenCommitMatrixParams, OuterCommitMatrixParams, SisModulusProfileId, @@ -61,7 +60,9 @@ pub(crate) fn recursive_opening_num_vars_for_geometry( mod descriptor; mod precommitted; pub(crate) use descriptor::append_sparse_challenge_descriptor_bytes as append_schedule_sparse_challenge_descriptor_bytes; -pub use precommitted::{LevelParamsLike, PrecommittedLevelParams}; +pub use precommitted::{ + LevelParamsLike, PrecommittedGroupAdmissionPolicy, PrecommittedLevelParams, +}; /// Gadget basis used by opening-digit segments in the shared D product. /// @@ -133,6 +134,16 @@ pub struct CommittedGroupParams { } impl CommittedGroupParams { + /// Canonical byte encoding used to order semantically distinct level candidates. + /// + /// This is an ordering descriptor, not a wire encoding or transcript commitment. + #[must_use] + pub fn canonical_descriptor_bytes(&self) -> Vec { + let mut bytes = Vec::new(); + self.append_descriptor_bytes(&mut bytes); + bytes + } + /// Checked wire geometry for this level's final-group B image. pub fn outer_payload_geometry(&self) -> Result { crate::CommitmentPayloadGeometry::for_mode( @@ -163,7 +174,7 @@ impl CommittedGroupParams { .output_rank() .checked_mul(self.role_dims().d_b()) .ok_or_else(|| AkitaError::InvalidSetup("B compression shape overflow".into()))?; - if CompressionChainPlan::try_for_complete_source( + if crate::CompressionChainPlan::try_for_complete_source( self.outer_commit_matrix.sis_modulus_profile(), final_outer, )? @@ -180,7 +191,7 @@ impl CommittedGroupParams { .ok_or_else(|| { AkitaError::InvalidSetup("precommitted B compression shape overflow".into()) })?; - if CompressionChainPlan::try_for_complete_source( + if crate::CompressionChainPlan::try_for_complete_source( group.layout.outer_commit_matrix.sis_modulus_profile(), source, )? @@ -194,7 +205,7 @@ impl CommittedGroupParams { .output_rank() .checked_mul(self.role_dims().d_d()) .ok_or_else(|| AkitaError::InvalidSetup("D compression shape overflow".into()))?; - Ok(CompressionChainPlan::try_for_complete_source( + Ok(crate::CompressionChainPlan::try_for_complete_source( self.open_commit_matrix.sis_modulus_profile(), opening, )? @@ -636,10 +647,9 @@ impl CommittedGroupParams { opening_batch: &OpeningClaimsLayout, ) -> Result { opening_batch.check()?; - if self.log_basis_open < self.log_basis_inner || self.log_basis_open < self.log_basis_outer - { + if self.log_basis_open < self.log_basis_outer { return Err(AkitaError::InvalidSetup( - "certified opening basis must dominate level inner/outer bases".to_string(), + "certified opening basis must dominate the level outer basis".to_string(), )); } if opening_batch.num_groups() != self.group_count() { @@ -926,6 +936,16 @@ impl CommittedGroupParams { pub fn output_witness_len( &self, opening_batch: &OpeningClaimsLayout, + ) -> Result { + self.output_witness_len_for_field_bits(F::modulus_bits(), opening_batch) + } + + /// Exact live next-witness length for offline planning, where the field is + /// represented by its bit width rather than a concrete Rust type. + pub fn output_witness_len_for_field_bits( + &self, + field_bits: u32, + opening_batch: &OpeningClaimsLayout, ) -> Result { opening_batch.check()?; self.witness_chunk.validate()?; @@ -934,7 +954,7 @@ impl CommittedGroupParams { self, opening_batch, self.witness_chunk.num_chunks, - crate::r_decomp_levels::(self.log_basis_open), + crate::sis::compute_num_digits_field_width(field_bits, self.log_basis_open), )?; Ok(witness_layout.live_coeff_len()) } diff --git a/crates/akita-types/src/layout/params/precommitted.rs b/crates/akita-types/src/layout/params/precommitted.rs index 64d90f4a3..a4b755f7a 100644 --- a/crates/akita-types/src/layout/params/precommitted.rs +++ b/crates/akita-types/src/layout/params/precommitted.rs @@ -3,8 +3,12 @@ use akita_field::AkitaError; use crate::descriptor_bytes::push_usize; use crate::schedule::CommittedGroupProfile; -use crate::sis::InnerCommitMatrixParams; -use crate::CommitmentRingDims; +use crate::sis::{ + num_digits_open, rounded_up_collision_inf_norm, rounded_up_role_a_inf_norm, + InnerCommitMatrixParams, SisMatrixRole, SisModulusProfileId, SisSecurityPolicyId, + SisTableDigest, +}; +use crate::{CommitmentRingDims, DecompositionParams}; use super::CommittedGroupParams; @@ -26,6 +30,22 @@ pub struct PrecommittedLevelParams { pub num_digits_fold: usize, } +/// Security and decomposition policy needed to admit a frozen precommit into +/// a grouped opening. Planner and runtime replay both use this exact context. +#[derive(Debug, Clone, Copy)] +pub struct PrecommittedGroupAdmissionPolicy { + /// Field and signed-digit decomposition policy. + pub decomposition: DecompositionParams, + /// Bound policy used by the canonical SIS lookup. + pub sis_security_policy: SisSecurityPolicyId, + /// Digest binding the exact generated SIS table. + pub sis_table_digest: SisTableDigest, + /// Modulus family required for both frozen matrices. + pub sis_modulus_profile: SisModulusProfileId, + /// Subfield norm factor used in the A-role bound. + pub ring_subfield_norm_bound: u32, +} + impl PartialEq for PrecommittedLevelParams { fn eq(&self, other: &Self) -> bool { self.layout == other.layout @@ -39,6 +59,106 @@ impl PartialEq for PrecommittedLevelParams { impl Eq for PrecommittedLevelParams {} impl PrecommittedLevelParams { + /// Canonical bytes for deterministic planner ordering and schedule identity. + pub fn canonical_descriptor_bytes(&self) -> Vec { + let mut bytes = Vec::new(); + self.append_descriptor_bytes(&mut bytes); + bytes + } + + /// Validate and materialize one frozen group at the batch-shared opening + /// basis. This is the canonical admission path for planner generation and + /// generated-schedule replay. + pub fn admit( + layout: CommittedGroupProfile, + num_digits_fold: usize, + policy: PrecommittedGroupAdmissionPolicy, + fold_challenge_config: SparseChallengeConfig, + log_basis_open: u32, + ) -> Result { + layout.validate_frozen_precommit(policy.decomposition.field_bits())?; + if layout.inner_commit_matrix.sis_modulus_profile() != policy.sis_modulus_profile + || layout.outer_commit_matrix.sis_modulus_profile() != policy.sis_modulus_profile + { + return Err(AkitaError::InvalidSetup( + "precommitted group modulus profile does not match admission policy".into(), + )); + } + + let outer_decomposition = DecompositionParams { + log_basis: layout.log_basis_outer, + ..policy.decomposition + }; + if num_digits_open(outer_decomposition) != layout.num_digits_outer { + return Err(AkitaError::InvalidSetup( + "precommitted outer digit depth does not match its frozen basis".into(), + )); + } + let frozen_b_bound = rounded_up_collision_inf_norm( + policy.sis_security_policy, + policy.sis_modulus_profile, + SisMatrixRole::Outer, + layout.outer_commit_matrix.ring_dimension(), + layout.log_basis_outer, + ) + .ok_or_else(|| AkitaError::InvalidSetup("no precommitted B-role norm".into()))?; + if layout.outer_commit_matrix.coeff_linf_bound() < frozen_b_bound { + return Err(AkitaError::InvalidSetup( + "precommitted group B bound is below its frozen outer-basis requirement".into(), + )); + } + if log_basis_open < layout.log_basis_outer { + return Err(AkitaError::InvalidSetup( + "certified opening basis must dominate the precommitted outer basis".into(), + )); + } + + let opening_decomposition = DecompositionParams { + log_basis: log_basis_open, + ..policy.decomposition + }; + let num_digits_open = num_digits_open(opening_decomposition); + let required_a_bound = rounded_up_role_a_inf_norm( + policy.sis_security_policy, + policy.sis_table_digest, + policy.sis_modulus_profile, + layout.inner_commit_matrix.ring_dimension(), + log_basis_open, + &fold_challenge_config, + num_digits_fold, + policy.ring_subfield_norm_bound, + ) + .ok_or_else(|| AkitaError::InvalidSetup("no precommitted A-role norm".into()))?; + if required_a_bound > layout.inner_commit_matrix.coeff_linf_bound() { + return Err(AkitaError::InvalidSetup( + "precommitted A bound does not cover the certified opening basis".into(), + )); + } + let required_b_bound = rounded_up_collision_inf_norm( + policy.sis_security_policy, + policy.sis_modulus_profile, + SisMatrixRole::Outer, + layout.outer_commit_matrix.ring_dimension(), + log_basis_open, + ) + .ok_or_else(|| AkitaError::InvalidSetup("no precommitted B-role norm".into()))?; + if required_b_bound > layout.outer_commit_matrix.coeff_linf_bound() { + return Err(AkitaError::InvalidSetup( + "precommitted B bound does not cover the certified opening basis".into(), + )); + } + + let params = Self { + layout, + log_basis_open, + fold_challenge_config, + num_digits_open, + num_digits_fold, + }; + params.validate()?; + Ok(params) + } + /// Worst-case L1 mass of this group's fold-round challenge. #[inline] #[must_use] @@ -75,11 +195,9 @@ impl PrecommittedLevelParams { "precommitted exact fold plan is missing or inconsistent".to_string(), )); } - if self.log_basis_open < self.layout.log_basis_inner - || self.log_basis_open < self.layout.log_basis_outer - { + if self.log_basis_open < self.layout.log_basis_outer { return Err(AkitaError::InvalidSetup( - "certified opening basis must dominate precommitted inner/outer bases".to_string(), + "certified opening basis must dominate the precommitted outer basis".to_string(), )); } let expected_a_width = self diff --git a/crates/akita-types/src/layout/params/tests/params_precommitted_group_tests.rs b/crates/akita-types/src/layout/params/tests/params_precommitted_group_tests.rs index 3e025d531..52e82e7d5 100644 --- a/crates/akita-types/src/layout/params/tests/params_precommitted_group_tests.rs +++ b/crates/akita-types/src/layout/params/tests/params_precommitted_group_tests.rs @@ -120,6 +120,194 @@ fn precommitted_params_reject_frozen_matrix_dimension_mismatch() { assert!(matches!(err, AkitaError::InvalidSetup(_))); } +fn precommit_admission_fixture() -> ( + CommittedGroupProfile, + PrecommittedGroupAdmissionPolicy, + SparseChallengeConfig, + usize, +) { + let challenge = SparseChallengeConfig::production_for_ring_dim(64).expect("D64 challenge"); + let policy = PrecommittedGroupAdmissionPolicy { + decomposition: crate::DecompositionParams { + log_basis: 3, + log_commit_bound: 128, + log_open_bound: Some(128), + }, + sis_security_policy: crate::sis::DEFAULT_SIS_SECURITY_POLICY, + sis_table_digest: crate::SisTableDigest::CURRENT, + sis_modulus_profile: SisModulusProfileId::Q128OffsetA7F7, + ring_subfield_norm_bound: 1, + }; + let num_digits_fold = 2; + let a_bound = crate::sis::rounded_up_role_a_inf_norm( + policy.sis_security_policy, + policy.sis_table_digest, + policy.sis_modulus_profile, + 64, + 3, + &challenge, + num_digits_fold, + policy.ring_subfield_norm_bound, + ) + .expect("A admission bound"); + let b_bound = crate::sis::rounded_up_collision_inf_norm( + policy.sis_security_policy, + policy.sis_modulus_profile, + crate::SisMatrixRole::Outer, + 64, + 3, + ) + .expect("B admission bound"); + let inner_commit_matrix = InnerCommitMatrixParams::try_new_with_min_rank( + crate::SisTableKey { + policy: policy.sis_security_policy, + table_digest: policy.sis_table_digest, + modulus_profile: policy.sis_modulus_profile, + role: crate::SisMatrixRole::Inner, + ring_dimension: 64, + coeff_linf_bound: a_bound, + }, + 32 * 16, + ) + .expect("audited A matrix"); + let outer_commit_matrix = OuterCommitMatrixParams::try_new_with_min_rank( + crate::SisTableKey { + policy: policy.sis_security_policy, + table_digest: policy.sis_table_digest, + modulus_profile: policy.sis_modulus_profile, + role: crate::SisMatrixRole::Outer, + ring_dimension: 64, + coeff_linf_bound: b_bound, + }, + inner_commit_matrix.output_rank() * 43 * 8, + ) + .expect("audited B matrix"); + let layout = CommittedGroupProfile { + version: CommittedGroupProfile::VERSION, + group: PolynomialGroupLayout::new(14, 1), + num_live_ring_elements_per_claim: 256, + num_positions_per_block: 32, + num_live_blocks: 8, + log_basis_inner: 8, + num_digits_inner: 16, + inner_commit_matrix, + log_basis_outer: 3, + num_digits_outer: 43, + outer_commit_matrix, + }; + (layout, policy, challenge, num_digits_fold) +} + +#[test] +fn precommit_admission_rejects_policy_and_basis_mismatches() { + let (layout, policy, challenge, num_digits_fold) = precommit_admission_fixture(); + PrecommittedLevelParams::admit( + layout, + num_digits_fold, + policy, + challenge, + layout.log_basis_outer, + ) + .expect("valid precommit admission"); + + let mismatched_modulus = PrecommittedGroupAdmissionPolicy { + sis_modulus_profile: SisModulusProfileId::Q64Offset59, + ..policy + }; + let error = PrecommittedLevelParams::admit( + layout, + num_digits_fold, + mismatched_modulus, + challenge, + layout.log_basis_outer, + ) + .expect_err("mismatched modulus must be rejected"); + assert!(error.to_string().contains("modulus profile does not match")); + let error = PrecommittedLevelParams::admit( + layout, + num_digits_fold, + policy, + challenge, + layout.log_basis_outer - 1, + ) + .expect_err("opening below frozen outer basis must be rejected"); + assert!(error.to_string().contains("must dominate")); + + let mut wrong_outer_depth = layout; + wrong_outer_depth.num_digits_outer += 1; + let outer = wrong_outer_depth.outer_commit_matrix; + wrong_outer_depth.outer_commit_matrix = OuterCommitMatrixParams::try_new_with_min_rank( + outer.sis_table_key(), + outer.input_width() + + wrong_outer_depth.inner_commit_matrix.output_rank() + * wrong_outer_depth.num_live_blocks, + ) + .expect("canonical wrong-depth B matrix"); + let error = PrecommittedLevelParams::admit( + wrong_outer_depth, + num_digits_fold, + policy, + challenge, + layout.log_basis_outer, + ) + .expect_err("wrong frozen outer digit depth must be rejected"); + assert!(error.to_string().contains("outer digit depth"), "{error}"); +} + +#[test] +fn precommit_admission_rejects_insufficient_a_and_b_bounds() { + let (layout, policy, challenge, num_digits_fold) = precommit_admission_fixture(); + let mut low_a = layout; + let inner = low_a.inner_commit_matrix; + let lower_a_bound = crate::sis::COEFF_LINF_BUCKETS + .iter() + .copied() + .rfind(|&bound| bound < inner.coeff_linf_bound()) + .expect("lower supported A bound"); + low_a.inner_commit_matrix = InnerCommitMatrixParams::try_new_with_min_rank( + crate::SisTableKey { + coeff_linf_bound: lower_a_bound, + ..inner.sis_table_key() + }, + inner.input_width(), + ) + .expect("canonical low-bound A matrix"); + let error = PrecommittedLevelParams::admit( + low_a, + num_digits_fold, + policy, + challenge, + layout.log_basis_outer, + ) + .expect_err("insufficient A bound must be rejected"); + assert!(error.to_string().contains("A bound"), "{error}"); + + let mut low_b = layout; + let outer = low_b.outer_commit_matrix; + let lower_b_bound = crate::sis::COEFF_LINF_BUCKETS + .iter() + .copied() + .rfind(|&bound| bound < outer.coeff_linf_bound()) + .expect("lower supported B bound"); + low_b.outer_commit_matrix = OuterCommitMatrixParams::try_new_with_min_rank( + crate::SisTableKey { + coeff_linf_bound: lower_b_bound, + ..outer.sis_table_key() + }, + outer.input_width(), + ) + .expect("canonical low-bound B matrix"); + let error = PrecommittedLevelParams::admit( + low_b, + num_digits_fold, + policy, + challenge, + layout.log_basis_outer, + ) + .expect_err("insufficient B bound must be rejected"); + assert!(error.to_string().contains("B bound"), "{error}"); +} + #[test] fn native_group_dimensions_are_independent_of_final_group_order() { use akita_field::Prime128OffsetA7F7; diff --git a/crates/akita-types/src/lib.rs b/crates/akita-types/src/lib.rs index d42988905..627ef2f41 100644 --- a/crates/akita-types/src/lib.rs +++ b/crates/akita-types/src/lib.rs @@ -28,6 +28,7 @@ pub mod proof_size; pub mod schedule; pub mod schedule_selection; pub mod setup_contribution; +pub mod signed_digit; pub mod sis; pub mod tail_golomb_rice_low_bits; pub mod trace_weight; @@ -78,14 +79,17 @@ pub use layout::{ reduce_inner_opening_to_ring_element, ring_opening_point_from_field, shared_d_digit_log_basis, sumcheck_rounds, terminal_response_bytes, try_extension_opening_reduction_level_bytes, validate_role_dims, validate_schedule_ring_dims, witness_commitment_domain_len, BasisMode, - CommitmentRingDims, CommittedGroupParams, FlatMatrix, LevelParamsLike, PrecommittedLevelParams, - RingMatrixView, RingOpeningPoint, RingRole, MAX_FOLD_LEVELS, MIN_A_ROLE_FOLD_CHALLENGE_RING_D, - SUPPORTED_CHALLENGE_RING_DIMS, SUPPORTED_COMMITMENT_RING_DIMS, + CommitmentRingDims, CommittedGroupParams, FlatMatrix, LevelParamsLike, + PrecommittedGroupAdmissionPolicy, PrecommittedLevelParams, RingMatrixView, RingOpeningPoint, + RingRole, MAX_FOLD_LEVELS, MIN_A_ROLE_FOLD_CHALLENGE_RING_D, SUPPORTED_CHALLENGE_RING_DIMS, + SUPPORTED_COMMITMENT_RING_DIMS, }; pub use ntt_cache::{ + centered_quotient_requires_i16_tail, centered_quotient_requires_i16_tail_for_field, ntt_cache_requires_i16_tail, prepare_compression_ntt_cache, prepare_ntt_cache, select_compression_crt_ntt_params, select_crt_ntt_params, NttCacheKey, NttCacheMode, - NttPrefixRequirement, NttTransformDomain, PreparedNttCache, ProtocolCrtNttParams, + NttPrefixRequirement, NttTransformDomain, PreparedNttCache, PreparedNttTailPairView, + ProtocolCrtNttParams, }; pub use proof::{ accumulate_matrix_field_elements_for_level, accumulate_terminal_matrix_field_elements, @@ -148,6 +152,10 @@ pub use setup_contribution::{ ensure_setup_envelope, shared_setup_fold_gadget, PreparedRelationAddress, SetupContributionGroupInputs, SetupContributionPlan, SetupProjectionGeometry, }; +pub use signed_digit::{ + balanced_signed_digit_abs_bound, SignedDigitKernel, MAX_I16_LOG_BASIS, MAX_I8_LOG_BASIS, + MIN_SIGNED_DIGIT_LOG_BASIS, +}; pub use sis::{ InnerCommitMatrixParams, OpenCommitMatrixParams, OuterCommitMatrixParams, ScalarCutoff, SisMatrixRole, SisModulusProfileId, SisRoleCell, SisSecurityPolicyId, SisTableDigest, diff --git a/crates/akita-types/src/ntt_cache.rs b/crates/akita-types/src/ntt_cache.rs index 08bf6b8e0..3c4a22bbd 100644 --- a/crates/akita-types/src/ntt_cache.rs +++ b/crates/akita-types/src/ntt_cache.rs @@ -22,8 +22,9 @@ use std::sync::{Arc, Mutex}; use crate::dispatch::compression_ring_dim_supported_for_tier; use crate::{ - field_modulus, ntt_max_ring_d, ntt_min_ring_d, ntt_ring_degree_supported_for_field, - protocol_dispatch_tier, AkitaExpandedSetup, ProtocolRingDispatchTierId, RingMatrixView, + balanced_signed_digit_abs_bound, field_modulus, ntt_max_ring_d, ntt_min_ring_d, + ntt_ring_degree_supported_for_field, protocol_dispatch_tier, AkitaExpandedSetup, + ProtocolRingDispatchTierId, RingMatrixView, SisModulusProfileId, }; mod exact; @@ -40,6 +41,17 @@ pub enum NttTransformDomain { Negacyclic, /// Base-profile cyclic transforms only. Cyclic, + /// Exactness-only 14-bit tail in both negacyclic and cyclic domains. + /// + /// Ring-switch quotient kernels combine this cache with the ordinary CRT + /// prefix when the field-selected representation cannot fit one centered + /// product term. + I16TailBothTransforms, + /// Exact negacyclic transforms for a signed-i16 matrix product. + /// + /// Both values participate in the cache identity because exact CRT sizing + /// depends on the active matrix row width and coefficient bound. + ExactNegacyclicI16 { width: usize, rhs_abs_bound: u64 }, } /// Exact public-matrix prefix required at one ring dimension. @@ -257,6 +269,56 @@ where ))) } +/// Whether a centered ring-switch product term needs the 14-bit exactness +/// tail in addition to the protocol CRT prefix. +pub fn centered_quotient_requires_i16_tail( + profile: SisModulusProfileId, + ring_dimension: usize, + rhs_abs_bound: u64, +) -> Result { + let capacity = match profile { + SisModulusProfileId::Q32Offset99 => { + CrtCapacity::from_prime_moduli(Q32_PRIMES.map(|prime| prime.p as u128)) + } + SisModulusProfileId::Q64Offset59 => { + CrtCapacity::from_prime_moduli(Q64_PRIMES.map(|prime| prime.p as u128)) + } + SisModulusProfileId::Q128OffsetA7F7 => { + CrtCapacity::from_prime_moduli(q128_primes().map(|prime| prime.p as u128)) + } + }; + if capacity.supports_modulus(1, ring_dimension, profile.modulus(), rhs_abs_bound) { + return Ok(false); + } + if capacity + .with_prime_modulus(I16_TAIL_PRIME.p as u128) + .supports_modulus(1, ring_dimension, profile.modulus(), rhs_abs_bound) + { + return Ok(true); + } + Err(AkitaError::InvalidSetup(format!( + "centered quotient term exceeds base plus i16-tail capacity for D={ring_dimension}, rhs_abs_bound={rhs_abs_bound}" + ))) +} + +/// Field-typed form of [`centered_quotient_requires_i16_tail`] used by the +/// runtime kernel dispatch. +pub fn centered_quotient_requires_i16_tail_for_field( + rhs_abs_bound: u64, +) -> Result { + match select_crt_ntt_params::()? { + ProtocolCrtNttParams::Q32(params) => { + required_profile_for_params::(¶ms, 1, rhs_abs_bound) + } + ProtocolCrtNttParams::Q64(params) => { + required_profile_for_params::(¶ms, 1, rhs_abs_bound) + } + ProtocolCrtNttParams::Q128(params) => { + required_profile_for_params::(¶ms, 1, rhs_abs_bound) + } + } +} + /// NTT representations requested by protocol and backend consumers. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub enum NttCacheMode { @@ -266,6 +328,8 @@ pub enum NttCacheMode { Cyclic, /// Materialize the base-profile negacyclic and cyclic transforms. BothTransforms, + /// Materialize only the exactness tail in both transform domains. + I16TailBothTransforms, /// Materialize the minimum exact negacyclic representation for signed /// coefficients whose absolute value is at most `rhs_abs_bound`. ExactNegacyclic { width: usize, rhs_abs_bound: u64 }, @@ -283,6 +347,34 @@ pub struct PreparedI16Tail { params: I16TailParams, } +/// Read-only view of an exactness-only i16 tail pair. +#[derive(Clone, Copy)] +pub struct PreparedNttTailPairView<'a, const D: usize> { + negacyclic: &'a [CyclotomicCrtNtt], + cyclic: &'a [CyclotomicCrtNtt], + params: &'a CrtNttParamSet, +} + +impl<'a, const D: usize> PreparedNttTailPairView<'a, D> { + /// Borrow the negacyclic tail transforms. + #[must_use] + pub const fn negacyclic(self) -> &'a [CyclotomicCrtNtt] { + self.negacyclic + } + + /// Borrow the cyclic tail transforms. + #[must_use] + pub const fn cyclic(self) -> &'a [CyclotomicCrtNtt] { + self.cyclic + } + + /// Borrow the 14-bit tail parameters. + #[must_use] + pub const fn params(self) -> &'a CrtNttParamSet { + self.params + } +} + #[doc(hidden)] #[derive(Debug)] pub struct PreparedIfma52I16Tail { @@ -328,6 +420,11 @@ impl<'a, W: PrimeWidth, const K: usize, const D: usize> PreparedNttBaseView<'a, #[derive(Debug)] #[allow(clippy::large_enum_variant)] enum PreparedNttCacheRepr { + I16TailPair { + neg: Vec>, + cyc: Vec>, + params: CrtNttParamSet, + }, #[non_exhaustive] Q32 { neg: Option>>, @@ -403,6 +500,13 @@ impl PreparedNttCacheRepr { }}; } match self { + Self::I16TailPair { neg, cyc, params } => { + if neg.is_empty() || neg.len() != cyc.len() || params.primes != [I16_TAIL_PRIME] { + return Err(AkitaError::InvalidSetup( + "prepared i16-tail transform pair is inconsistent".into(), + )); + } + } Self::Q32 { neg, cyc, @@ -478,6 +582,9 @@ impl PreparedNttCacheRepr { }}; } match self { + Self::I16TailPair { neg, cyc, .. } => { + (neg.len() + cyc.len()) * D * core::mem::size_of::() + } Self::Q32 { neg, cyc, tail, .. } => bytes!(neg, cyc, tail, Q32_NUM_PRIMES), Self::Q32Ifma52 { neg, tail, .. } => { neg.cache_bytes() @@ -501,6 +608,7 @@ impl PreparedNttCacheRepr { #[must_use] const fn has_cyclic(&self) -> bool { match self { + Self::I16TailPair { .. } => true, Self::Q32 { cyc, .. } => cyc.is_some(), Self::Q32Ifma52 { .. } => false, Self::Q64 { cyc, .. } => cyc.is_some(), @@ -514,6 +622,7 @@ impl PreparedNttCacheRepr { #[must_use] const fn has_negacyclic(&self) -> bool { match self { + Self::I16TailPair { .. } => true, Self::Q32 { neg, .. } => neg.is_some(), Self::Q32Ifma52 { .. } => true, Self::Q64 { neg, .. } => neg.is_some(), @@ -527,6 +636,7 @@ impl PreparedNttCacheRepr { #[must_use] const fn has_i16_tail(&self) -> bool { match self { + Self::I16TailPair { .. } => true, Self::Q32 { tail, .. } => tail.is_some(), Self::Q32Ifma52 { tail, .. } => tail.is_some(), Self::Q64 { tail, .. } => tail.is_some(), @@ -546,6 +656,11 @@ impl PreparedNttCacheRepr { ) -> Result>, AkitaError> { self.validate()?; let prepared_tier = match self { + Self::I16TailPair { .. } => { + return Err(AkitaError::InvalidSetup( + "signed-i16 matvec requested from a tail-only cache".into(), + )); + } Self::Q32 { .. } | Self::Q32Ifma52 { .. } => ProtocolRingDispatchTierId::Fp32, Self::Q64 { .. } | Self::Q64Ifma52 { .. } => ProtocolRingDispatchTierId::Fp64, Self::Q128 { .. } | Self::Q128Ifma52 { .. } => ProtocolRingDispatchTierId::Fp128, @@ -556,6 +671,9 @@ impl PreparedNttCacheRepr { )); } match self { + Self::I16TailPair { .. } => Err(AkitaError::InvalidSetup( + "signed-i16 matvec requested from a tail-only cache".into(), + )), Self::Q32 { neg, params, @@ -721,6 +839,21 @@ impl PreparedNttCache { } } + /// Borrow an exactness-only paired tail cache. + #[must_use] + pub fn i16_tail_pair(&self) -> Option> { + match &self.0 { + PreparedNttCacheRepr::I16TailPair { neg, cyc, params } => { + Some(PreparedNttTailPairView { + negacyclic: neg, + cyclic: cyc, + params, + }) + } + _ => None, + } + } + /// Compute a shape-checked exact signed-i16 matrix product. #[inline] pub fn mat_vec_i16( @@ -772,19 +905,22 @@ where } fn validate_i16_rhs(log_basis: u32, rhs: &[[i16; D]]) -> Result { - if !(1..=16).contains(&log_basis) || rhs.is_empty() { + let Some(bound) = balanced_signed_digit_abs_bound(log_basis) else { + return Err(AkitaError::InvalidProof); + }; + if rhs.is_empty() { return Err(AkitaError::InvalidProof); } - let bound = 1i32 << (log_basis - 1); - if log_basis == 16 { - return Ok(bound as u64); + // At basis 16 every i16 value is already inside the balanced digit range. + if bound == 1u64 << (i16::BITS - 1) { + return Ok(bound); } let digits_valid = akita_algebra::ntt::i16_values_in_balanced_range(rhs.as_flattened(), bound as i16); if !digits_valid { return Err(AkitaError::InvalidProof); } - Ok(bound as u64) + Ok(bound) } fn validate_cache_mode(mode: NttCacheMode) -> Result<(), AkitaError> { @@ -898,6 +1034,11 @@ fn prepare_ntt_cache_with_tail_prefix { + return Err(AkitaError::InvalidSetup( + "i16-tail cache bypassed its dedicated representation".into(), + )); + } NttCacheMode::ExactNegacyclic { .. } => { return Err(AkitaError::InvalidSetup( "exact NTT cache bypassed its representation plan".into(), @@ -906,6 +1047,13 @@ fn prepare_ntt_cache_with_tail_prefix::new([I16_TAIL_PRIME]); + let (neg, cyc) = convert_flat_pair(matrix, ¶ms); + let prepared = PreparedNttCacheRepr::I16TailPair { neg, cyc, params }; + prepared.validate()?; + return Ok(PreparedNttCache(prepared)); + } let prepared = match selected { ProtocolCrtNttParams::Q32(params) => prepare!(params, Q32), ProtocolCrtNttParams::Q64(params) => prepare!(params, Q64), diff --git a/crates/akita-types/src/ntt_cache/tests.rs b/crates/akita-types/src/ntt_cache/tests.rs index fe793b4d9..db15dd5b9 100644 --- a/crates/akita-types/src/ntt_cache/tests.rs +++ b/crates/akita-types/src/ntt_cache/tests.rs @@ -30,6 +30,12 @@ fn prepare_materializes_exactly_the_requested_layout() { assert!(both.has_cyclic()); assert!(!both.has_i16_tail()); + let view = flat.ring_view::(1, 10).expect("matrix view"); + let tail_pair = + prepare_ntt_cache(view, NttCacheMode::I16TailBothTransforms).expect("tail transform pair"); + assert!(tail_pair.i16_tail_pair().is_some()); + assert_eq!(tail_pair.cache_bytes(), 10 * D * 2 * size_of::()); + let view = flat.ring_view::(1, 7).expect("matrix view"); let cyclic = prepare_ntt_cache(view, NttCacheMode::Cyclic).expect("cyclic transform"); assert!(!cyclic.has_negacyclic()); @@ -110,6 +116,31 @@ fn exact_selector_changes_layout_at_the_strict_capacity_boundary() { assert!(ntt_cache_requires_i16_tail::(safe + 1, 1 << 15).unwrap()); } +fn assert_quotient_tail_selectors_agree( + profile: SisModulusProfileId, +) { + for rhs_abs_bound in [1, 1 << 15, 1_000_000, u64::from(u32::MAX)] { + let profile_result = centered_quotient_requires_i16_tail(profile, D, rhs_abs_bound); + let field_result = centered_quotient_requires_i16_tail_for_field::(rhs_abs_bound); + match (profile_result, field_result) { + (Ok(profile_tail), Ok(field_tail)) => assert_eq!(profile_tail, field_tail), + (Err(_), Err(_)) => {} + (profile_result, field_result) => panic!( + "profile and field quotient-tail selectors disagree for D={D}, bound={rhs_abs_bound}: profile={profile_result:?}, field={field_result:?}" + ), + } + } +} + +#[test] +fn quotient_tail_planning_and_runtime_selectors_agree_for_all_fields() { + assert_quotient_tail_selectors_agree::(SisModulusProfileId::Q32Offset99); + assert_quotient_tail_selectors_agree::(SisModulusProfileId::Q64Offset59); + assert_quotient_tail_selectors_agree::( + SisModulusProfileId::Q128OffsetA7F7, + ); +} + #[test] fn q128_a7f7_selector_accepts_d512() { assert!(matches!( diff --git a/crates/akita-types/src/proof/setup_prefix_tests.rs b/crates/akita-types/src/proof/setup_prefix_tests.rs index 1a00d0131..a053ea215 100644 --- a/crates/akita-types/src/proof/setup_prefix_tests.rs +++ b/crates/akita-types/src/proof/setup_prefix_tests.rs @@ -20,7 +20,10 @@ fn sample_level_params() -> CommittedGroupParams { } fn prefix_eligible_level_params() -> CommittedGroupParams { - let field_element_digits = crate::sis::compute_num_digits_field_width(128, 3); + let field_element_digits = crate::sis::compute_num_digits_field_width( + SisModulusProfileId::Q32Offset99.field_bits(), + 3, + ); CommittedGroupParams::params_only( SisModulusProfileId::Q32Offset99, 64, diff --git a/crates/akita-types/src/schedule.rs b/crates/akita-types/src/schedule.rs index ccdd859ae..f1efcc5d3 100644 --- a/crates/akita-types/src/schedule.rs +++ b/crates/akita-types/src/schedule.rs @@ -4,7 +4,8 @@ use crate::descriptor_bytes::{push_u32, push_usize}; use crate::layout::params::append_schedule_sparse_challenge_descriptor_bytes; use crate::{ CommittedGroupParams, InnerCommitMatrixParams, OpeningClaimsLayout, OuterCommitMatrixParams, - PolynomialGroupLayout, RelationAddressGeometry, SetupContributionMode, TerminalResponseShape, + PolynomialGroupLayout, RelationAddressGeometry, SetupContributionMode, SignedDigitKernel, + TerminalResponseShape, }; use akita_field::{AkitaError, CanonicalField}; @@ -125,9 +126,14 @@ impl CommittedGroupProfile { .to_string(), )); } - if self.log_basis_inner == 0 || self.num_digits_inner == 0 { + if SignedDigitKernel::for_log_basis(self.log_basis_inner).is_none() + || self.num_digits_inner == 0 + || self.num_digits_inner + > crate::sis::compute_num_digits_field_width(field_bits, self.log_basis_inner) + { return Err(AkitaError::InvalidSetup( - "commitment group layout requires nonzero inner basis and digit depth".to_string(), + "commitment group inner basis or digit depth exceeds the supported field decomposition" + .to_string(), )); } if self.log_basis_outer == 0 || self.num_digits_outer == 0 { @@ -562,6 +568,14 @@ pub const TERMINAL_RESPONSE_MIN_TARGET_RETAIN_NUM: u128 = 1; pub const TERMINAL_RESPONSE_MIN_TARGET_RETAIN_DEN: u128 = 2; impl TerminalCommittedGroupParams { + /// Canonical byte encoding used to order semantically distinct terminal candidates. + #[must_use] + pub fn canonical_descriptor_bytes(&self) -> Vec { + let mut bytes = Vec::new(); + self.append_descriptor_bytes(&mut bytes); + bytes + } + pub fn from_expanded_group(params: CommittedGroupParams) -> Self { Self { log_basis_inner: params.log_basis_inner, @@ -907,17 +921,27 @@ impl FoldSchedule { push_usize(bytes, fold.input_witness_len); push_usize(bytes, fold.output_witness_len); } + self.terminal.append_descriptor_bytes(bytes); + } +} + +impl TerminalFoldStep { + /// Canonical ordering descriptor for a terminal suffix. + pub fn canonical_descriptor_bytes(&self) -> Vec { + let mut bytes = Vec::new(); + self.append_descriptor_bytes(&mut bytes); + bytes + } + + fn append_descriptor_bytes(&self, bytes: &mut Vec) { bytes.push(3); - self.terminal.params.witness.append_descriptor_bytes(bytes); + self.params.witness.append_descriptor_bytes(bytes); append_schedule_sparse_challenge_descriptor_bytes( bytes, - &self.terminal.params.sparse_challenge_config, + &self.params.sparse_challenge_config, ); - self.terminal - .params - .response_shape - .append_descriptor_bytes(bytes); - push_usize(bytes, self.terminal.input_witness_len); + self.params.response_shape.append_descriptor_bytes(bytes); + push_usize(bytes, self.input_witness_len); } } diff --git a/crates/akita-types/src/schedule_tests.rs b/crates/akita-types/src/schedule_tests.rs index ca2bf217c..4090ca456 100644 --- a/crates/akita-types/src/schedule_tests.rs +++ b/crates/akita-types/src/schedule_tests.rs @@ -1071,6 +1071,24 @@ fn validate_frozen_precommit_rejects_geometry_mismatch() { assert!(matches!(err, AkitaError::InvalidSetup(_))); } +#[test] +fn validate_frozen_precommit_rejects_unsupported_inner_decomposition() { + let mut unsupported_basis = precommitted_descriptor(20); + unsupported_basis.log_basis_inner = crate::MAX_I16_LOG_BASIS + 1; + assert!(matches!( + unsupported_basis.validate_frozen_precommit(128), + Err(AkitaError::InvalidSetup(_)) + )); + + let mut excessive_depth = precommitted_descriptor(20); + excessive_depth.num_digits_inner = + crate::sis::compute_num_digits_field_width(128, excessive_depth.log_basis_inner) + 1; + assert!(matches!( + excessive_depth.validate_frozen_precommit(128), + Err(AkitaError::InvalidSetup(_)) + )); +} + #[test] fn schedule_row_identity_binds_profiles_and_expanded_schedule() { let schedule = recursive_schedule(64, 64, false); diff --git a/crates/akita-types/src/signed_digit.rs b/crates/akita-types/src/signed_digit.rs new file mode 100644 index 000000000..da36304b5 --- /dev/null +++ b/crates/akita-types/src/signed_digit.rs @@ -0,0 +1,81 @@ +//! Canonical signed-digit storage selection. + +/// Smallest supported signed-digit decomposition basis exponent. +pub const MIN_SIGNED_DIGIT_LOG_BASIS: u32 = 1; + +/// Largest basis exponent whose balanced digits fit in signed `i8` storage. +pub const MAX_I8_LOG_BASIS: u32 = i8::BITS; + +/// Largest basis exponent whose balanced digits fit in signed `i16` storage. +pub const MAX_I16_LOG_BASIS: u32 = i16::BITS; + +/// Integer storage used by a supported balanced signed-digit kernel. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum SignedDigitKernel { + /// Balanced digits stored in `i8` coefficients. + I8, + /// Balanced digits stored in `i16` coefficients. + I16, +} + +/// Return the absolute bound for balanced base-`2^log_basis` digits. +pub const fn balanced_signed_digit_abs_bound(log_basis: u32) -> Option { + match SignedDigitKernel::for_log_basis(log_basis) { + Some(_) => Some(1u64 << (log_basis - 1)), + None => None, + } +} + +impl SignedDigitKernel { + /// Select the canonical storage kernel for `log_basis`. + pub const fn for_log_basis(log_basis: u32) -> Option { + if log_basis < MIN_SIGNED_DIGIT_LOG_BASIS { + None + } else if log_basis <= MAX_I8_LOG_BASIS { + Some(Self::I8) + } else if log_basis <= MAX_I16_LOG_BASIS { + Some(Self::I16) + } else { + None + } + } + + /// Largest supported basis exponent for this storage kernel. + pub const fn max_log_basis(self) -> u32 { + match self { + Self::I8 => MAX_I8_LOG_BASIS, + Self::I16 => MAX_I16_LOG_BASIS, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn kernel_selection_covers_exact_storage_boundaries() { + assert_eq!(SignedDigitKernel::for_log_basis(0), None); + assert_eq!( + SignedDigitKernel::for_log_basis(1), + Some(SignedDigitKernel::I8) + ); + assert_eq!( + SignedDigitKernel::for_log_basis(8), + Some(SignedDigitKernel::I8) + ); + assert_eq!( + SignedDigitKernel::for_log_basis(9), + Some(SignedDigitKernel::I16) + ); + assert_eq!( + SignedDigitKernel::for_log_basis(16), + Some(SignedDigitKernel::I16) + ); + assert_eq!(SignedDigitKernel::for_log_basis(17), None); + assert_eq!(balanced_signed_digit_abs_bound(0), None); + assert_eq!(balanced_signed_digit_abs_bound(8), Some(128)); + assert_eq!(balanced_signed_digit_abs_bound(16), Some(32_768)); + assert_eq!(balanced_signed_digit_abs_bound(17), None); + } +} diff --git a/crates/akita-types/src/sis/ajtai_key.rs b/crates/akita-types/src/sis/ajtai_key.rs index 19e6d7265..c3da70f41 100644 --- a/crates/akita-types/src/sis/ajtai_key.rs +++ b/crates/akita-types/src/sis/ajtai_key.rs @@ -8,7 +8,10 @@ use akita_field::AkitaError; -use super::generated_sis_table::sis_max_widths as generated_sis_max_widths; +use super::coverage::{sis_role_cell, GADGET_COEFF_LINF_ANCHORS}; +use super::generated_sis_table::{ + sis_max_widths as generated_sis_max_widths, Q128_INNER_D512_DIGEST, SIS_TABLE_DIGEST, +}; use crate::descriptor_bytes::{push_u128, push_usize, sis_modulus_profile_tag}; /// Digest of the generated scalar table and its coverage certificate. @@ -29,20 +32,12 @@ impl SisTableDigest { pub const TAG: u8 = 1; /// Digest committed by the current generated artifact. - pub const CURRENT: Self = Self([ - 0xb4, 0x65, 0x7f, 0x62, 0x90, 0x61, 0x5c, 0xf3, 0x58, 0x55, 0x77, 0xd7, 0xad, 0x51, 0x9f, - 0x9d, 0xc5, 0x5d, 0x4b, 0x8d, 0xcc, 0x63, 0x16, 0x11, 0x1b, 0x26, 0x70, 0x42, 0xac, 0x3b, - 0x92, 0x94, - ]); + pub const CURRENT: Self = Self(SIS_TABLE_DIGEST); /// Additive q128 Inner/512 coverage generated directly for `D = 512`. /// /// Existing schedules intentionally remain on [`Self::CURRENT`]. - pub const Q128_INNER_D512: Self = Self([ - 0xc2, 0x02, 0x7a, 0x80, 0xd8, 0x4b, 0x01, 0xdb, 0xbf, 0xfa, 0xe5, 0x71, 0xcb, 0x9b, 0xf0, - 0xe9, 0x68, 0x6d, 0xb6, 0xe7, 0x62, 0xc5, 0xa4, 0x20, 0x2d, 0x5e, 0x53, 0xa3, 0x06, 0xe6, - 0xca, 0xce, - ]); + pub const Q128_INNER_D512: Self = Self(Q128_INNER_D512_DIGEST); } /// Matrix role whose coefficient and ring geometry is being priced. @@ -225,88 +220,6 @@ pub struct SisTableKey { pub coeff_linf_bound: u128, } -/// One reachable role coverage cell used by generation and runtime checks. -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct SisRoleCell { - /// Matrix role. - pub role: SisMatrixRole, - /// Exact modulus profile. - pub modulus_profile: SisModulusProfileId, - /// Ring dimension. - pub ring_dimension: u32, - /// Exact role coefficient bound cell. - pub coeff_linf_bound: u128, - /// Maximum supported module rank. - pub max_module_rank: u32, - /// Largest required ring width from the planner domain. - pub required_max_width: u64, -} - -/// Exact gadget anchors used by B and D. -pub const GADGET_COEFF_LINF_ANCHORS: &[u128] = &[3, 7, 15, 31, 63, 127, 255]; - -/// Ring dimensions supported by A for every SIS modulus profile. -/// -/// Q128 has the additional profile-specific `D = 512` cell enforced by -/// [`sis_role_cell`]. -pub const A_ROLE_RING_DIMS: &[u32] = &[64, 128, 256]; - -/// Admitted B/D commitment-matrix dimensions. -pub const BD_ROLE_RING_DIMS: &[u32] = &[64, 128, 256]; - -/// Production matrix roles with checked-in coverage. -pub const SIS_MATRIX_ROLES: &[SisMatrixRole] = &[ - SisMatrixRole::Inner, - SisMatrixRole::Outer, - SisMatrixRole::Open, -]; - -/// Whether generated SIS security floors cover one role/profile/dimension. -#[must_use] -pub fn sis_role_dimension_supported( - role: SisMatrixRole, - modulus_profile: SisModulusProfileId, - ring_dimension: u32, -) -> bool { - match role { - SisMatrixRole::Inner => { - A_ROLE_RING_DIMS.contains(&ring_dimension) - || (modulus_profile == SisModulusProfileId::Q128OffsetA7F7 && ring_dimension == 512) - } - SisMatrixRole::Outer | SisMatrixRole::Open => BD_ROLE_RING_DIMS.contains(&ring_dimension), - } -} - -/// Return whether the exact role cell is part of the canonical coverage. -/// -/// The function is deliberately role aware. It does not form a product of -/// independent dimension and bound lists for one shared table. -#[must_use] -pub fn sis_role_cell( - role: SisMatrixRole, - modulus_profile: SisModulusProfileId, - ring_dimension: u32, - coeff_linf_bound: u128, -) -> Option { - let bounds = match role { - SisMatrixRole::Inner => COEFF_LINF_BUCKETS, - SisMatrixRole::Outer | SisMatrixRole::Open => GADGET_COEFF_LINF_ANCHORS, - }; - if !sis_role_dimension_supported(role, modulus_profile, ring_dimension) - || !bounds.contains(&coeff_linf_bound) - { - return None; - } - Some(SisRoleCell { - role, - modulus_profile, - ring_dimension, - coeff_linf_bound, - max_module_rank: 20, - required_max_width: 6_400_000_000_000, - }) -} - /// Smallest coefficient-`L∞` bucket with `B >= linf`. #[must_use] pub fn ceil_coeff_linf_bucket(linf: u128) -> Option { @@ -425,12 +338,11 @@ pub fn min_secure_rank(key: SisTableKey, width: u64) -> Option { key.coeff_linf_bound, )?; let max_module_rank = usize::try_from(role_cell.max_module_rank).ok()?; - for (i, &max_width) in widths.iter().take(max_module_rank).enumerate() { - if width <= max_width { - return Some(i + 1); - } - } - None + let widths = &widths[..max_module_rank.min(widths.len())]; + widths + .iter() + .position(|&max_width| width <= max_width) + .map(|rank_index| rank_index + 1) } #[derive(Debug, Clone, Copy)] @@ -664,6 +576,18 @@ macro_rules! define_commit_matrix_params { self.sis_table_key.ring_dimension as usize } + /// Input dimension after expanding module coordinates into raw ring coefficients. + #[inline] + pub fn raw_input_dimension(&self) -> Option { + self.input_width.checked_mul(self.ring_dimension()) + } + + /// Output dimension after expanding module coordinates into raw ring coefficients. + #[inline] + pub fn raw_output_dimension(&self) -> Option { + self.output_rank.checked_mul(self.ring_dimension()) + } + #[must_use] pub fn max_secure_collision_linf(&self) -> Option { COEFF_LINF_BUCKETS @@ -710,6 +634,10 @@ define_commit_matrix_params!( "Parameters for the opening commitment matrix (D)." ); +#[cfg(test)] +#[path = "ajtai_key/artifact_tests.rs"] +mod artifact_tests; + #[cfg(test)] mod tests { use super::*; @@ -888,6 +816,79 @@ mod tests { assert_eq!(min_secure_rank(unknown, 1), None); } + #[test] + fn min_secure_rank_uses_the_first_admissible_nonmonotone_entry() { + let q32 = key( + SisTableDigest::CURRENT, + SisModulusProfileId::Q32Offset99, + SisMatrixRole::Inner, + 64, + 32_767, + ); + assert_eq!(min_secure_rank(q32, 5), Some(3)); + } + + #[test] + fn min_secure_rank_matches_linear_first_match_for_every_generated_row() { + let profiles = [ + SisModulusProfileId::Q32Offset99, + SisModulusProfileId::Q64Offset59, + SisModulusProfileId::Q128OffsetA7F7, + ]; + let roles = [ + SisMatrixRole::Outer, + SisMatrixRole::Inner, + SisMatrixRole::Open, + ]; + let dimensions = [32, 64, 128, 256, 512]; + + for profile in profiles { + for role in roles { + for dimension in dimensions { + for &bound in COEFF_LINF_BUCKETS { + let Some(cell) = sis_role_cell(role, profile, dimension, bound) else { + continue; + }; + let digest = if dimension == 512 { + SisTableDigest::Q128_INNER_D512 + } else { + SisTableDigest::CURRENT + }; + let widths = sis_max_widths( + DEFAULT_SIS_SECURITY_POLICY, + digest, + profile, + dimension, + bound, + ) + .expect("reachable role cell has a generated SIS row"); + let widths = &widths[..usize::try_from(cell.max_module_rank) + .expect("module rank fits usize") + .min(widths.len())]; + let probes = widths + .iter() + .copied() + .flat_map(|width| [width, width.saturating_add(1)]); + for width in probes { + let expected = widths + .iter() + .position(|&max_width| width <= max_width) + .map(|index| index + 1); + assert_eq!( + min_secure_rank( + key(digest, profile, role, dimension, bound), + width, + ), + expected, + "profile={profile:?}, role={role:?}, D={dimension}, bound={bound}, width={width}", + ); + } + } + } + } + } + } + #[test] fn expanded_digest_preserves_existing_rows() { for &bound in COEFF_LINF_BUCKETS { diff --git a/crates/akita-types/src/sis/ajtai_key/artifact_tests.rs b/crates/akita-types/src/sis/ajtai_key/artifact_tests.rs new file mode 100644 index 000000000..27de14bba --- /dev/null +++ b/crates/akita-types/src/sis/ajtai_key/artifact_tests.rs @@ -0,0 +1,69 @@ +use super::*; +use sha3::{Digest, Sha3_256}; + +fn generated_artifact_digest() -> [u8; 32] { + const DOMAIN: &[u8] = b"akita-sis-table-digest-adps16-quantum-128bit\0"; + const FILES: &[(&str, &[u8])] = &[ + ("q32.rs", include_bytes!("../generated_sis_table/q32.rs")), + ("q64.rs", include_bytes!("../generated_sis_table/q64.rs")), + ("q128.rs", include_bytes!("../generated_sis_table/q128.rs")), + ( + "policy_audit.csv", + include_bytes!("../generated_sis_table/policy_audit.csv"), + ), + ( + "policy_review.txt", + include_bytes!("../generated_sis_table/policy_review.txt"), + ), + ]; + let mut hasher = Sha3_256::new(); + hasher.update(DOMAIN); + for &(filename, contents) in FILES { + hasher.update( + u64::try_from(contents.len()) + .expect("artifact length fits u64") + .to_le_bytes(), + ); + hasher.update(filename.as_bytes()); + hasher.update([0]); + hasher.update(contents); + } + hasher.finalize().into() +} + +#[test] +fn generated_artifacts_match_both_runtime_digests() { + let base_digest = generated_artifact_digest(); + assert_eq!(base_digest, SIS_TABLE_DIGEST); + + let mut hasher = Sha3_256::new(); + hasher.update(b"akita-sis-table-q128-inner-d512-direct-v1\0"); + hasher.update(base_digest); + hasher.update(SisModulusProfileId::Q128OffsetA7F7.modulus().to_le_bytes()); + hasher.update(512u32.to_le_bytes()); + hasher.update(super::super::SIS_REQUIRED_MAX_WIDTH.to_le_bytes()); + hasher.update(super::super::SIS_MAX_MODULE_RANK.to_le_bytes()); + hasher.update( + u64::try_from(COEFF_LINF_BUCKETS.len()) + .expect("bucket count fits u64") + .to_le_bytes(), + ); + for &bound in COEFF_LINF_BUCKETS { + hasher.update(bound.to_le_bytes()); + } + for &bound in COEFF_LINF_BUCKETS { + let widths = generated_sis_max_widths( + DEFAULT_SIS_SECURITY_POLICY, + SisModulusProfileId::Q128OffsetA7F7, + 512, + bound, + ) + .expect("generated q128 Inner/512 row"); + assert_eq!(widths.len(), super::super::SIS_MAX_MODULE_RANK as usize); + for &width in widths { + hasher.update(width.to_le_bytes()); + } + } + let extension_digest: [u8; 32] = hasher.finalize().into(); + assert_eq!(extension_digest, Q128_INNER_D512_DIGEST); +} diff --git a/crates/akita-types/src/sis/compression.rs b/crates/akita-types/src/sis/compression.rs index 7d243e09e..da300e626 100644 --- a/crates/akita-types/src/sis/compression.rs +++ b/crates/akita-types/src/sis/compression.rs @@ -30,6 +30,20 @@ const COMPRESSION_SIS_CELLS: &[(SisModulusProfileId, u32, u64)] = &[ (SisModulusProfileId::Q32Offset99, 64, 1_769), ]; +/// Enumerate the exact production compression coverage cells. +pub fn compression_sis_cells() -> impl ExactSizeIterator { + COMPRESSION_SIS_CELLS + .iter() + .copied() + .map( + |(modulus_profile, ring_dimension, sis_max_width)| CompressionSisCell { + modulus_profile, + ring_dimension, + sis_max_width, + }, + ) +} + /// Return the exact production compression cell, if it is in scope. #[must_use] pub fn compression_sis_cell( diff --git a/crates/akita-types/src/sis/coverage.rs b/crates/akita-types/src/sis/coverage.rs new file mode 100644 index 000000000..c7d1aab73 --- /dev/null +++ b/crates/akita-types/src/sis/coverage.rs @@ -0,0 +1,132 @@ +//! Exact role, modulus, dimension, and coefficient-bound coverage for SIS rows. + +use super::ajtai_key::{SisMatrixRole, SisModulusProfileId, COEFF_LINF_BUCKETS}; + +/// One reachable role coverage cell used by generation and runtime checks. +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct SisRoleCell { + /// Matrix role. + pub role: SisMatrixRole, + /// Exact modulus profile. + pub modulus_profile: SisModulusProfileId, + /// Ring dimension. + pub ring_dimension: u32, + /// Exact role coefficient bound cell. + pub coeff_linf_bound: u128, + /// Maximum supported module rank. + pub max_module_rank: u32, + /// Largest required ring width from the planner domain. + pub required_max_width: u64, +} + +/// Exact gadget anchors used by B and D. +pub const GADGET_COEFF_LINF_ANCHORS: &[u128] = &[3, 7, 15, 31, 63, 127, 255]; + +/// Ring dimensions supported by A for every SIS modulus profile. +/// +/// Q128 has the additional profile-specific `D = 512` cell enforced by +/// [`sis_role_cell`]. +pub const A_ROLE_RING_DIMS: &[u32] = &[64, 128, 256]; + +/// Admitted B/D commitment-matrix dimensions. +pub const BD_ROLE_RING_DIMS: &[u32] = &[64, 128, 256]; + +/// Production matrix roles with checked-in coverage. +pub const SIS_MATRIX_ROLES: &[SisMatrixRole] = &[ + SisMatrixRole::Inner, + SisMatrixRole::Outer, + SisMatrixRole::Open, +]; + +/// Maximum module rank searched for every production scalar SIS cell. +/// This is the audited ADPS16 table-generation domain from +/// `specs/sis-quantum128-scalar-n-table.md`. +pub const SIS_MAX_MODULE_RANK: u32 = 20; + +/// Per-cell scalar-width search cap used by the production generator. +/// A required runtime width above this cap fails generation; the value is not +/// itself a security boundary. +pub const SIS_REQUIRED_MAX_WIDTH: u64 = 6_400_000_000_000; + +fn role_dimensions( + role: SisMatrixRole, + modulus_profile: SisModulusProfileId, +) -> impl Iterator { + let base = match role { + SisMatrixRole::Inner => A_ROLE_RING_DIMS, + SisMatrixRole::Outer | SisMatrixRole::Open => BD_ROLE_RING_DIMS, + }; + let q128_inner_extension = (role == SisMatrixRole::Inner + && modulus_profile == SisModulusProfileId::Q128OffsetA7F7) + .then_some(512); + base.iter().copied().chain(q128_inner_extension) +} + +fn role_bounds(role: SisMatrixRole) -> &'static [u128] { + match role { + SisMatrixRole::Inner => COEFF_LINF_BUCKETS, + SisMatrixRole::Outer | SisMatrixRole::Open => GADGET_COEFF_LINF_ANCHORS, + } +} + +/// Whether generated SIS security floors cover one role/profile/dimension. +#[must_use] +pub fn sis_role_dimension_supported( + role: SisMatrixRole, + modulus_profile: SisModulusProfileId, + ring_dimension: u32, +) -> bool { + role_dimensions(role, modulus_profile).any(|dimension| dimension == ring_dimension) +} + +/// Return whether the exact role cell is part of the canonical coverage. +/// +/// The function is deliberately role aware. It does not form a product of +/// independent dimension and bound lists for one shared table. +#[must_use] +pub fn sis_role_cell( + role: SisMatrixRole, + modulus_profile: SisModulusProfileId, + ring_dimension: u32, + coeff_linf_bound: u128, +) -> Option { + let bounds = role_bounds(role); + let trivial_collision_bound = (modulus_profile.modulus() - 1) / 2; + if !sis_role_dimension_supported(role, modulus_profile, ring_dimension) + || !bounds.contains(&coeff_linf_bound) + || coeff_linf_bound >= trivial_collision_bound + { + return None; + } + Some(SisRoleCell { + role, + modulus_profile, + ring_dimension, + coeff_linf_bound, + max_module_rank: SIS_MAX_MODULE_RANK, + required_max_width: SIS_REQUIRED_MAX_WIDTH, + }) +} + +/// Enumerate every exact production matrix-role coverage cell. +pub fn sis_role_cells() -> Vec { + let profiles = [ + SisModulusProfileId::Q32Offset99, + SisModulusProfileId::Q64Offset59, + SisModulusProfileId::Q128OffsetA7F7, + ]; + let mut cells = Vec::new(); + for role in SIS_MATRIX_ROLES.iter().copied() { + for profile in profiles { + for dimension in role_dimensions(role, profile) { + let bounds = role_bounds(role); + cells.extend( + bounds + .iter() + .filter_map(|&bound| sis_role_cell(role, profile, dimension, bound)), + ); + } + } + } + cells +} diff --git a/crates/akita-types/src/sis/decomposition_digits.rs b/crates/akita-types/src/sis/decomposition_digits.rs index 7cf6589d5..0a7833478 100644 --- a/crates/akita-types/src/sis/decomposition_digits.rs +++ b/crates/akita-types/src/sis/decomposition_digits.rs @@ -175,13 +175,28 @@ pub fn num_digits_for_bound(log_bound: u32, field_bits: u32, log_basis: u32) -> /// level commits the balanced-digit witness, whose commit bound collapses to /// `log_basis`. pub fn num_digits_inner(decomposition: DecompositionParams, is_root: bool) -> usize { - let field_bits = decomposition.field_bits(); let bound = if is_root { decomposition.log_commit_bound } else { decomposition.log_basis }; - num_digits_for_bound(bound, field_bits, decomposition.log_basis) + num_digits_inner_for_bound(decomposition, bound) +} + +/// `δ_commit` for an explicit source coefficient bound. +/// +/// This is the general planner entry point when the source bound and selected +/// A decomposition basis are independent. `source_log_bound` follows the same +/// signed-bound convention as [`num_digits_for_bound`]. +pub fn num_digits_inner_for_bound( + decomposition: DecompositionParams, + source_log_bound: u32, +) -> usize { + num_digits_for_bound( + source_log_bound, + decomposition.field_bits(), + decomposition.log_basis, + ) } /// `δ_setup`: digits per coefficient for setup-prefix commitments. diff --git a/crates/akita-types/src/sis/generated_sis_table/mod.rs b/crates/akita-types/src/sis/generated_sis_table/mod.rs index c7b0b0ea2..44387a66d 100644 --- a/crates/akita-types/src/sis/generated_sis_table/mod.rs +++ b/crates/akita-types/src/sis/generated_sis_table/mod.rs @@ -1,8 +1,13 @@ -// AUTO-GENERATED projection of scalar ADPS16 quantum cutoffs into runtime rank tables. +// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand. // -// Generator certifies scalar cells (B, n) -> max m. The checked-in runtime artifact -// stores the Module-SIS projection (d, B) -> max ring widths by rank, with -// width[r-1] = cutoff_m(B, n = r * d) / d. Role coverage is validated before lookup. +// SIS max-width tables for Quantum128BitADPS16. +// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits. +// Each row records the selected optimizer's accepted cutoff and rejected successor. +// Shape and norm: LGSA, coefficient L-infinity. +// Rust estimator path: akita-sis-estimator::width_table. +// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank. +// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d. +// Optimizer profile: local-minimum+proven-pruned-certification. mod q128; mod q32; @@ -10,21 +15,33 @@ mod q64; use super::{SisModulusProfileId, SisSecurityPolicyId}; +/// SHA3-256 identity of the generated base table and provenance files. +pub(super) const SIS_TABLE_DIGEST: [u8; 32] = [ + 0xa8, 0xa6, 0x1d, 0xf0, 0xf6, 0x07, 0x35, 0xc8, 0xee, 0x94, 0x8b, 0xa9, 0xa7, 0x91, 0x70, 0xad, + 0x24, 0x72, 0x5a, 0x57, 0x2b, 0x7e, 0x3e, 0x66, 0xdf, 0xc4, 0xed, 0x01, 0x39, 0xb1, 0xd6, 0x0e, +]; + +/// SHA3-256 identity of the base table plus q128 Inner/512 coverage. +pub(super) const Q128_INNER_D512_DIGEST: [u8; 32] = [ + 0xb2, 0x3c, 0x0b, 0x1c, 0x9f, 0xcf, 0x80, 0x05, 0xc3, 0x50, 0x28, 0xc6, 0x1d, 0x62, 0x3d, 0x85, + 0x69, 0x61, 0xbf, 0x9a, 0xe2, 0x17, 0xf1, 0xec, 0xc4, 0xa7, 0x68, 0x9c, 0x96, 0x8b, 0xb5, 0x19, +]; + /// Generated SIS max-width table for the named security policy. /// -/// For each `(d, coeff_linf_bound)` returns the maximum secure ring-element width -/// per module rank (`widths[rank - 1]`), projected from scalar cutoffs. +/// Runtime keys are `(d, coeff_linf_bound) -> widths[rank - 1]`, projected from +/// scalar cutoffs as `width = cutoff_m(B, n = rank * d) / d`. #[rustfmt::skip] pub(crate) fn sis_max_widths( policy: SisSecurityPolicyId, - profile: SisModulusProfileId, + modulus_profile: SisModulusProfileId, d: u32, coeff_linf_bound: u128, ) -> Option<&'static [u64]> { if policy != SisSecurityPolicyId::Quantum128BitADPS16 { return None; } - match profile { + match modulus_profile { SisModulusProfileId::Q32Offset99 => q32::sis_max_widths(d, coeff_linf_bound), SisModulusProfileId::Q64Offset59 => q64::sis_max_widths(d, coeff_linf_bound), SisModulusProfileId::Q128OffsetA7F7 => q128::sis_max_widths(d, coeff_linf_bound), diff --git a/crates/akita-types/src/sis/generated_sis_table/policy_audit.csv b/crates/akita-types/src/sis/generated_sis_table/policy_audit.csv new file mode 100644 index 000000000..6068aef80 --- /dev/null +++ b/crates/akita-types/src/sis/generated_sis_table/policy_audit.csv @@ -0,0 +1,6701 @@ +policy,modulus_profile,d,rank,coeff_linf_bound,max_width,scalar_n,search_cap,hit_cap,profile,target_bits,max_adps16_quantum_rop_log2,next_adps16_quantum_rop_log2,max_beta,max_zeta,next_beta,next_zeta,cutoff_kind +Quantum128BitADPS16,q32,64,1,2,324,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,2,2,25091,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,3,2,575569,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,2,7606285,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,2,71853765,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,2,538172268,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,2,3391152362,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,2,18668388748,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,2,92125536693,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,2,415144913962,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,2,1732070632527,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q32,64,13,2,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.895000000000,,543,0,,,AtLeast +Quantum128BitADPS16,q32,64,14,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.530000000000,,602,0,,,AtLeast +Quantum128BitADPS16,q32,64,15,2,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.430000000000,,662,0,,,AtLeast +Quantum128BitADPS16,q32,64,16,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.330000000000,,722,0,,,AtLeast +Quantum128BitADPS16,q32,64,17,2,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.495000000000,,783,0,,,AtLeast +Quantum128BitADPS16,q32,64,18,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.190000000000,,846,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,2,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.885000000000,,909,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,2,12545,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,2,2,3803142,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,2,269086134,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,2,9334194374,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,2,207572456981,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,2,3381235685724,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.255000000000,,567,0,,,AtLeast +Quantum128BitADPS16,q32,128,8,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.465000000000,,681,0,,,AtLeast +Quantum128BitADPS16,q32,128,9,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,211.470000000000,,798,0,,,AtLeast +Quantum128BitADPS16,q32,128,10,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.535000000000,,919,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,2,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,309.255000000000,,1167,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,2,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,343.175000000000,,1295,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.625000000000,,1425,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,2,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,412.340000000000,,1556,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,447.850000000000,,1690,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,2,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,483.625000000000,,1825,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,519.665000000000,,1961,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,2,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.235000000000,,2099,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,593.335000000000,,2239,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,2,1901571,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,2,4667097187,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,2,1690617842862,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.395000000000,,643,0,,,AtLeast +Quantum128BitADPS16,q32,256,5,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,230.285000000000,,869,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.825000000000,,1105,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,357.750000000000,,1350,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.530000000000,,1602,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,492.900000000000,,1860,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,562.860000000000,,2124,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,2,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,634.145000000000,,2393,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,2,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,706.755000000000,,2667,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,2,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,780.425000000000,,2945,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,2,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.155000000000,,3227,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,2,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,930.680000000000,,3512,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,2,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1007.265000000000,,3801,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,2,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1084.645000000000,,4093,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,2,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1162.820000000000,,4388,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,2,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1241.790000000000,,4686,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,2,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:32336.886465868978,,4934,1,,,AtLeast +Quantum128BitADPS16,q32,64,1,3,112,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,2,3,9989,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,3,3,236588,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,3,3174318,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,3,30261444,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,3,228063958,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,3,1443638561,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,3,7975200991,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,3,39466941674,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,3,178260238176,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,3,745181491885,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,3,2914178335456,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,3,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.825000000000,,505,0,,,AtLeast +Quantum128BitADPS16,q32,64,14,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q32,64,15,3,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.240000000000,,616,0,,,AtLeast +Quantum128BitADPS16,q32,64,16,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.345000000000,,673,0,,,AtLeast +Quantum128BitADPS16,q32,64,17,3,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.450000000000,,730,0,,,AtLeast +Quantum128BitADPS16,q32,64,18,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.085000000000,,789,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,3,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.720000000000,,848,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.620000000000,,908,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,3,4994,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,2,3,1587159,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,3,114031979,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,3,3987600495,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,3,89130119088,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,3,1457089167728,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.185000000000,,529,0,,,AtLeast +Quantum128BitADPS16,q32,128,8,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q32,128,9,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.690000000000,,746,0,,,AtLeast +Quantum128BitADPS16,q32,128,10,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.635000000000,,859,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,3,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.110000000000,,974,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,289.380000000000,,1092,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,3,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,321.180000000000,,1212,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.510000000000,,1334,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,3,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,386.370000000000,,1458,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,419.760000000000,,1584,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,3,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.415000000000,,1711,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.335000000000,,1839,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,3,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,521.785000000000,,1969,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.500000000000,,2100,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,3,793579,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,3,1993800247,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,3,728544583864,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.265000000000,,601,0,,,AtLeast +Quantum128BitADPS16,q32,256,5,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,215.445000000000,,813,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,274.275000000000,,1035,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,335.225000000000,,1265,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.295000000000,,1503,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.690000000000,,1746,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,528.675000000000,,1995,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,3,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,595.985000000000,,2249,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,3,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.355000000000,,2507,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,3,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,733.785000000000,,2769,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,3,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,804.275000000000,,3035,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,3,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,875.560000000000,,3304,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,3,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,947.640000000000,,3576,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,3,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1020.780000000000,,3852,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,3,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1094.450000000000,,4130,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,3,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1168.915000000000,,4411,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,3,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1243.910000000000,,4694,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,7,8,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,124.285000000000,500,0,469,0,Exact +Quantum128BitADPS16,q32,64,2,7,1380,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,3,7,36020,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,7,503495,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,7,4913709,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,7,37608772,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,7,240719442,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,7,1341082584,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,7,6681003244,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,7,30340334350,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,7,127407183430,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,7,500169834348,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,7,1851532056946,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,7,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.260000000000,,484,0,,,AtLeast +Quantum128BitADPS16,q32,64,15,7,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q32,64,16,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q32,64,17,7,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.010000000000,,634,0,,,AtLeast +Quantum128BitADPS16,q32,64,18,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,181.525000000000,,685,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,7,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,7,690,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,2,7,251747,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,7,18804386,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,7,670541292,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,7,15170167175,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,7,250084917174,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,7,3253996769315,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.280000000000,,552,0,,,AtLeast +Quantum128BitADPS16,q32,128,9,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.985000000000,,649,0,,,AtLeast +Quantum128BitADPS16,q32,128,10,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,198.485000000000,,749,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,7,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.515000000000,,851,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.075000000000,,955,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,7,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,281.165000000000,,1061,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,309.520000000000,,1168,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,7,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,338.670000000000,,1278,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.085000000000,,1389,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,7,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,397.765000000000,,1501,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.975000000000,,1615,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,7,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,458.450000000000,,1730,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,489.190000000000,,1846,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,7,125873,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,7,335270646,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,7,125042458587,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.595000000000,,523,0,,,AtLeast +Quantum128BitADPS16,q32,256,5,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.355000000000,,907,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.415000000000,,1111,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,350.065000000000,,1321,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,407.305000000000,,1537,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,465.605000000000,,1757,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,7,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,525.495000000000,,1983,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,7,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.180000000000,,2212,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,7,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,647.660000000000,,2444,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,7,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,710.200000000000,,2680,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,7,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,773.800000000000,,2920,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,7,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,837.930000000000,,3162,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,7,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,902.855000000000,,3407,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,7,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,968.310000000000,,3654,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,7,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1034.560000000000,,3904,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,7,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1101.340000000000,,4156,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,15,6,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.013773498136,91.690000000000,384,0,346,0,Exact +Quantum128BitADPS16,q32,64,2,15,208,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,3,15,6367,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,15,93943,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,15,943161,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,15,7348487,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,15,47620978,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,15,267753971,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,15,1343460880,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,15,6136166875,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,15,25889677714,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,15,102042218560,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,15,379031410507,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,15,1336211803867,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,15,4496517693285,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q32,64,17,15,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q32,64,18,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,160.590000000000,,606,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,15,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,173.045000000000,,653,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.500000000000,,700,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,15,104,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,2,15,46971,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,15,3674243,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,15,133876985,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,15,3068083437,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,15,51021109280,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,15,668105901933,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q32,128,9,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.375000000000,,575,0,,,AtLeast +Quantum128BitADPS16,q32,128,10,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.225000000000,,665,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,15,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.340000000000,,756,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,15,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.425000000000,,945,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,15,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,302.100000000000,,1140,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.600000000000,,1240,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,15,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.365000000000,,1341,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.395000000000,,1443,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,15,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,409.955000000000,,1547,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.780000000000,,1652,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,15,23485,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,15,66938492,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,15,25510554640,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,15,3628240338624,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.480000000000,,632,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.120000000000,,808,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.880000000000,,992,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.640000000000,,1376,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.375000000000,,1575,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,15,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.170000000000,,1778,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,15,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.025000000000,,1985,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,15,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,581.675000000000,,2195,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,15,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.120000000000,,2408,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,15,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,695.360000000000,,2624,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,15,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.395000000000,,2843,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,15,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,811.960000000000,,3064,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,15,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,871.320000000000,,3288,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,15,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,930.945000000000,,3513,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,15,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,991.365000000000,,3741,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,31,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,425.061983977748,119.999203826928,256,0,320,0,Exact +Quantum128BitADPS16,q32,64,2,31,26,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q32,64,3,31,1154,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,31,18455,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,31,192328,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,31,1531882,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,31,10074728,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,31,57253877,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,31,289617977,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,31,1331352677,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,31,5646769108,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,31,22353781795,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,31,83340596623,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,31,294742214500,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,31,994608356897,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,31,3218053291099,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,31,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.500000000000,,500,0,,,AtLeast +Quantum128BitADPS16,q32,64,18,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.365000000000,,541,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,31,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.890000000000,,626,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,31,13,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,126.935000000000,484,0,479,0,Exact +Quantum128BitADPS16,q32,128,2,31,9227,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,31,765941,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,31,28626938,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,31,665676338,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,31,11176890897,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,31,147371107250,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,31,1609026645549,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q32,128,10,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,31,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.670000000000,,678,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,31,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.985000000000,,849,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.305000000000,,937,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,31,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.155000000000,,1027,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.005000000000,,1117,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,31,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.385000000000,,1209,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,31,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.940000000000,,1396,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.115000000000,,1491,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,31,4613,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,31,14313469,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,31,5588445448,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,31,804513322774,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.255000000000,,567,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,192.655000000000,,727,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.910000000000,,894,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.490000000000,,1066,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.395000000000,,1243,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.360000000000,,1424,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,31,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.385000000000,,1609,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,31,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.205000000000,,1797,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,31,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.820000000000,,1988,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,31,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,578.230000000000,,2182,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,31,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,630.435000000000,,2379,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,31,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,683.170000000000,,2578,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,31,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.700000000000,,2780,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,31,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,790.760000000000,,2984,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,31,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,845.350000000000,,3190,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,31,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,900.205000000000,,3397,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,63,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,196.260545401415,56.445000000000,256,0,213,0,Exact +Quantum128BitADPS16,q32,64,2,63,9,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.485000000000,122.960000000000,549,0,464,0,Exact +Quantum128BitADPS16,q32,64,3,63,196,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,4,63,3618,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,63,39769,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,63,326032,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,63,2184033,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,63,12572646,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,63,64211777,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,63,297388338,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,63,1268924053,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,63,5048157603,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,63,18899175964,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,63,67076469344,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,63,227047034226,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,63,736589977257,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,63,2299848224005,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,63,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q32,64,19,63,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.125000000000,,525,0,,,AtLeast +Quantum128BitADPS16,q32,64,20,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,149.195000000000,,563,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,63,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,386.981344857362,122.960000000000,512,0,464,0,Exact +Quantum128BitADPS16,q32,128,2,63,1809,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,63,163016,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,63,6286323,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,63,148694169,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,63,2524078801,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,63,33538234672,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,63,368294988628,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,63,3467596728715,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.040000000000,,536,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,63,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,63,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,203.520000000000,,768,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.720000000000,,848,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,63,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,246.185000000000,,929,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.180000000000,,1012,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,63,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.440000000000,,1096,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,63,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,335.490000000000,,1266,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,358.545000000000,,1353,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,63,904,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,63,3143161,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,63,1262039400,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,63,184147494314,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,135.415000000000,,511,0,,,AtLeast +Quantum128BitADPS16,q32,256,6,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,174.370000000000,,658,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.650000000000,,810,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.255000000000,,967,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,299.185000000000,,1129,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,342.910000000000,,1294,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,63,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,387.695000000000,,1463,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,63,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,433.275000000000,,1635,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,63,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,479.915000000000,,1811,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,63,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.820000000000,,1988,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,63,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,574.785000000000,,2169,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,63,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,623.015000000000,,2351,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,63,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,672.040000000000,,2536,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,63,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,721.595000000000,,2723,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,63,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,771.415000000000,,2911,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,63,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,822.030000000000,,3102,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,127,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,436.852842529004,59.890000000000,192,0,226,0,Exact +Quantum128BitADPS16,q32,64,2,127,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,385.748618445433,122.430000000000,448,0,462,0,Exact +Quantum128BitADPS16,q32,64,3,127,26,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q32,64,4,127,678,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,127,8112,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,127,69228,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,127,474993,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,127,2778739,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,127,14358111,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,127,67090646,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,127,288284835,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,127,1153448858,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,127,4338808205,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,127,15461239325,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,127,52515965714,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,127,170886857334,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,127,534970437834,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,127,1616981204823,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,127,4733284551884,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.885000000000,,509,0,,,AtLeast +Quantum128BitADPS16,q32,128,1,127,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,867.487737301296,122.430000000000,384,0,462,0,Exact +Quantum128BitADPS16,q32,128,2,127,339,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,127,34614,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,127,1389369,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,127,33545323,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,127,576724429,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,127,7730619662,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,127,85443428667,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,127,808490602411,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.525000000000,,485,0,,,AtLeast +Quantum128BitADPS16,q32,128,11,127,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.810000000000,,554,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.625000000000,,625,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,127,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.705000000000,,697,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,204.050000000000,,770,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,127,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.925000000000,,845,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.800000000000,,920,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,127,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,264.205000000000,,997,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,284.875000000000,,1075,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,127,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,305.810000000000,,1154,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,326.745000000000,,1233,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,127,169,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,2,127,694684,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,127,288362214,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,127,42721714333,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,127,3363425550406,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1570.890201938087,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,6671.179214222779,,4934,1638399999991683,,,AtLeast +Quantum128BitADPS16,q32,256,8,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:14180.733918377193,,4934,1638399999991109,,,AtLeast +Quantum128BitADPS16,q32,256,9,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:22759.922309746522,,4934,1638399999990569,,,AtLeast +Quantum128BitADPS16,q32,256,10,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:31910.361192576325,,4934,1638399999990059,,,AtLeast +Quantum128BitADPS16,q32,256,11,127,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:41449.784851719400,,4934,1638399999989574,,,AtLeast +Quantum128BitADPS16,q32,256,12,127,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:51298.290350166433,,4934,1638399999989110,,,AtLeast +Quantum128BitADPS16,q32,256,13,127,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:61402.259447154203,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,127,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:71736.985902660133,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,127,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:82274.663474725559,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,127,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:92992.072013308076,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,127,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:103877.040663948035,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,127,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:114915.310513554898,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,127,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:126095.642332696370,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,127,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:137400.601787427091,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,255,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,254.083393179869,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q32,64,2,255,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,502.249968828898,113.685000000000,384,0,429,0,Exact +Quantum128BitADPS16,q32,64,3,255,12,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,118.455000000000,492,0,447,0,Exact +Quantum128BitADPS16,q32,64,4,255,113,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,5,255,1591,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,255,14429,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,255,102307,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,255,611125,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,255,3204101,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,255,15134439,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,255,65579247,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,255,264154929,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,255,999139380,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,255,3576907641,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,255,12197358320,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,255,39825500974,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,255,125047463693,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,255,378957707294,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,255,1111886036117,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,255,3166993826792,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,255,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,502.249968828898,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q32,128,2,255,56,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,3,255,7214,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,255,305562,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,255,7567219,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,255,132077464,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,255,1788453820,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,255,19912750487,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,255,189478853647,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,255,1583496913396,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,255,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1019.190000000000,,3846,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1120.685000000000,,4229,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,255,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1222.710000000000,,4614,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1549.908215331405,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,255,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,3555.668228812292,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,6403.970098077981,,4934,819199999991109,,,AtLeast +Quantum128BitADPS16,q32,128,17,255,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,9841.846240013887,,4934,819199999990835,,,AtLeast +Quantum128BitADPS16,q32,128,18,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:13672.248381124475,,4934,819199999990569,,,AtLeast +Quantum128BitADPS16,q32,128,19,255,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:17767.341986941221,,4934,819199999990311,,,AtLeast +Quantum128BitADPS16,q32,128,20,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:22051.343857651693,,4934,819199999990059,,,AtLeast +Quantum128BitADPS16,q32,256,1,255,28,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q32,256,2,255,152781,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,255,66038732,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,255,9956375243,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,255,791748456698,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1120.685000000000,,4229,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1549.908215331405,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,6403.970098077981,,4934,1638399999991109,,,AtLeast +Quantum128BitADPS16,q32,256,9,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:13672.248381124475,,4934,1638399999990569,,,AtLeast +Quantum128BitADPS16,q32,256,10,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:22051.343857651693,,4934,1638399999990059,,,AtLeast +Quantum128BitADPS16,q32,256,11,255,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:31014.786200219332,,4934,1638399999989574,,,AtLeast +Quantum128BitADPS16,q32,256,12,255,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:40365.419561465991,,4934,1638399999989110,,,AtLeast +Quantum128BitADPS16,q32,256,13,255,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:50011.366856888199,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,255,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:59911.274436330976,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,255,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:70031.876405069459,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,255,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:80347.317216882162,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,255,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:90842.796800003751,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,255,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:101502.808548017754,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,255,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:112315.010009133679,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,255,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:123261.926456617992,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,511,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,716.502815065020,99.848484998789,128,0,192,0,Exact +Quantum128BitADPS16,q32,64,2,511,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,194.807772836316,73.935000000000,384,0,279,0,Exact +Quantum128BitADPS16,q32,64,3,511,10,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.440000000000,107.855000000000,496,0,407,0,Exact +Quantum128BitADPS16,q32,64,4,511,17,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,126.405000000000,490,0,477,0,Exact +Quantum128BitADPS16,q32,64,5,511,288,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,511,2901,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,511,21587,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,511,132654,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,511,708715,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,511,3393135,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,511,14853966,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,511,60315144,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,511,229625398,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,511,826498657,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,511,2831227863,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,511,9280294093,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,511,29237679207,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,511,88868171091,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,511,261429915996,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,511,746377041250,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,511,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,194.807772836316,58.035000000000,384,0,219,0,Exact +Quantum128BitADPS16,q32,128,2,511,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,126.405000000000,513,0,477,0,Exact +Quantum128BitADPS16,q32,128,3,511,1450,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,511,66327,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,511,1696567,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,511,30157572,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,511,413249328,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,511,4640147046,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,511,44434085545,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,511,373188520625,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,511,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,867.080000000000,,3272,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,954.530000000000,,3602,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,511,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1042.510000000000,,3934,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1131.020000000000,,4268,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,511,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1219.795000000000,,4603,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1329.180978181601,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,511,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,3097.170743196948,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,5713.150566806254,,4934,819199999990569,,,AtLeast +Quantum128BitADPS16,q32,128,19,511,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,8955.083440816052,,4934,819199999990311,,,AtLeast +Quantum128BitADPS16,q32,128,20,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:12626.320149828154,,4934,819199999990059,,,AtLeast +Quantum128BitADPS16,q32,256,1,511,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,123.755000000000,513,0,467,0,Exact +Quantum128BitADPS16,q32,256,2,511,33163,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,511,15078786,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,511,2320073523,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,511,186594260312,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,954.530000000000,,3602,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1131.020000000000,,4268,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1329.180978181601,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,5713.150566806254,,4934,1638399999990569,,,AtLeast +Quantum128BitADPS16,q32,256,10,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:12626.320149828154,,4934,1638399999990059,,,AtLeast +Quantum128BitADPS16,q32,256,11,511,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:20758.920056272131,,4934,1638399999989574,,,AtLeast +Quantum128BitADPS16,q32,256,12,511,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:29520.107036247318,,4934,1638399999989110,,,AtLeast +Quantum128BitADPS16,q32,256,13,511,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:38674.814997087087,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,511,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:48127.918872790520,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,511,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:57827.401355930255,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,511,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:67739.884173215367,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,511,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:77846.086039786052,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,511,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:88128.527280935581,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,511,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:98573.471449269593,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,511,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:109163.281835825430,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,1023,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,588.390991694500,35.775000000000,128,0,135,0,Exact +Quantum128BitADPS16,q32,64,2,1023,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,457.125027981896,77.645000000000,320,0,293,0,Exact +Quantum128BitADPS16,q32,64,3,1023,8,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.612159836063,120.310000000000,512,0,454,0,Exact +Quantum128BitADPS16,q32,64,4,1023,13,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,120.575000000000,512,0,455,0,Exact +Quantum128BitADPS16,q32,64,5,1023,43,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,6,1023,547,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,1023,4403,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,1023,28188,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,1023,154468,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,1023,752556,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,1023,3336833,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,1023,13683132,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,1023,52501461,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,1023,190179112,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,1023,654943907,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,1023,2156497644,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,1023,6820473765,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,1023,20801013427,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,1023,61373915251,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,1023,175684044811,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,1023,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.756817097376,77.645000000000,256,0,293,0,Exact +Quantum128BitADPS16,q32,128,2,1023,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.505000000000,120.575000000000,617,0,455,0,Exact +Quantum128BitADPS16,q32,128,3,1023,273,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,1023,14094,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,1023,376278,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,1023,6841566,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,1023,95089556,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,1023,1078248822,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,1023,10400506713,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,1023,87842022405,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,1023,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,743.590000000000,,2806,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,819.645000000000,,3093,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,1023,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,896.230000000000,,3382,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,973.345000000000,,3673,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,1023,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1050.725000000000,,3965,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1128.370000000000,,4258,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,1023,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1206.545000000000,,4553,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1284.985000000000,,4849,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,1023,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,2410.480338930960,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,4685.620653218151,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,1023,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.505000000000,106.530000000000,617,0,402,0,Exact +Quantum128BitADPS16,q32,256,2,1023,7047,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,1023,3420783,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,1023,539124411,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,1023,43921011202,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,819.645000000000,,3093,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,973.345000000000,,3673,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1128.370000000000,,4258,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1284.985000000000,,4849,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,4685.620653218151,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,1023,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:11096.417928173456,,4934,1638399999989574,,,AtLeast +Quantum128BitADPS16,q32,256,12,1023,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:18914.081947664297,,4934,1638399999989110,,,AtLeast +Quantum128BitADPS16,q32,256,13,1023,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:27442.465188569222,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,1023,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:36396.856077068427,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,1023,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:45654.965854036840,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,1023,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:55156.558463385496,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,1023,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:64870.473551189840,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,1023,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:74774.350257260579,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,1023,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:84851.885067254741,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,1023,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:95084.792688120273,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,2047,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,460.575843643125,18.815000000000,128,0,71,0,Exact +Quantum128BitADPS16,q32,64,2,2047,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.574444324999,50.880000000000,320,0,192,0,Exact +Quantum128BitADPS16,q32,64,3,2047,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,602.198580596782,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q32,64,4,2047,11,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.340000000000,117.130000000000,556,0,442,0,Exact +Quantum128BitADPS16,q32,64,5,2047,16,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,126.405000000000,513,0,477,0,Exact +Quantum128BitADPS16,q32,64,6,2047,90,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,7,2047,849,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,2047,5798,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,2047,32948,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,2047,164325,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,2047,740738,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,2047,3075102,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,2047,11912412,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,2047,43483374,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,2047,150696519,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,2047,498819744,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,2047,1584763597,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,2047,4852018849,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,2047,14364677294,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,2047,41242424633,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,2047,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,915.138026262017,50.880000000000,256,0,192,0,Exact +Quantum128BitADPS16,q32,128,2,2047,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,377.807544441578,117.130000000000,640,0,442,0,Exact +Quantum128BitADPS16,q32,128,3,2047,45,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,4,2047,2899,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,2047,82162,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,2047,1537551,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,2047,21741687,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,2047,249409872,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,2047,2426009424,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,2047,20621212316,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,2047,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,642.360000000000,,2424,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,709.140000000000,,2676,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,2047,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,776.185000000000,,2929,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,843.760000000000,,3184,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,2047,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,911.600000000000,,3440,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.705000000000,,3697,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,2047,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1048.340000000000,,3956,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1117.240000000000,,4216,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,2047,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1186.405000000000,,4477,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1255.835000000000,,4739,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,2047,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.764679435142,117.130000000000,512,0,442,0,Exact +Quantum128BitADPS16,q32,256,2,2047,1449,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,2047,768775,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,2047,124704936,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,2047,10310606158,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,709.140000000000,,2676,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,843.760000000000,,3184,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.705000000000,,3697,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1117.240000000000,,4216,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1255.835000000000,,4739,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,2047,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,3457.967612042695,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,2047,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,9168.914259082996,,4934,1638399999989110,,,AtLeast +Quantum128BitADPS16,q32,256,13,2047,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:16564.571644235646,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,2047,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:24815.753055877209,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,2047,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:33550.227944890939,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,2047,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:42607.347247364836,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,2047,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:51915.039673431340,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,2047,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:61434.514602154071,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,2047,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:71142.218159137410,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,2047,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:81017.272078243957,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,4095,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,333.628167085208,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,4095,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.288431959388,67.840000000000,256,0,256,0,Exact +Quantum128BitADPS16,q32,64,3,4095,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,239.743705298217,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q32,64,4,4095,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,104.940000000000,534,0,396,0,Exact +Quantum128BitADPS16,q32,64,5,4095,14,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,115.540000000000,492,0,436,0,Exact +Quantum128BitADPS16,q32,64,6,4095,20,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,124.815000000000,486,0,471,0,Exact +Quantum128BitADPS16,q32,64,7,4095,146,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,8,4095,1132,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,4095,6808,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,4095,35107,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,4095,161800,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,4095,682455,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,4095,2675642,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,4095,9859226,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,4095,34429252,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,4095,114683018,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,4095,366284951,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,4095,1126528701,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,4095,3348243889,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,4095,9646164151,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,4095,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.288431959388,34.715000000000,256,0,131,0,Exact +Quantum128BitADPS16,q32,128,2,4095,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,87.715000000000,534,0,331,0,Exact +Quantum128BitADPS16,q32,128,3,4095,10,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,122.430000000000,486,0,462,0,Exact +Quantum128BitADPS16,q32,128,4,4095,566,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,4095,17553,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,4095,341227,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,4095,4929613,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,4095,57341509,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,4095,563264350,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,4095,4823082075,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,4095,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,558.885000000000,,2109,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.450000000000,,2330,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,4095,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.545000000000,,2553,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.170000000000,,2778,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,4095,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,796.060000000000,,3004,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,856.215000000000,,3231,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,4095,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,916.900000000000,,3460,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,977.585000000000,,3689,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,4095,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1038.800000000000,,3920,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1100.280000000000,,4152,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,4095,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1316.118068244354,87.715000000000,512,0,331,0,Exact +Quantum128BitADPS16,q32,256,2,4095,283,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,4095,170613,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,4095,28670754,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,4095,2411541037,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.450000000000,,2330,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.170000000000,,2778,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,856.215000000000,,3231,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,977.585000000000,,3689,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1100.280000000000,,4152,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,4095,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1223.770000000000,,4618,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,4095,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,2220.474997978045,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,4095,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,6978.388470520843,,4934,1638399999988666,,,AtLeast +Quantum128BitADPS16,q32,256,14,4095,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:13789.732361676930,,4934,1638399999988238,,,AtLeast +Quantum128BitADPS16,q32,256,15,4095,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:21683.587771331921,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,4095,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:30163.072587646555,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,4095,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:39008.211779014520,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,4095,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:48119.071375306128,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,4095,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:57446.362672097319,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,4095,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:66958.880983183350,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,8191,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,209.943848675167,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,8191,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.098463576922,42.665000000000,256,0,161,0,Exact +Quantum128BitADPS16,q32,64,3,8191,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,618.060412259526,93.545000000000,384,0,353,0,Exact +Quantum128BitADPS16,q32,64,4,8191,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.050000000000,98.845000000000,570,0,373,0,Exact +Quantum128BitADPS16,q32,64,5,8191,12,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,115.540000000000,548,0,436,0,Exact +Quantum128BitADPS16,q32,64,6,8191,16,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,122.960000000000,512,0,464,0,Exact +Quantum128BitADPS16,q32,64,7,8191,23,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,127.465000000000,490,0,481,0,Exact +Quantum128BitADPS16,q32,64,8,8191,200,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,8191,1338,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,8191,7268,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,8191,34568,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,8191,148954,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,8191,593138,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,8191,2211676,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,8191,7796099,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,8191,26167094,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,8191,84104618,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,8191,260052597,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,8191,776466932,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,8191,2245870311,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,8191,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.098463576922,24.115000000000,256,0,91,0,Exact +Quantum128BitADPS16,q32,128,2,8191,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.943341593981,98.845000000000,512,0,373,0,Exact +Quantum128BitADPS16,q32,128,3,8191,8,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,114.745000000000,512,0,433,0,Exact +Quantum128BitADPS16,q32,128,4,8191,100,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,8191,3634,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,8191,74477,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,8191,1105838,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,8191,13083547,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,8191,130026298,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,8191,1122935155,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,8191,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,488.925000000000,,1845,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,540.865000000000,,2041,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,8191,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,593.070000000000,,2238,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,645.805000000000,,2437,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,8191,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,699.070000000000,,2638,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,752.600000000000,,2840,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,8191,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,806.395000000000,,3043,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,860.455000000000,,3247,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,8191,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,914.780000000000,,3452,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,969.370000000000,,3658,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,8191,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.943341593981,68.105000000000,512,0,257,0,Exact +Quantum128BitADPS16,q32,256,2,8191,50,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,8191,37238,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,8191,6541773,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,8191,561467577,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,540.865000000000,,2041,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,645.805000000000,,2437,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,752.600000000000,,2840,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,860.455000000000,,3247,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,969.370000000000,,3658,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,8191,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1079.345000000000,,4073,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,8191,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1190.115000000000,,4491,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,8191,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1301.680000000000,,4912,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,8191,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,4729.733248266803,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,8191,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:10712.750800944163,,4934,1638399999987825,,,AtLeast +Quantum128BitADPS16,q32,256,16,8191,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:18115.630215622132,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,8191,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:26278.446150055002,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,8191,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:34884.476787559404,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,8191,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:43788.789796834164,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,8191,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:52919.646357205798,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,16383,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1088.328018517629,98.472805045380,40,1,128,0,Exact +Quantum128BitADPS16,q32,64,2,16383,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.803485427476,27.825000000000,256,0,105,0,Exact +Quantum128BitADPS16,q32,64,3,16383,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,284.981021783246,62.805000000000,384,0,237,0,Exact +Quantum128BitADPS16,q32,64,4,16383,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095386690906,101.495000000000,512,0,383,0,Exact +Quantum128BitADPS16,q32,64,5,16383,11,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.570000000000,106.000000000000,538,0,400,0,Exact +Quantum128BitADPS16,q32,64,6,16383,14,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.775000000000,119.515000000000,535,0,451,0,Exact +Quantum128BitADPS16,q32,64,7,16383,18,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,125.875000000000,514,0,475,0,Exact +Quantum128BitADPS16,q32,64,8,16383,27,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,127.995000000000,486,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,16383,240,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,16383,1433,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,16383,7155,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,16383,31782,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,16383,129241,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,16383,489396,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,16383,1745670,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,16383,5914665,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,16383,19157117,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,16383,59614104,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,16383,178962912,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,16383,520050014,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,16383,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.803485427476,16.430000000000,256,0,62,0,Exact +Quantum128BitADPS16,q32,128,2,16383,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095386690906,72.345000000000,512,0,273,0,Exact +Quantum128BitADPS16,q32,128,3,16383,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.775000000000,106.530000000000,535,0,402,0,Exact +Quantum128BitADPS16,q32,128,4,16383,13,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.995000000000,491,0,483,0,Exact +Quantum128BitADPS16,q32,128,5,16383,716,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,16383,15891,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,16383,244698,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,16383,2957332,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,16383,29807052,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,16383,260025007,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,16383,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,429.830000000000,,1622,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.205000000000,,1797,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,16383,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,522.845000000000,,1973,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,569.750000000000,,2150,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,16383,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.185000000000,,2329,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.885000000000,,2509,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,16383,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,712.850000000000,,2690,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,761.345000000000,,2873,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,16383,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,809.840000000000,,3056,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,858.600000000000,,3240,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,16383,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095386690906,54.060000000000,512,0,204,0,Exact +Quantum128BitADPS16,q32,256,2,16383,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,127.995000000000,510,0,483,0,Exact +Quantum128BitADPS16,q32,256,3,16383,7945,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,16383,1478666,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,16383,130012503,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.205000000000,,1797,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,569.750000000000,,2150,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.885000000000,,2509,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,761.345000000000,,2873,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,858.600000000000,,3240,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,16383,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,956.915000000000,,3611,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,16383,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1056.025000000000,,3985,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,16383,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1155.930000000000,,4362,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,16383,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1256.365000000000,,4741,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,16383,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,2708.553294966867,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,16383,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,7532.780264157691,,4934,1638399999987426,,,AtLeast +Quantum128BitADPS16,q32,256,17,16383,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:14227.127924537743,,4934,1638399999987039,,,AtLeast +Quantum128BitADPS16,q32,256,18,16383,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:21960.792133987492,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,16383,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:30275.035562190551,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,16383,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:38948.187416563160,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,32767,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1000.826876179133,28.620000000000,64,0,108,0,Exact +Quantum128BitADPS16,q32,64,2,32767,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,943.302761893067,59.360000000000,192,0,224,0,Exact +Quantum128BitADPS16,q32,64,3,32767,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,888.027064134486,90.630000000000,320,0,342,0,Exact +Quantum128BitADPS16,q32,64,4,32767,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,841.166832970278,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q32,64,5,32767,10,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.170000000000,101.760000000000,578,0,384,0,Exact +Quantum128BitADPS16,q32,64,6,32767,13,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,107.590000000000,500,0,406,0,Exact +Quantum128BitADPS16,q32,64,7,32767,16,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,119.515000000000,512,0,451,0,Exact +Quantum128BitADPS16,q32,64,8,32767,20,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,126.140000000000,507,0,476,0,Exact +Quantum128BitADPS16,q32,64,9,32767,34,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,10,32767,259,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,32767,1410,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,32767,6565,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,32767,27508,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,32767,106368,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,32767,385335,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,32767,1321303,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,32767,4320639,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,32767,13550588,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,32767,40945160,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,32767,119642669,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,32767,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1996.124551259081,59.360000000000,128,0,224,0,Exact +Quantum128BitADPS16,q32,128,2,32767,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1880.286674457765,121.900000000000,384,0,460,0,Exact +Quantum128BitADPS16,q32,128,3,32767,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,184.705000000000,107.590000000000,697,0,406,0,Exact +Quantum128BitADPS16,q32,128,4,32767,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,120.575000000000,507,0,455,0,Exact +Quantum128BitADPS16,q32,128,5,32767,129,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,6,32767,3282,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,32767,53184,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,32767,660651,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,32767,6775294,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,32767,59821334,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,32767,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,380.010000000000,,1434,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,421.350000000000,,1590,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,32767,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.955000000000,,1747,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,505.090000000000,,1906,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,32767,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,547.490000000000,,2066,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,590.420000000000,,2228,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,32767,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,633.350000000000,,2390,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.810000000000,,2554,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,32767,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,720.270000000000,,2718,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,763.995000000000,,2883,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,32767,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3986.220099969893,121.900000000000,256,0,460,0,Exact +Quantum128BitADPS16,q32,256,2,32767,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,113.950000000000,507,0,430,0,Exact +Quantum128BitADPS16,q32,256,3,32767,1641,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,32767,330325,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,32767,29910667,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,421.350000000000,,1590,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,505.090000000000,,1906,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,590.420000000000,,2228,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.810000000000,,2554,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,763.995000000000,,2883,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,32767,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,852.505000000000,,3217,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,32767,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,941.545000000000,,3553,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,32767,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1031.380000000000,,3892,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,32767,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1121.745000000000,,4233,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,32767,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1212.640000000000,,4576,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,32767,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1304.330000000000,,4922,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,32767,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,4556.484540699457,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,32767,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:10209.893513705927,,4934,1638399999986663,,,AtLeast +Quantum128BitADPS16,q32,256,19,32767,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:17318.598097523980,,4934,1638399999986297,,,AtLeast +Quantum128BitADPS16,q32,256,20,32767,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:25240.590640874296,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,65535,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,936.825467296693,10.865000000000,64,0,41,0,Exact +Quantum128BitADPS16,q32,64,2,65535,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,751.562270643217,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q32,64,3,65535,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,576.480764710594,58.035000000000,320,0,219,0,Exact +Quantum128BitADPS16,q32,64,4,65535,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,434.126845943700,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q32,64,5,65535,9,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,331.416835689371,105.735000000000,576,0,399,0,Exact +Quantum128BitADPS16,q32,64,6,65535,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,99.640000000000,491,0,376,0,Exact +Quantum128BitADPS16,q32,64,7,65535,14,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,154.495000000000,123.755000000000,583,0,467,0,Exact +Quantum128BitADPS16,q32,64,8,65535,18,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,117.660000000000,489,0,444,0,Exact +Quantum128BitADPS16,q32,64,9,65535,22,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,124.815000000000,495,0,471,0,Exact +Quantum128BitADPS16,q32,64,10,65535,38,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,11,65535,254,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,65535,1289,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,65535,5661,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,65535,22560,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,65535,83474,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,65535,290770,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,65535,962487,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,65535,3048199,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,65535,9284567,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,65535,27311705,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,65535,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1868.121733496527,34.980000000000,128,0,132,0,Exact +Quantum128BitADPS16,q32,128,2,65535,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1496.813587567388,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q32,128,3,65535,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,84.270000000000,491,0,318,0,Exact +Quantum128BitADPS16,q32,128,4,65535,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,109.975000000000,489,0,415,0,Exact +Quantum128BitADPS16,q32,128,5,65535,19,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q32,128,6,65535,644,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,65535,11280,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,65535,145385,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,65535,1524099,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,65535,13655852,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,65535,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.345000000000,,1273,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.445000000000,,1413,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,65535,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,412.075000000000,,1555,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,449.705000000000,,1697,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,65535,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.865000000000,,1841,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.555000000000,,1987,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,65535,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,565.245000000000,,2133,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.200000000000,,2280,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,65535,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,643.420000000000,,2428,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,682.905000000000,,2577,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,65535,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3730.214464447535,81.885000000000,256,0,309,0,Exact +Quantum128BitADPS16,q32,256,2,65535,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,109.975000000000,677,0,415,0,Exact +Quantum128BitADPS16,q32,256,3,65535,322,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,65535,72692,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,65535,6827926,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.445000000000,,1413,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,449.705000000000,,1697,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.555000000000,,1987,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.200000000000,,2280,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,682.905000000000,,2577,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,65535,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,762.670000000000,,2878,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,65535,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,842.965000000000,,3181,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,65535,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,924.055000000000,,3487,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,65535,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1005.675000000000,,3795,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,65535,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1087.825000000000,,4105,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,65535,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1170.770000000000,,4418,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,65535,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1253.980000000000,,4732,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,65535,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,2193.296451708496,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,65535,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,6379.054464340516,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,65535,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:12540.560189109541,,4934,1638399999985941,,,AtLeast +Quantum128BitADPS16,q32,64,1,131071,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,872.824762974431,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,131071,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,560.613101098884,20.935000000000,192,0,79,0,Exact +Quantum128BitADPS16,q32,64,3,131071,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,289.081246592072,39.220000000000,320,0,148,0,Exact +Quantum128BitADPS16,q32,64,4,131071,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.472380646553,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q32,64,5,131071,8,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.864215051142,125.610000000000,512,0,474,0,Exact +Quantum128BitADPS16,q32,64,6,131071,11,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.800000000000,96.195000000000,520,0,363,0,Exact +Quantum128BitADPS16,q32,64,7,131071,13,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.170000000000,115.805000000000,578,0,437,0,Exact +Quantum128BitADPS16,q32,64,8,131071,16,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,116.335000000000,512,0,439,0,Exact +Quantum128BitADPS16,q32,64,9,131071,19,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,123.755000000000,514,0,467,0,Exact +Quantum128BitADPS16,q32,64,10,131071,23,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.090000000000,127.465000000000,506,0,481,0,Exact +Quantum128BitADPS16,q32,64,11,131071,37,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,12,131071,231,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,131071,1105,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,131071,4618,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,131071,17621,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,131071,62729,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,131071,211027,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,131071,676775,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,131071,2082251,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,131071,6175972,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,131071,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1740.120324861300,20.935000000000,128,0,79,0,Exact +Quantum128BitADPS16,q32,128,2,131071,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1114.946710054140,57.770000000000,384,0,218,0,Exact +Quantum128BitADPS16,q32,128,3,131071,5,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,572.295975625777,96.195000000000,640,0,363,0,Exact +Quantum128BitADPS16,q32,128,4,131071,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.410000000000,512,0,394,0,Exact +Quantum128BitADPS16,q32,128,5,131071,11,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.365000000000,127.465000000000,541,0,481,0,Exact +Quantum128BitADPS16,q32,128,6,131071,115,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,131071,2309,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,131071,31364,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,131071,338387,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,131071,3087986,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,131071,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,300.775000000000,,1135,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.165000000000,,1261,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,131071,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.085000000000,,1389,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.270000000000,,1518,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,131071,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,436.720000000000,,1648,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.435000000000,,1779,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,131071,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,506.415000000000,,1911,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,541.660000000000,,2044,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,131071,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,577.170000000000,,2178,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,612.945000000000,,2313,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,131071,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3474.211647188082,57.770000000000,256,0,218,0,Exact +Quantum128BitADPS16,q32,256,2,131071,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,91.690000000000,512,0,346,0,Exact +Quantum128BitADPS16,q32,256,3,131071,57,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,4,131071,15682,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,131071,1543993,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.165000000000,,1261,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.270000000000,,1518,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.435000000000,,1779,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,541.660000000000,,2044,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,612.945000000000,,2313,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,131071,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,685.025000000000,,2585,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,131071,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,757.635000000000,,2859,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,131071,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,831.305000000000,,3137,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,131071,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,905.240000000000,,3416,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,131071,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.705000000000,,3697,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,131071,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1054.965000000000,,3981,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,131071,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1130.490000000000,,4266,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,131071,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1206.545000000000,,4553,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,131071,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1282.865000000000,,4841,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,131071,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,3199.376072910436,,4934,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,262143,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,808.824411258901,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,262143,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,372.791821948383,10.865000000000,192,0,41,0,Exact +Quantum128BitADPS16,q32,64,3,262143,4,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.397738398547,83.210000000000,256,0,314,0,Exact +Quantum128BitADPS16,q32,64,4,262143,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,739.428071050637,78.175000000000,384,0,295,0,Exact +Quantum128BitADPS16,q32,64,5,262143,8,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.063111232714,86.655000000000,512,0,327,0,Exact +Quantum128BitADPS16,q32,64,6,262143,10,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.420000000000,99.110000000000,628,0,374,0,Exact +Quantum128BitADPS16,q32,64,7,262143,12,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,113.155000000000,616,0,427,0,Exact +Quantum128BitADPS16,q32,64,8,262143,14,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,127.995000000000,639,0,483,0,Exact +Quantum128BitADPS16,q32,64,9,262143,17,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,123.225000000000,542,0,465,0,Exact +Quantum128BitADPS16,q32,64,10,262143,20,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,127.200000000000,529,0,480,0,Exact +Quantum128BitADPS16,q32,64,11,262143,25,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,123.755000000000,485,0,467,0,Exact +Quantum128BitADPS16,q32,64,12,262143,33,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.995000000000,485,0,483,0,Exact +Quantum128BitADPS16,q32,64,13,262143,195,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,262143,893,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,262143,3581,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,262143,13164,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,262143,45297,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,262143,147737,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,262143,460524,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,262143,1380285,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,262143,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1612.119621467425,10.865000000000,128,0,41,0,Exact +Quantum128BitADPS16,q32,128,2,262143,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,739.428071050637,42.400000000000,384,0,160,0,Exact +Quantum128BitADPS16,q32,128,3,262143,5,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.420000000000,73.935000000000,628,0,279,0,Exact +Quantum128BitADPS16,q32,128,4,262143,7,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,106.530000000000,639,0,402,0,Exact +Quantum128BitADPS16,q32,128,5,262143,10,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,118.455000000000,529,0,447,0,Exact +Quantum128BitADPS16,q32,128,6,262143,16,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.995000000000,489,0,483,0,Exact +Quantum128BitADPS16,q32,128,7,262143,446,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,262143,6582,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,262143,73868,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,262143,690142,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,262143,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,299.185000000000,,1129,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,262143,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.925000000000,,1245,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,360.930000000000,,1362,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,262143,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,392.200000000000,,1480,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.735000000000,,1599,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,262143,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,455.535000000000,,1719,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.335000000000,,1839,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,262143,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,519.665000000000,,1961,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.995000000000,,2083,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,262143,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3218.210240444338,42.400000000000,256,0,160,0,Exact +Quantum128BitADPS16,q32,256,2,262143,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1472.222846602281,106.530000000000,768,0,402,0,Exact +Quantum128BitADPS16,q32,256,3,262143,8,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.465000000000,489,0,481,0,Exact +Quantum128BitADPS16,q32,256,4,262143,3291,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,262143,345071,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,299.185000000000,,1129,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,360.930000000000,,1362,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.735000000000,,1599,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.335000000000,,1839,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.995000000000,,2083,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,262143,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.450000000000,,2330,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,262143,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,683.700000000000,,2580,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,262143,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,750.480000000000,,2832,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,262143,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,817.790000000000,,3086,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,262143,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,885.630000000000,,3342,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,262143,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,954.000000000000,,3600,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,262143,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1022.900000000000,,3860,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,262143,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1092.065000000000,,4121,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,262143,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1161.760000000000,,4384,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,262143,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1231.720000000000,,4648,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,524287,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,744.824237175984,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,524287,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,197.006225456693,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,524287,4,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.959076008476,50.880000000000,256,0,192,0,Exact +Quantum128BitADPS16,q32,64,4,524287,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,388.322458805772,53.530000000000,384,0,202,0,Exact +Quantum128BitADPS16,q32,64,5,524287,7,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1089.437907694118,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q32,64,6,524287,9,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,579.466303250959,113.420000000000,576,0,428,0,Exact +Quantum128BitADPS16,q32,64,7,524287,11,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,227.769554992075,117.130000000000,704,0,442,0,Exact +Quantum128BitADPS16,q32,64,8,524287,13,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,125.345000000000,677,0,473,0,Exact +Quantum128BitADPS16,q32,64,9,524287,16,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,113.420000000000,512,0,428,0,Exact +Quantum128BitADPS16,q32,64,10,524287,18,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.605000000000,127.200000000000,557,0,480,0,Exact +Quantum128BitADPS16,q32,64,11,524287,22,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,120.045000000000,486,0,453,0,Exact +Quantum128BitADPS16,q32,64,12,524287,26,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,123.755000000000,485,0,467,0,Exact +Quantum128BitADPS16,q32,64,13,524287,32,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.995000000000,489,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,524287,155,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,15,524287,684,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,524287,2651,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,524287,9438,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,524287,31522,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,524287,100016,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,524287,303909,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,524287,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1484.119273450334,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,524287,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,388.322458805772,31.800000000000,384,0,120,0,Exact +Quantum128BitADPS16,q32,128,3,524287,4,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.406796061758,113.420000000000,512,0,428,0,Exact +Quantum128BitADPS16,q32,128,4,524287,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.539299504571,125.345000000000,768,0,473,0,Exact +Quantum128BitADPS16,q32,128,5,524287,9,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.605000000000,114.215000000000,557,0,431,0,Exact +Quantum128BitADPS16,q32,128,6,524287,13,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,120.310000000000,485,0,454,0,Exact +Quantum128BitADPS16,q32,128,7,524287,77,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,8,524287,1325,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,524287,15761,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,524287,151954,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,524287,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,524287,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.800000000000,,1120,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.890000000000,,1226,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,524287,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.245000000000,,1333,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,524287,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.015000000000,,1551,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.165000000000,,1661,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,524287,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,469.315000000000,,1771,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.995000000000,,1883,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,524287,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2962.209544586180,31.800000000000,256,0,120,0,Exact +Quantum128BitADPS16,q32,256,2,524287,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.539299504571,85.860000000000,768,0,324,0,Exact +Quantum128BitADPS16,q32,256,3,524287,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,120.310000000000,542,0,454,0,Exact +Quantum128BitADPS16,q32,256,4,524287,662,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,524287,75977,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.890000000000,,1226,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.165000000000,,1661,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.995000000000,,1883,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,524287,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,558.620000000000,,2108,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,524287,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,619.040000000000,,2336,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,524287,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,679.725000000000,,2565,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,524287,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,741.205000000000,,2797,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,524287,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,803.215000000000,,3031,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,524287,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,865.755000000000,,3267,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,524287,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,928.560000000000,,3504,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,524287,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,991.895000000000,,3743,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,524287,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1055.495000000000,,3983,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,524287,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1119.625000000000,,4225,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,1048575,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,680.824157232035,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,1048575,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1356.119114157413,62.348624042918,128,0,192,0,Exact +Quantum128BitADPS16,q32,64,3,1048575,4,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.200052417467,32.860000000000,256,0,124,0,Exact +Quantum128BitADPS16,q32,64,4,1048575,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1333.575051796279,120.441210954622,320,0,384,0,Exact +Quantum128BitADPS16,q32,64,5,1048575,7,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,660.447803305659,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q32,64,6,1048575,9,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,178.437768078505,81.620000000000,576,0,308,0,Exact +Quantum128BitADPS16,q32,64,7,1048575,11,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.560000000000,87.715000000000,504,0,331,0,Exact +Quantum128BitADPS16,q32,64,8,1048575,13,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,96.460000000000,488,0,364,0,Exact +Quantum128BitADPS16,q32,64,9,1048575,15,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,106.530000000000,501,0,402,0,Exact +Quantum128BitADPS16,q32,64,10,1048575,17,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.390000000000,117.395000000000,526,0,443,0,Exact +Quantum128BitADPS16,q32,64,11,1048575,20,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,116.335000000000,486,0,439,0,Exact +Quantum128BitADPS16,q32,64,12,1048575,23,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,120.310000000000,486,0,454,0,Exact +Quantum128BitADPS16,q32,64,13,1048575,26,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,127.200000000000,503,0,480,0,Exact +Quantum128BitADPS16,q32,64,14,1048575,32,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.465000000000,489,0,481,0,Exact +Quantum128BitADPS16,q32,64,15,1048575,115,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,1048575,498,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,1048575,1879,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,1048575,6510,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,1048575,21188,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,1048575,65608,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,1048575,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1356.119114157413,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,1048575,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2706.209226704433,120.441210954622,256,0,384,0,Exact +Quantum128BitADPS16,q32,128,3,1048575,4,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.941343096853,81.620000000000,512,0,308,0,Exact +Quantum128BitADPS16,q32,128,4,1048575,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,236.394685691456,96.460000000000,768,0,364,0,Exact +Quantum128BitADPS16,q32,128,5,1048575,8,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,117.395000000000,677,0,443,0,Exact +Quantum128BitADPS16,q32,128,6,1048575,11,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.715000000000,120.310000000000,531,0,454,0,Exact +Quantum128BitADPS16,q32,128,7,1048575,16,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.140000000000,489,0,476,0,Exact +Quantum128BitADPS16,q32,128,8,1048575,249,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,1048575,3255,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,1048575,32804,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,1048575,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,217.565000000000,,821,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.475000000000,,915,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,1048575,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,267.915000000000,,1011,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,293.620000000000,,1108,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,1048575,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,319.590000000000,,1206,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,1048575,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,372.060000000000,,1404,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.560000000000,,1504,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,1048575,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,425.325000000000,,1605,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,452.355000000000,,1707,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,1048575,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2706.209226704433,24.115000000000,256,0,91,0,Exact +Quantum128BitADPS16,q32,256,2,1048575,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,236.394685691456,70.490000000000,768,0,266,0,Exact +Quantum128BitADPS16,q32,256,3,1048575,5,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,185.235000000000,120.310000000000,699,0,454,0,Exact +Quantum128BitADPS16,q32,256,4,1048575,124,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,1048575,16402,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.475000000000,,915,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,293.620000000000,,1108,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.560000000000,,1504,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,452.355000000000,,1707,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,1048575,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,506.945000000000,,1913,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,1048575,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,562.065000000000,,2121,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,1048575,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.715000000000,,2331,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,1048575,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,674.160000000000,,2544,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,1048575,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,730.870000000000,,2758,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,1048575,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,788.110000000000,,2974,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,1048575,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,845.615000000000,,3191,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,1048575,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,903.650000000000,,3410,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,1048575,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,961.950000000000,,3630,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,1048575,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1020.780000000000,,3852,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,2097151,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,616.824145649637,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,2097151,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1228.119093372524,28.885000000000,128,0,109,0,Exact +Quantum128BitADPS16,q32,64,3,2097151,4,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.056394223204,21.465000000000,256,0,81,0,Exact +Quantum128BitADPS16,q32,64,4,2097151,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1014.802667197489,67.045000000000,320,0,253,0,Exact +Quantum128BitADPS16,q32,64,5,2097151,7,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,284.028046961468,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q32,64,6,2097151,8,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.859268115460,105.735000000000,512,0,399,0,Exact +Quantum128BitADPS16,q32,64,7,2097151,10,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,219.543519563785,96.460000000000,640,0,364,0,Exact +Quantum128BitADPS16,q32,64,8,2097151,12,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,97.520000000000,548,0,368,0,Exact +Quantum128BitADPS16,q32,64,9,2097151,14,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,103.085000000000,513,0,389,0,Exact +Quantum128BitADPS16,q32,64,10,2097151,16,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,110.505000000000,512,0,417,0,Exact +Quantum128BitADPS16,q32,64,11,2097151,18,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.920000000000,118.985000000000,528,0,449,0,Exact +Quantum128BitADPS16,q32,64,12,2097151,21,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,116.600000000000,485,0,440,0,Exact +Quantum128BitADPS16,q32,64,13,2097151,23,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.330000000000,127.465000000000,522,0,481,0,Exact +Quantum128BitADPS16,q32,64,14,2097151,27,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,125.345000000000,494,0,473,0,Exact +Quantum128BitADPS16,q32,64,15,2097151,32,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.935000000000,489,0,479,0,Exact +Quantum128BitADPS16,q32,64,16,2097151,81,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,17,2097151,346,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,2097151,1278,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,2097151,4329,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,2097151,13782,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,2097151,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1228.119093372524,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,2097151,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2450.209187951037,67.045000000000,256,0,253,0,Exact +Quantum128BitADPS16,q32,128,3,2097151,4,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.859268115460,61.215000000000,512,0,231,0,Exact +Quantum128BitADPS16,q32,128,4,2097151,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,76.320000000000,548,0,288,0,Exact +Quantum128BitADPS16,q32,128,5,2097151,8,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,95.665000000000,512,0,361,0,Exact +Quantum128BitADPS16,q32,128,6,2097151,10,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.280000000000,116.600000000000,552,0,440,0,Exact +Quantum128BitADPS16,q32,128,7,2097151,13,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.595000000000,125.345000000000,523,0,473,0,Exact +Quantum128BitADPS16,q32,128,8,2097151,40,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,9,2097151,639,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,2097151,6891,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,2097151,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,196.365000000000,,741,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,2097151,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.475000000000,,915,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.060000000000,,1004,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,2097151,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,289.645000000000,,1093,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,313.495000000000,,1183,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,2097151,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.875000000000,,1275,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.990000000000,,1366,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,2097151,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,386.635000000000,,1459,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.280000000000,,1552,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,2097151,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2450.209187951037,18.020000000000,256,0,68,0,Exact +Quantum128BitADPS16,q32,256,2,2097151,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,58.830000000000,548,0,222,0,Exact +Quantum128BitADPS16,q32,256,3,2097151,5,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.280000000000,102.555000000000,552,0,387,0,Exact +Quantum128BitADPS16,q32,256,4,2097151,20,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,5,2097151,3445,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.060000000000,,1004,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,313.495000000000,,1183,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.990000000000,,1366,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.280000000000,,1552,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,2097151,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,461.365000000000,,1741,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,2097151,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,511.980000000000,,1932,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,2097151,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,563.125000000000,,2125,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,2097151,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,614.800000000000,,2320,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,2097151,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,667.005000000000,,2517,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,2097151,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,719.475000000000,,2715,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,2097151,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,772.475000000000,,2915,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,2097151,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,825.740000000000,,3116,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,2097151,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,879.270000000000,,3318,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,2097151,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,933.330000000000,,3522,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,4194303,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,552.824253416568,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,4194303,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1108.816451929688,14.840000000000,117,0,56,0,Exact +Quantum128BitADPS16,q32,64,3,4194303,4,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.786283130668,12.985000000000,256,0,49,0,Exact +Quantum128BitADPS16,q32,64,4,4194303,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,699.687777025235,44.520000000000,320,0,168,0,Exact +Quantum128BitADPS16,q32,64,5,4194303,6,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1241.888934359141,99.640000000000,384,0,376,0,Exact +Quantum128BitADPS16,q32,64,6,4194303,8,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.061092588315,74.730000000000,512,0,282,0,Exact +Quantum128BitADPS16,q32,64,7,4194303,9,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,864.200421216917,121.900000000000,576,0,460,0,Exact +Quantum128BitADPS16,q32,64,8,4194303,11,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,196.687994320976,106.000000000000,704,0,400,0,Exact +Quantum128BitADPS16,q32,64,9,4194303,13,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.460000000000,103.615000000000,564,0,391,0,Exact +Quantum128BitADPS16,q32,64,10,4194303,15,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.535000000000,106.530000000000,519,0,402,0,Exact +Quantum128BitADPS16,q32,64,11,4194303,17,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.415000000000,111.830000000000,511,0,422,0,Exact +Quantum128BitADPS16,q32,64,12,4194303,19,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.800000000000,118.720000000000,520,0,448,0,Exact +Quantum128BitADPS16,q32,64,13,4194303,21,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.835000000000,126.670000000000,539,0,478,0,Exact +Quantum128BitADPS16,q32,64,14,4194303,24,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,125.080000000000,510,0,472,0,Exact +Quantum128BitADPS16,q32,64,15,4194303,27,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.885000000000,127.995000000000,509,0,483,0,Exact +Quantum128BitADPS16,q32,64,16,4194303,32,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.670000000000,489,0,478,0,Exact +Quantum128BitADPS16,q32,64,17,4194303,53,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,18,4194303,229,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,19,4194303,835,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,4194303,2780,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,4194303,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1108.816451929688,10.600000000000,117,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,4194303,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2194.209649323511,44.520000000000,256,0,168,0,Exact +Quantum128BitADPS16,q32,128,3,4194303,4,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.061092588315,47.170000000000,512,0,178,0,Exact +Quantum128BitADPS16,q32,128,4,4194303,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1392.812261397890,106.000000000000,640,0,400,0,Exact +Quantum128BitADPS16,q32,128,5,4194303,7,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,205.640000000000,106.530000000000,776,0,402,0,Exact +Quantum128BitADPS16,q32,128,6,4194303,9,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.865000000000,118.720000000000,641,0,448,0,Exact +Quantum128BitADPS16,q32,128,7,4194303,12,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,117.925000000000,510,0,445,0,Exact +Quantum128BitADPS16,q32,128,8,4194303,16,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.285000000000,489,0,469,0,Exact +Quantum128BitADPS16,q32,128,9,4194303,114,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,10,4194303,1390,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,4194303,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.080000000000,,672,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.015000000000,,751,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,4194303,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,220.215000000000,,831,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,4194303,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.410000000000,,994,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,4194303,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,307.400000000000,,1160,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.925000000000,,1245,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,4194303,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,352.450000000000,,1330,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,375.240000000000,,1416,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,4194303,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2194.209649323511,12.455000000000,256,0,47,0,Exact +Quantum128BitADPS16,q32,256,2,4194303,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,4381.890313370826,106.000000000000,512,0,400,0,Exact +Quantum128BitADPS16,q32,256,3,4194303,4,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,750.237601287594,118.720000000000,1024,0,448,0,Exact +Quantum128BitADPS16,q32,256,4,4194303,8,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,121.370000000000,489,0,458,0,Exact +Quantum128BitADPS16,q32,256,5,4194303,695,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.015000000000,,751,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.925000000000,,1245,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,375.240000000000,,1416,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,4194303,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,421.085000000000,,1589,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,4194303,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,467.725000000000,,1765,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,4194303,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,514.630000000000,,1942,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,4194303,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,562.065000000000,,2121,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,4194303,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,610.030000000000,,2302,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,4194303,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,658.525000000000,,2485,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,4194303,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,707.285000000000,,2669,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,4194303,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,756.575000000000,,2855,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,4194303,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,805.865000000000,,3041,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,4194303,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.685000000000,,3229,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,8388607,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,488.824761531171,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,8388607,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,972.120372733473,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,8388607,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1455.208568341093,59.360000000000,192,0,224,0,Exact +Quantum128BitADPS16,q32,64,4,8388607,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,398.815190685335,30.740000000000,320,0,116,0,Exact +Quantum128BitADPS16,q32,64,5,8388607,6,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,863.253618777616,66.250000000000,384,0,250,0,Exact +Quantum128BitADPS16,q32,64,6,8388607,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1341.919967959694,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q32,64,7,8388607,9,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,376.835048273108,86.920000000000,576,0,328,0,Exact +Quantum128BitADPS16,q32,64,8,8388607,11,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,80.295000000000,488,0,303,0,Exact +Quantum128BitADPS16,q32,64,9,8388607,12,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,184.705000000000,110.505000000000,697,0,417,0,Exact +Quantum128BitADPS16,q32,64,10,8388607,14,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.870000000000,106.265000000000,558,0,401,0,Exact +Quantum128BitADPS16,q32,64,11,8388607,16,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,107.590000000000,512,0,406,0,Exact +Quantum128BitADPS16,q32,64,12,8388607,18,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,111.565000000000,501,0,421,0,Exact +Quantum128BitADPS16,q32,64,13,8388607,20,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,117.130000000000,507,0,442,0,Exact +Quantum128BitADPS16,q32,64,14,8388607,22,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.065000000000,123.755000000000,521,0,467,0,Exact +Quantum128BitADPS16,q32,64,15,8388607,25,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,122.165000000000,495,0,461,0,Exact +Quantum128BitADPS16,q32,64,16,8388607,28,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,124.815000000000,494,0,471,0,Exact +Quantum128BitADPS16,q32,64,17,8388607,32,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.140000000000,489,0,476,0,Exact +Quantum128BitADPS16,q32,64,18,8388607,39,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.465000000000,484,0,481,0,Exact +Quantum128BitADPS16,q32,64,19,8388607,144,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,64,20,8388607,524,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,8388607,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,972.120372733473,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,8388607,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1938.211803000245,30.740000000000,256,0,116,0,Exact +Quantum128BitADPS16,q32,128,3,8388607,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2904.095718257557,121.900000000000,384,0,460,0,Exact +Quantum128BitADPS16,q32,128,4,8388607,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,791.429912834049,80.295000000000,640,0,303,0,Exact +Quantum128BitADPS16,q32,128,5,8388607,7,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.870000000000,85.860000000000,558,0,324,0,Exact +Quantum128BitADPS16,q32,128,6,8388607,9,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,98.580000000000,501,0,372,0,Exact +Quantum128BitADPS16,q32,128,7,8388607,11,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.065000000000,113.950000000000,521,0,430,0,Exact +Quantum128BitADPS16,q32,128,8,8388607,14,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,120.045000000000,494,0,453,0,Exact +Quantum128BitADPS16,q32,128,9,8388607,19,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,127.465000000000,488,0,481,0,Exact +Quantum128BitADPS16,q32,128,10,8388607,262,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,8388607,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.650000000000,,610,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,8388607,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.730000000000,,682,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,8388607,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.340000000000,,756,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.950000000000,,830,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,8388607,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.090000000000,,906,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.230000000000,,982,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,8388607,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,280.635000000000,,1059,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.305000000000,,1137,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,8388607,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,321.975000000000,,1215,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,342.910000000000,,1294,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,8388607,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1938.211803000245,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,8388607,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3869.894672507632,80.295000000000,512,0,303,0,Exact +Quantum128BitADPS16,q32,256,3,8388607,4,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.040000000000,98.580000000000,936,0,372,0,Exact +Quantum128BitADPS16,q32,256,4,8388607,7,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,113.950000000000,494,0,430,0,Exact +Quantum128BitADPS16,q32,256,5,8388607,131,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,8388607,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.730000000000,,682,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.950000000000,,830,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.230000000000,,982,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.305000000000,,1137,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,342.910000000000,,1294,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,8388607,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,385.310000000000,,1454,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,8388607,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,428.240000000000,,1616,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,8388607,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.435000000000,,1779,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,8388607,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.425000000000,,1945,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,8388607,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,559.680000000000,,2112,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,8388607,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.465000000000,,2281,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,8388607,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,649.515000000000,,2451,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,8388607,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,694.830000000000,,2622,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,8388607,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,740.410000000000,,2794,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,8388607,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,786.520000000000,,2968,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,16777215,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,424.826832490522,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,16777215,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,844.124666961745,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,16777215,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1263.215097485452,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q32,64,4,16777215,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.017984035841,21.465000000000,320,0,81,0,Exact +Quantum128BitADPS16,q32,64,5,16777215,6,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,500.297100991050,46.110000000000,384,0,174,0,Exact +Quantum128BitADPS16,q32,64,6,16777215,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,902.624084715690,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q32,64,7,16777215,9,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.440000000000,64.660000000000,496,0,244,0,Exact +Quantum128BitADPS16,q32,64,8,16777215,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047640809370,93.810000000000,640,0,354,0,Exact +Quantum128BitADPS16,q32,64,9,16777215,12,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,85.065000000000,491,0,321,0,Exact +Quantum128BitADPS16,q32,64,10,16777215,13,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.635000000000,111.565000000000,659,0,421,0,Exact +Quantum128BitADPS16,q32,64,11,16777215,15,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.835000000000,106.530000000000,539,0,402,0,Exact +Quantum128BitADPS16,q32,64,12,16777215,17,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.705000000000,106.795000000000,497,0,403,0,Exact +Quantum128BitADPS16,q32,64,13,16777215,19,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,109.975000000000,486,0,415,0,Exact +Quantum128BitADPS16,q32,64,14,16777215,21,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,114.745000000000,489,0,433,0,Exact +Quantum128BitADPS16,q32,64,15,16777215,23,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.030000000000,120.310000000000,502,0,454,0,Exact +Quantum128BitADPS16,q32,64,16,16777215,25,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.535000000000,126.935000000000,519,0,479,0,Exact +Quantum128BitADPS16,q32,64,17,16777215,28,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,126.670000000000,505,0,478,0,Exact +Quantum128BitADPS16,q32,64,18,16777215,32,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,125.610000000000,489,0,474,0,Exact +Quantum128BitADPS16,q32,64,19,16777215,37,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,127.200000000000,487,0,480,0,Exact +Quantum128BitADPS16,q32,64,20,16777215,86,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,1,16777215,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,844.124666961745,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,16777215,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1682.220571699745,21.465000000000,256,0,81,0,Exact +Quantum128BitADPS16,q32,128,3,16777215,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2520.108972630797,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q32,128,4,16777215,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047640809370,62.805000000000,640,0,237,0,Exact +Quantum128BitADPS16,q32,128,5,16777215,6,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,994.235040601234,111.565000000000,768,0,421,0,Exact +Quantum128BitADPS16,q32,128,6,16777215,8,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,106.795000000000,677,0,403,0,Exact +Quantum128BitADPS16,q32,128,7,16777215,10,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.170000000000,114.745000000000,578,0,433,0,Exact +Quantum128BitADPS16,q32,128,8,16777215,12,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,126.935000000000,577,0,479,0,Exact +Quantum128BitADPS16,q32,128,9,16777215,16,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,122.430000000000,489,0,462,0,Exact +Quantum128BitADPS16,q32,128,10,16777215,43,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,11,16777215,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,147.075000000000,,555,0,,,AtLeast +Quantum128BitADPS16,q32,128,12,16777215,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.830000000000,,622,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,16777215,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.870000000000,,758,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,16777215,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.970000000000,,898,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,16777215,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.785000000000,,969,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,275.865000000000,,1041,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,16777215,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.945000000000,,1113,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.290000000000,,1186,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,16777215,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1682.220571699745,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,16777215,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3357.912417035036,62.805000000000,512,0,237,0,Exact +Quantum128BitADPS16,q32,256,3,16777215,4,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,82.945000000000,677,0,313,0,Exact +Quantum128BitADPS16,q32,256,4,16777215,6,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,113.155000000000,577,0,427,0,Exact +Quantum128BitADPS16,q32,256,5,16777215,21,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,256,6,16777215,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.830000000000,,622,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.870000000000,,758,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.970000000000,,898,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,275.865000000000,,1041,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.290000000000,,1186,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,16777215,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.245000000000,,1333,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,16777215,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,392.995000000000,,1483,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,16777215,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,433.010000000000,,1634,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,16777215,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,473.555000000000,,1787,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,16777215,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,514.630000000000,,1942,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,16777215,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,555.970000000000,,2098,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,16777215,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,597.575000000000,,2255,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,16777215,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,639.710000000000,,2414,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,16777215,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,682.110000000000,,2574,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,16777215,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,724.510000000000,,2734,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,33554431,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,360.835135216734,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,33554431,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,716.141881596667,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,33554431,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1071.241270612677,20.935000000000,192,0,79,0,Exact +Quantum128BitADPS16,q32,64,4,33554431,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255721873500,61.480000000000,256,0,232,0,Exact +Quantum128BitADPS16,q32,64,5,33554431,6,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,194.104330354052,33.390000000000,384,0,126,0,Exact +Quantum128BitADPS16,q32,64,6,33554431,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,488.503449280037,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q32,64,7,33554431,8,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858957065836,90.100000000000,512,0,340,0,Exact +Quantum128BitADPS16,q32,64,8,33554431,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,70.755000000000,495,0,267,0,Exact +Quantum128BitADPS16,q32,64,9,33554431,11,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,181.790000000000,96.195000000000,686,0,363,0,Exact +Quantum128BitADPS16,q32,64,10,33554431,12,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,383.014146221989,126.405000000000,768,0,477,0,Exact +Quantum128BitADPS16,q32,64,11,33554431,14,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,161.650000000000,109.975000000000,610,0,415,0,Exact +Quantum128BitADPS16,q32,64,12,33554431,16,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.940000000000,512,0,396,0,Exact +Quantum128BitADPS16,q32,64,13,33554431,17,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,165.095000000000,126.405000000000,623,0,477,0,Exact +Quantum128BitADPS16,q32,64,14,33554431,19,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.990000000000,123.755000000000,566,0,467,0,Exact +Quantum128BitADPS16,q32,64,15,33554431,21,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,144.160000000000,124.550000000000,544,0,470,0,Exact +Quantum128BitADPS16,q32,64,16,33554431,23,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.100000000000,127.465000000000,540,0,481,0,Exact +Quantum128BitADPS16,q32,64,17,33554431,26,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.705000000000,122.430000000000,497,0,462,0,Exact +Quantum128BitADPS16,q32,64,18,33554431,29,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,122.430000000000,485,0,462,0,Exact +Quantum128BitADPS16,q32,64,19,33554431,32,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,125.080000000000,489,0,472,0,Exact +Quantum128BitADPS16,q32,64,20,33554431,36,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.935000000000,489,0,479,0,Exact +Quantum128BitADPS16,q32,128,1,33554431,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,716.141881596667,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,33554431,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255721873500,14.045000000000,256,0,53,0,Exact +Quantum128BitADPS16,q32,128,3,33554431,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2136.162103148672,57.770000000000,384,0,218,0,Exact +Quantum128BitADPS16,q32,128,4,33554431,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,50.350000000000,495,0,190,0,Exact +Quantum128BitADPS16,q32,128,5,33554431,6,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,383.014146221989,86.920000000000,768,0,328,0,Exact +Quantum128BitADPS16,q32,128,6,33554431,8,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,87.980000000000,512,0,332,0,Exact +Quantum128BitADPS16,q32,128,7,33554431,9,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,197.690000000000,123.755000000000,746,0,467,0,Exact +Quantum128BitADPS16,q32,128,8,33554431,11,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.685000000000,127.465000000000,629,0,481,0,Exact +Quantum128BitADPS16,q32,128,9,33554431,14,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,122.430000000000,516,0,462,0,Exact +Quantum128BitADPS16,q32,128,10,33554431,18,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.815000000000,489,0,471,0,Exact +Quantum128BitADPS16,q32,128,11,33554431,91,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q32,128,12,33554431,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.520000000000,,568,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,33554431,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.910000000000,,694,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,33554431,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.870000000000,,758,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,218.095000000000,,823,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,33554431,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,235.320000000000,,888,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.075000000000,,955,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,33554431,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,270.830000000000,,1022,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,288.585000000000,,1089,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,33554431,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255721873500,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,33554431,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2845.983545816850,50.350000000000,512,0,190,0,Exact +Quantum128BitADPS16,q32,256,3,33554431,4,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,70.755000000000,512,0,267,0,Exact +Quantum128BitADPS16,q32,256,4,33554431,5,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,273.745000000000,127.465000000000,1033,0,481,0,Exact +Quantum128BitADPS16,q32,256,5,33554431,9,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,122.165000000000,489,0,461,0,Exact +Quantum128BitADPS16,q32,256,6,33554431,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.520000000000,,568,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.910000000000,,694,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,218.095000000000,,823,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.075000000000,,955,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,288.585000000000,,1089,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,33554431,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.890000000000,,1226,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,33554431,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.460000000000,,1364,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,33554431,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.560000000000,,1504,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,33554431,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,436.190000000000,,1646,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,33554431,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,474.350000000000,,1790,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,33554431,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,512.510000000000,,1934,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,33554431,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.200000000000,,2080,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,33554431,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,590.155000000000,,2227,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,33554431,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,629.375000000000,,2375,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,33554431,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,669.125000000000,,2525,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,67108863,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,296.868349776526,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,67108863,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,588.210746553462,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,67108863,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,879.345972219746,10.865000000000,192,0,41,0,Exact +Quantum128BitADPS16,q32,64,4,67108863,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396334315938,38.955000000000,256,0,147,0,Exact +Quantum128BitADPS16,q32,64,5,67108863,5,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1461.400195022537,77.645000000000,320,0,293,0,Exact +Quantum128BitADPS16,q32,64,6,67108863,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,161.930421580879,42.400000000000,448,0,160,0,Exact +Quantum128BitADPS16,q32,64,7,67108863,8,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060964899943,64.925000000000,512,0,245,0,Exact +Quantum128BitADPS16,q32,64,8,67108863,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,634.215205041433,92.485000000000,576,0,349,0,Exact +Quantum128BitADPS16,q32,64,9,67108863,10,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,907.108112445368,125.345000000000,640,0,473,0,Exact +Quantum128BitADPS16,q32,64,10,67108863,12,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,95.665000000000,616,0,361,0,Exact +Quantum128BitADPS16,q32,64,11,67108863,13,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,206.435000000000,120.575000000000,779,0,455,0,Exact +Quantum128BitADPS16,q32,64,12,67108863,15,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,148.400000000000,106.530000000000,560,0,402,0,Exact +Quantum128BitADPS16,q32,64,13,67108863,16,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,127.995000000000,677,0,483,0,Exact +Quantum128BitADPS16,q32,64,14,67108863,18,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.580000000000,120.310000000000,572,0,454,0,Exact +Quantum128BitADPS16,q32,64,15,67108863,20,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,118.190000000000,529,0,446,0,Exact +Quantum128BitADPS16,q32,64,16,67108863,22,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,119.250000000000,512,0,450,0,Exact +Quantum128BitADPS16,q32,64,17,67108863,24,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,121.900000000000,510,0,460,0,Exact +Quantum128BitADPS16,q32,64,18,67108863,26,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,125.875000000000,516,0,475,0,Exact +Quantum128BitADPS16,q32,64,19,67108863,29,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.645000000000,123.490000000000,493,0,466,0,Exact +Quantum128BitADPS16,q32,64,20,67108863,32,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.550000000000,489,0,470,0,Exact +Quantum128BitADPS16,q32,128,1,67108863,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,588.210746553462,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,67108863,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396334315938,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,128,3,67108863,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1752.374642221651,42.400000000000,384,0,160,0,Exact +Quantum128BitADPS16,q32,128,4,67108863,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2334.268083169668,92.485000000000,512,0,349,0,Exact +Quantum128BitADPS16,q32,128,5,67108863,6,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,69.695000000000,616,0,263,0,Exact +Quantum128BitADPS16,q32,128,6,67108863,7,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,319.097639049868,106.530000000000,896,0,402,0,Exact +Quantum128BitADPS16,q32,128,7,67108863,9,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.580000000000,102.025000000000,572,0,385,0,Exact +Quantum128BitADPS16,q32,128,8,67108863,11,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,108.120000000000,512,0,408,0,Exact +Quantum128BitADPS16,q32,128,9,67108863,13,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,117.925000000000,516,0,445,0,Exact +Quantum128BitADPS16,q32,128,10,67108863,16,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,120.840000000000,489,0,456,0,Exact +Quantum128BitADPS16,q32,128,11,67108863,20,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.200000000000,491,0,480,0,Exact +Quantum128BitADPS16,q32,128,12,67108863,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.535000000000,,519,0,,,AtLeast +Quantum128BitADPS16,q32,128,13,67108863,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.905000000000,,577,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,67108863,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,67108863,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.175000000000,,695,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.075000000000,,755,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,67108863,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.240000000000,,816,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.670000000000,,878,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,67108863,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,249.100000000000,,940,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,265.530000000000,,1002,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,67108863,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396334315938,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,67108863,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2334.268083169668,40.810000000000,512,0,154,0,Exact +Quantum128BitADPS16,q32,256,3,67108863,3,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3497.932544584048,106.530000000000,768,0,402,0,Exact +Quantum128BitADPS16,q32,256,4,67108863,5,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,205.375000000000,108.120000000000,775,0,408,0,Exact +Quantum128BitADPS16,q32,256,5,67108863,8,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,115.540000000000,489,0,436,0,Exact +Quantum128BitADPS16,q32,256,6,67108863,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.535000000000,,519,0,,,AtLeast +Quantum128BitADPS16,q32,256,7,67108863,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.075000000000,,755,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.670000000000,,878,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,265.530000000000,,1002,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,67108863,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,299.185000000000,,1129,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,67108863,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.370000000000,,1258,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,67108863,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,367.820000000000,,1388,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,67108863,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.535000000000,,1519,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,67108863,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.045000000000,,1653,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,67108863,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,473.555000000000,,1787,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,67108863,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,509.595000000000,,1923,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,67108863,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,545.635000000000,,2059,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,67108863,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,582.205000000000,,2197,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,67108863,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,619.040000000000,,2336,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,134217727,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,233.001117239045,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,134217727,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,460.486010550013,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,134217727,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,687.764476466601,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q32,64,4,134217727,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958375044733,25.440000000000,256,0,96,0,Exact +Quantum128BitADPS16,q32,64,5,134217727,5,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1158.986838251796,50.880000000000,308,0,192,0,Exact +Quantum128BitADPS16,q32,64,6,134217727,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1369.224175043061,82.945000000000,384,0,313,0,Exact +Quantum128BitADPS16,q32,64,7,134217727,7,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1596.322188331776,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q32,64,8,134217727,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,211.840556297955,68.370000000000,576,0,258,0,Exact +Quantum128BitADPS16,q32,64,9,134217727,10,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,377.492760002277,91.160000000000,640,0,344,0,Exact +Quantum128BitADPS16,q32,64,10,134217727,11,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,567.304400572236,117.130000000000,704,0,442,0,Exact +Quantum128BitADPS16,q32,64,11,134217727,13,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.750000000000,93.280000000000,550,0,352,0,Exact +Quantum128BitADPS16,q32,64,12,134217727,14,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,177.285000000000,113.420000000000,669,0,428,0,Exact +Quantum128BitADPS16,q32,64,13,134217727,16,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,98.050000000000,486,0,370,0,Exact +Quantum128BitADPS16,q32,64,14,134217727,17,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.315000000000,115.010000000000,571,0,434,0,Exact +Quantum128BitADPS16,q32,64,15,134217727,19,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,109.710000000000,503,0,414,0,Exact +Quantum128BitADPS16,q32,64,16,134217727,20,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,125.610000000000,577,0,474,0,Exact +Quantum128BitADPS16,q32,64,17,134217727,22,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.570000000000,123.225000000000,538,0,465,0,Exact +Quantum128BitADPS16,q32,64,18,134217727,24,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.330000000000,123.490000000000,522,0,466,0,Exact +Quantum128BitADPS16,q32,64,19,134217727,26,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.270000000000,125.345000000000,518,0,473,0,Exact +Quantum128BitADPS16,q32,64,20,134217727,29,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,121.105000000000,485,0,457,0,Exact +Quantum128BitADPS16,q32,128,1,134217727,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,460.486010550013,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,134217727,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958375044733,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,128,3,134217727,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1369.224175043061,31.800000000000,384,0,120,0,Exact +Quantum128BitADPS16,q32,128,4,134217727,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405394201416,68.370000000000,512,0,258,0,Exact +Quantum128BitADPS16,q32,128,5,134217727,5,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2277.540265099242,117.130000000000,640,0,442,0,Exact +Quantum128BitADPS16,q32,128,6,134217727,7,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,177.285000000000,82.150000000000,669,0,310,0,Exact +Quantum128BitADPS16,q32,128,7,134217727,8,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,230.815000000000,115.010000000000,871,0,434,0,Exact +Quantum128BitADPS16,q32,128,8,134217727,10,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,108.915000000000,577,0,411,0,Exact +Quantum128BitADPS16,q32,128,9,134217727,12,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.330000000000,112.890000000000,522,0,426,0,Exact +Quantum128BitADPS16,q32,128,10,134217727,14,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.330000000000,121.105000000000,522,0,457,0,Exact +Quantum128BitADPS16,q32,128,11,134217727,17,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.440000000000,123.225000000000,496,0,465,0,Exact +Quantum128BitADPS16,q32,128,12,134217727,22,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,126.935000000000,485,0,479,0,Exact +Quantum128BitADPS16,q32,128,13,134217727,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,134217727,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.760000000000,,584,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,134217727,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.335000000000,,639,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.175000000000,,695,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,134217727,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.280000000000,,752,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.385000000000,,809,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,134217727,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,229.490000000000,,866,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.860000000000,,924,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,134217727,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958375044733,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,134217727,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405394201416,33.390000000000,512,0,126,0,Exact +Quantum128BitADPS16,q32,256,3,134217727,3,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2731.645818619931,82.150000000000,768,0,310,0,Exact +Quantum128BitADPS16,q32,256,4,134217727,5,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,90.100000000000,577,0,340,0,Exact +Quantum128BitADPS16,q32,256,5,134217727,7,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.330000000000,111.035000000000,522,0,419,0,Exact +Quantum128BitADPS16,q32,256,6,134217727,11,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,126.140000000000,485,0,476,0,Exact +Quantum128BitADPS16,q32,256,7,134217727,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.760000000000,,584,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.175000000000,,695,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.385000000000,,809,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.860000000000,,924,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,134217727,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,134217727,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,307.930000000000,,1162,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,134217727,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,339.995000000000,,1283,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,134217727,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,372.325000000000,,1405,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,134217727,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.185000000000,,1529,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,134217727,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.310000000000,,1654,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,134217727,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.965000000000,,1781,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,134217727,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,505.620000000000,,1908,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,134217727,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,539.540000000000,,2036,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,134217727,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,573.990000000000,,2166,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,268435455,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.530662212934,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q32,64,2,268435455,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,333.583788849996,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,268435455,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,497.433442261873,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q32,64,4,268435455,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,609.067545371492,14.575000000000,256,0,55,0,Exact +Quantum128BitADPS16,q32,64,5,268435455,5,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,759.760650377198,32.330000000000,320,0,122,0,Exact +Quantum128BitADPS16,q32,64,6,268435455,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,910.425013262723,52.470000000000,384,0,198,0,Exact +Quantum128BitADPS16,q32,64,7,268435455,7,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1061.069537382161,75.790000000000,448,0,286,0,Exact +Quantum128BitADPS16,q32,64,8,268435455,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1213.362442152870,102.025000000000,511,0,385,0,Exact +Quantum128BitADPS16,q32,64,9,268435455,10,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,65.455000000000,494,0,247,0,Exact +Quantum128BitADPS16,q32,64,10,268435455,11,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,161.650000000000,82.945000000000,610,0,313,0,Exact +Quantum128BitADPS16,q32,64,11,268435455,12,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,193.980000000000,102.290000000000,732,0,386,0,Exact +Quantum128BitADPS16,q32,64,12,268435455,13,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,254.728608351169,122.960000000000,832,0,464,0,Exact +Quantum128BitADPS16,q32,64,13,268435455,15,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,101.495000000000,548,0,383,0,Exact +Quantum128BitADPS16,q32,64,14,268435455,16,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,168.540000000000,118.720000000000,636,0,448,0,Exact +Quantum128BitADPS16,q32,64,15,268435455,18,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,108.120000000000,516,0,408,0,Exact +Quantum128BitADPS16,q32,64,16,268435455,19,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,155.820000000000,123.490000000000,588,0,466,0,Exact +Quantum128BitADPS16,q32,64,17,268435455,21,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.655000000000,117.925000000000,527,0,445,0,Exact +Quantum128BitADPS16,q32,64,18,268435455,23,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.235000000000,116.335000000000,499,0,439,0,Exact +Quantum128BitADPS16,q32,64,19,268435455,25,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,117.130000000000,488,0,442,0,Exact +Quantum128BitADPS16,q32,64,20,268435455,27,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,119.250000000000,487,0,450,0,Exact +Quantum128BitADPS16,q32,128,1,268435455,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,333.583788849996,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,268435455,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,609.067545371492,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,128,3,268435455,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,910.425013262723,22.790000000000,384,0,86,0,Exact +Quantum128BitADPS16,q32,128,4,268435455,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1213.362442152870,49.555000000000,511,0,187,0,Exact +Quantum128BitADPS16,q32,128,5,268435455,5,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1512.928601582186,82.945000000000,640,0,313,0,Exact +Quantum128BitADPS16,q32,128,6,268435455,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1814.128903106573,122.960000000000,768,0,464,0,Exact +Quantum128BitADPS16,q32,128,7,268435455,8,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,168.540000000000,93.810000000000,636,0,354,0,Exact +Quantum128BitADPS16,q32,128,8,268435455,9,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,218.890000000000,123.490000000000,826,0,466,0,Exact +Quantum128BitADPS16,q32,128,9,268435455,11,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,156.350000000000,116.335000000000,590,0,439,0,Exact +Quantum128BitADPS16,q32,128,10,268435455,13,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.835000000000,119.250000000000,539,0,450,0,Exact +Quantum128BitADPS16,q32,128,11,268435455,15,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.305000000000,126.140000000000,537,0,476,0,Exact +Quantum128BitADPS16,q32,128,12,268435455,18,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,127.200000000000,510,0,480,0,Exact +Quantum128BitADPS16,q32,128,13,268435455,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.055000000000,,487,0,,,AtLeast +Quantum128BitADPS16,q32,128,14,268435455,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.305000000000,,537,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,268435455,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.085000000000,,589,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,268435455,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.645000000000,,693,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.690000000000,,746,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,268435455,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.000000000000,,800,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.310000000000,,854,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,268435455,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,609.067545371492,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,268435455,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1213.362442152870,26.500000000000,511,0,100,0,Exact +Quantum128BitADPS16,q32,256,3,268435455,3,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1814.128903106573,67.840000000000,768,0,256,0,Exact +Quantum128BitADPS16,q32,256,4,268435455,4,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2416.475272879404,123.490000000000,1024,0,466,0,Exact +Quantum128BitADPS16,q32,256,5,268435455,6,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,192.390000000000,119.250000000000,726,0,450,0,Exact +Quantum128BitADPS16,q32,256,6,268435455,9,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,122.165000000000,510,0,461,0,Exact +Quantum128BitADPS16,q32,256,7,268435455,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.305000000000,,537,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.690000000000,,746,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.310000000000,,854,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,268435455,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,255.460000000000,,964,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,268435455,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,284.875000000000,,1075,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,268435455,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.820000000000,,1188,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,268435455,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,268435455,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,375.505000000000,,1417,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,268435455,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,406.510000000000,,1534,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,268435455,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.780000000000,,1652,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,268435455,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,469.315000000000,,1771,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,268435455,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,501.115000000000,,1891,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,268435455,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,533.180000000000,,2012,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,536870911,0,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,,95.261584744207,,,64,0,Exact +Quantum128BitADPS16,q32,64,2,536870911,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,185.262111810554,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,64,3,536870911,3,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,275.075594914091,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q32,64,4,536870911,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,364.812236000137,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,64,5,536870911,5,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,454.506700561067,22.525000000000,320,0,85,0,Exact +Quantum128BitADPS16,q32,64,6,536870911,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,544.174456884720,37.365000000000,384,0,141,0,Exact +Quantum128BitADPS16,q32,64,7,536870911,7,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,633.823766533953,54.060000000000,448,0,204,0,Exact +Quantum128BitADPS16,q32,64,8,536870911,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,723.459565577896,72.610000000000,512,0,274,0,Exact +Quantum128BitADPS16,q32,64,9,536870911,9,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,813.085040253387,92.485000000000,576,0,349,0,Exact +Quantum128BitADPS16,q32,64,10,536870911,10,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,902.702367420659,113.420000000000,640,0,428,0,Exact +Quantum128BitADPS16,q32,64,11,536870911,12,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.415000000000,79.235000000000,511,0,299,0,Exact +Quantum128BitADPS16,q32,64,12,536870911,13,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,158.470000000000,94.870000000000,598,0,358,0,Exact +Quantum128BitADPS16,q32,64,13,536870911,14,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,182.055000000000,111.565000000000,687,0,421,0,Exact +Quantum128BitADPS16,q32,64,14,536870911,16,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,95.665000000000,486,0,361,0,Exact +Quantum128BitADPS16,q32,64,15,536870911,17,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.810000000000,109.710000000000,554,0,414,0,Exact +Quantum128BitADPS16,q32,64,16,536870911,18,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,165.625000000000,124.550000000000,625,0,470,0,Exact +Quantum128BitADPS16,q32,64,17,536870911,20,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.920000000000,114.745000000000,528,0,433,0,Exact +Quantum128BitADPS16,q32,64,18,536870911,22,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,111.035000000000,484,0,419,0,Exact +Quantum128BitADPS16,q32,64,19,536870911,23,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,142.305000000000,122.960000000000,537,0,464,0,Exact +Quantum128BitADPS16,q32,64,20,536870911,25,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,121.370000000000,512,0,458,0,Exact +Quantum128BitADPS16,q32,128,1,536870911,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,185.262111810554,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q32,128,2,536870911,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,364.812236000137,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,128,3,536870911,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,544.174456884720,16.960000000000,384,0,64,0,Exact +Quantum128BitADPS16,q32,128,4,536870911,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,723.459565577896,38.690000000000,512,0,146,0,Exact +Quantum128BitADPS16,q32,128,5,536870911,5,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,902.702367420659,64.660000000000,640,0,244,0,Exact +Quantum128BitADPS16,q32,128,6,536870911,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1081.918387089638,94.870000000000,768,0,358,0,Exact +Quantum128BitADPS16,q32,128,7,536870911,8,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,78.175000000000,486,0,295,0,Exact +Quantum128BitADPS16,q32,128,8,536870911,9,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,165.625000000000,102.025000000000,625,0,385,0,Exact +Quantum128BitADPS16,q32,128,9,536870911,11,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,99.375000000000,484,0,375,0,Exact +Quantum128BitADPS16,q32,128,10,536870911,12,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,156.615000000000,121.370000000000,591,0,458,0,Exact +Quantum128BitADPS16,q32,128,11,536870911,14,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,144.955000000000,123.225000000000,547,0,465,0,Exact +Quantum128BitADPS16,q32,128,12,536870911,17,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,120.045000000000,488,0,453,0,Exact +Quantum128BitADPS16,q32,128,13,536870911,20,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,125.345000000000,491,0,473,0,Exact +Quantum128BitADPS16,q32,128,14,536870911,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.175000000000,,495,0,,,AtLeast +Quantum128BitADPS16,q32,128,15,536870911,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.895000000000,,543,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,536870911,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.600000000000,,640,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.850000000000,,690,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,536870911,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,196.100000000000,,740,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,536870911,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,364.812236000137,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,536870911,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,723.459565577896,21.730000000000,512,0,82,0,Exact +Quantum128BitADPS16,q32,256,3,536870911,3,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1081.918387089638,56.710000000000,768,0,214,0,Exact +Quantum128BitADPS16,q32,256,4,536870911,4,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1440.299898317104,102.025000000000,1024,0,385,0,Exact +Quantum128BitADPS16,q32,256,5,536870911,6,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,156.615000000000,103.615000000000,591,0,391,0,Exact +Quantum128BitADPS16,q32,256,6,536870911,8,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,144.425000000000,120.045000000000,545,0,453,0,Exact +Quantum128BitADPS16,q32,256,7,536870911,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.175000000000,,495,0,,,AtLeast +Quantum128BitADPS16,q32,256,8,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.850000000000,,690,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,536870911,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.380000000000,,892,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,536870911,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.940000000000,,996,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,536870911,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.030000000000,,1102,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,536870911,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.120000000000,,1208,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,536870911,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,348.740000000000,,1316,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,536870911,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.625000000000,,1425,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,536870911,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,406.775000000000,,1535,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,536870911,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,436.455000000000,,1647,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,536870911,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,466.135000000000,,1759,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,536870911,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,496.080000000000,,1872,0,,,AtLeast +Quantum128BitADPS16,q32,64,1,1073741823,0,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,,41.705190837327,,,64,0,Exact +Quantum128BitADPS16,q32,64,2,1073741823,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2075.542856342607,78.849783483918,64,0,128,0,Exact +Quantum128BitADPS16,q32,64,3,1073741823,2,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2097.556513720840,115.859121158054,128,0,192,0,Exact +Quantum128BitADPS16,q32,64,4,1073741823,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.812313023562,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,64,5,1073741823,5,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,189.734508227602,15.105000000000,320,0,57,0,Exact +Quantum128BitADPS16,q32,64,6,1073741823,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,226.636998254134,27.295000000000,384,0,103,0,Exact +Quantum128BitADPS16,q32,64,7,1073741823,7,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,263.525839782522,40.015000000000,448,0,151,0,Exact +Quantum128BitADPS16,q32,64,8,1073741823,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,300.404663152610,53.530000000000,512,0,202,0,Exact +Quantum128BitADPS16,q32,64,9,1073741823,9,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,337.275817654282,68.370000000000,576,0,258,0,Exact +Quantum128BitADPS16,q32,64,10,1073741823,10,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,374.140911614561,83.740000000000,640,0,316,0,Exact +Quantum128BitADPS16,q32,64,11,1073741823,11,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,411.001094713073,99.640000000000,704,0,376,0,Exact +Quantum128BitADPS16,q32,64,12,1073741823,12,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,447.857217414218,116.335000000000,768,0,439,0,Exact +Quantum128BitADPS16,q32,64,13,1073741823,14,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,88.245000000000,503,0,333,0,Exact +Quantum128BitADPS16,q32,64,14,1073741823,15,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,150.785000000000,101.495000000000,569,0,383,0,Exact +Quantum128BitADPS16,q32,64,15,1073741823,16,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,168.540000000000,115.540000000000,636,0,436,0,Exact +Quantum128BitADPS16,q32,64,16,1073741823,18,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,101.760000000000,490,0,384,0,Exact +Quantum128BitADPS16,q32,64,17,1073741823,19,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,144.690000000000,114.215000000000,546,0,431,0,Exact +Quantum128BitADPS16,q32,64,18,1073741823,20,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.060000000000,126.935000000000,604,0,479,0,Exact +Quantum128BitADPS16,q32,64,19,1073741823,22,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.920000000000,118.455000000000,528,0,447,0,Exact +Quantum128BitADPS16,q32,64,20,1073741823,24,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,115.010000000000,492,0,434,0,Exact +Quantum128BitADPS16,q32,128,1,1073741823,0,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,,78.849783483918,,,128,0,Exact +Quantum128BitADPS16,q32,128,2,1073741823,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.812313023562,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,128,3,1073741823,3,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,226.636998254134,10.865000000000,384,0,41,0,Exact +Quantum128BitADPS16,q32,128,4,1073741823,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,300.404663152610,30.740000000000,512,0,116,0,Exact +Quantum128BitADPS16,q32,128,5,1073741823,5,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,374.140911614561,51.675000000000,640,0,195,0,Exact +Quantum128BitADPS16,q32,128,6,1073741823,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,447.857217414218,75.260000000000,768,0,284,0,Exact +Quantum128BitADPS16,q32,128,7,1073741823,7,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,521.559725831725,101.495000000000,896,0,383,0,Exact +Quantum128BitADPS16,q32,128,8,1073741823,9,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,85.595000000000,490,0,323,0,Exact +Quantum128BitADPS16,q32,128,9,1073741823,10,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.060000000000,107.060000000000,604,0,404,0,Exact +Quantum128BitADPS16,q32,128,10,1073741823,12,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,104.410000000000,492,0,394,0,Exact +Quantum128BitADPS16,q32,128,11,1073741823,13,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,154.760000000000,124.285000000000,584,0,469,0,Exact +Quantum128BitADPS16,q32,128,12,1073741823,15,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,126.140000000000,548,0,476,0,Exact +Quantum128BitADPS16,q32,128,13,1073741823,18,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.440000000000,122.960000000000,496,0,464,0,Exact +Quantum128BitADPS16,q32,128,14,1073741823,21,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.970000000000,127.465000000000,498,0,481,0,Exact +Quantum128BitADPS16,q32,128,15,1073741823,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.030000000000,,502,0,,,AtLeast +Quantum128BitADPS16,q32,128,16,1073741823,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.955000000000,,547,0,,,AtLeast +Quantum128BitADPS16,q32,128,17,1073741823,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.880000000000,,592,0,,,AtLeast +Quantum128BitADPS16,q32,128,18,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.335000000000,,639,0,,,AtLeast +Quantum128BitADPS16,q32,128,19,1073741823,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,181.525000000000,,685,0,,,AtLeast +Quantum128BitADPS16,q32,128,20,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.980000000000,,732,0,,,AtLeast +Quantum128BitADPS16,q32,256,1,1073741823,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.812313023562,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q32,256,2,1073741823,2,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,300.404663152610,17.755000000000,512,0,67,0,Exact +Quantum128BitADPS16,q32,256,3,1073741823,3,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,447.857217414218,47.965000000000,768,0,181,0,Exact +Quantum128BitADPS16,q32,256,4,1073741823,4,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,595.252115918746,85.595000000000,1024,0,323,0,Exact +Quantum128BitADPS16,q32,256,5,1073741823,6,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,91.160000000000,492,0,344,0,Exact +Quantum128BitADPS16,q32,256,6,1073741823,7,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,180.465000000000,126.140000000000,681,0,476,0,Exact +Quantum128BitADPS16,q32,256,7,1073741823,10,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.860000000000,127.465000000000,524,0,481,0,Exact +Quantum128BitADPS16,q32,256,8,1073741823,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.955000000000,,547,0,,,AtLeast +Quantum128BitADPS16,q32,256,9,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.335000000000,,639,0,,,AtLeast +Quantum128BitADPS16,q32,256,10,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.980000000000,,732,0,,,AtLeast +Quantum128BitADPS16,q32,256,11,1073741823,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q32,256,12,1073741823,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,245.125000000000,,925,0,,,AtLeast +Quantum128BitADPS16,q32,256,13,1073741823,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.360000000000,,1024,0,,,AtLeast +Quantum128BitADPS16,q32,256,14,1073741823,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.595000000000,,1123,0,,,AtLeast +Quantum128BitADPS16,q32,256,15,1073741823,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.360000000000,,1224,0,,,AtLeast +Quantum128BitADPS16,q32,256,16,1073741823,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,351.390000000000,,1326,0,,,AtLeast +Quantum128BitADPS16,q32,256,17,1073741823,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.950000000000,,1430,0,,,AtLeast +Quantum128BitADPS16,q32,256,18,1073741823,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,406.510000000000,,1534,0,,,AtLeast +Quantum128BitADPS16,q32,256,19,1073741823,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,434.335000000000,,1639,0,,,AtLeast +Quantum128BitADPS16,q32,256,20,1073741823,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.160000000000,,1744,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,2,25091,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,2,2,7606285,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,2,538172276,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,2,18668388992,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,2,415144920028,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,2,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q64,64,7,2,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.530000000000,,602,0,,,AtLeast +Quantum128BitADPS16,q64,64,8,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.330000000000,,722,0,,,AtLeast +Quantum128BitADPS16,q64,64,9,2,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.190000000000,,846,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,2,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,2,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.030000000000,,1102,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,327.010000000000,,1234,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,2,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,362.785000000000,,1369,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.825000000000,,1505,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,2,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,435.660000000000,,1644,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,472.760000000000,,1784,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,2,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,510.390000000000,,1926,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.550000000000,,2070,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,2,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.975000000000,,2215,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.930000000000,,2362,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,2,3803142,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,2,9334194496,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,2,3381235739844,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.465000000000,,681,0,,,AtLeast +Quantum128BitADPS16,q64,128,5,2,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.535000000000,,919,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,309.255000000000,,1167,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.625000000000,,1425,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,447.850000000000,,1690,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,519.665000000000,,1961,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,593.335000000000,,2239,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,2,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,668.330000000000,,2522,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,744.385000000000,,2809,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,2,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,821.765000000000,,3101,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,900.470000000000,,3398,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,2,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.705000000000,,3697,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1060.265000000000,,4001,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,2,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1141.355000000000,,4307,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1223.505000000000,,4617,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,2,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1306.185000000000,,4929,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:224513.018937684217,,4934,819199999985941,,,AtLeast +Quantum128BitADPS16,q64,256,1,2,4667097248,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.395000000000,,643,0,,,AtLeast +Quantum128BitADPS16,q64,256,3,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.825000000000,,1105,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.530000000000,,1602,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,562.860000000000,,2124,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,706.755000000000,,2667,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.155000000000,,3227,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1007.265000000000,,3801,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1162.820000000000,,4388,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:32336.886465868978,,4934,1,,,AtLeast +Quantum128BitADPS16,q64,256,11,2,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:251720.451384118729,,4934,1638399999985255,,,AtLeast +Quantum128BitADPS16,q64,256,12,2,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:279160.661409805762,,4933,1638399999984601,,,AtLeast +Quantum128BitADPS16,q64,256,13,2,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:306799.399671089544,,4933,1638399999983972,,,AtLeast +Quantum128BitADPS16,q64,256,14,2,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334610.770029844600,,4933,1638399999983367,,,AtLeast +Quantum128BitADPS16,q64,256,15,2,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:362585.683845080086,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,2,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:390686.233907236194,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,2,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:418947.099631444959,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,2,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:447303.117761324334,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,2,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:475782.194915602624,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,2,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:504374.059347082861,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,3,9989,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,2,3,3174318,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,3,228063961,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,3,7975201095,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,3,178260240781,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,3,2914178382100,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,3,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q64,64,8,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.345000000000,,673,0,,,AtLeast +Quantum128BitADPS16,q64,64,9,3,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.085000000000,,789,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,3,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.620000000000,,908,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,3,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.685000000000,,1029,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,305.545000000000,,1153,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,3,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,339.200000000000,,1280,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.120000000000,,1408,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,3,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,407.570000000000,,1538,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.550000000000,,1670,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,3,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,478.060000000000,,1804,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,513.835000000000,,1939,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,3,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,549.875000000000,,2075,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.445000000000,,2213,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,3,1587159,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,3,3987600547,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,3,1457089191050,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q64,128,5,3,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.635000000000,,859,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,289.380000000000,,1092,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.510000000000,,1334,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,419.760000000000,,1584,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.335000000000,,1839,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.500000000000,,2100,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,3,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,627.255000000000,,2367,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,699.070000000000,,2638,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,3,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,771.945000000000,,2913,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,845.880000000000,,3192,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,3,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,920.610000000000,,3474,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,996.400000000000,,3760,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,3,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1072.985000000000,,4049,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1150.365000000000,,4341,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,3,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1228.275000000000,,4635,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1306.980000000000,,4932,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,3,1993800273,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.265000000000,,601,0,,,AtLeast +Quantum128BitADPS16,q64,256,3,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,274.275000000000,,1035,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.295000000000,,1503,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,528.675000000000,,1995,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.355000000000,,2507,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,804.275000000000,,3035,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,947.640000000000,,3576,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1094.450000000000,,4130,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1243.910000000000,,4694,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,3,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:243095.179311362241,,4934,1638399999985255,,,AtLeast +Quantum128BitADPS16,q64,256,12,3,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:270152.823861291574,,4933,1638399999984601,,,AtLeast +Quantum128BitADPS16,q64,256,13,3,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:297423.620709554059,,4933,1638399999983972,,,AtLeast +Quantum128BitADPS16,q64,256,14,3,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:324880.420750299294,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q64,256,15,3,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:352513.214545162511,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,3,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:380283.845756911847,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,3,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:408224.152030725498,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,3,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:436269.555072721851,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,3,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:464446.206614127266,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,3,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:492743.249945244170,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,7,1380,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,2,7,503495,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,7,37608772,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,7,1341082602,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,7,30340334794,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,7,500169842353,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,7,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.260000000000,,484,0,,,AtLeast +Quantum128BitADPS16,q64,64,8,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q64,64,9,7,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,181.525000000000,,685,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,7,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,7,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.705000000000,,897,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.590000000000,,1006,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,7,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.005000000000,,1117,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,7,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,325.950000000000,,1230,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,7,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,356.425000000000,,1345,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,387.430000000000,,1462,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,7,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,418.435000000000,,1579,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,450.235000000000,,1699,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,7,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.035000000000,,1819,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,514.365000000000,,1941,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,7,251747,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,7,670541301,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,7,250084921176,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.280000000000,,552,0,,,AtLeast +Quantum128BitADPS16,q64,128,5,7,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,198.485000000000,,749,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.075000000000,,955,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,7,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,309.520000000000,,1168,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.085000000000,,1389,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.975000000000,,1615,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,489.190000000000,,1846,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,7,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.730000000000,,2082,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,615.330000000000,,2322,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,7,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,679.990000000000,,2566,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,745.445000000000,,2813,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,7,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,811.695000000000,,3063,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,879.005000000000,,3317,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,7,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,946.845000000000,,3573,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1015.480000000000,,3832,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,7,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1084.645000000000,,4093,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1154.605000000000,,4357,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,7,335270650,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.595000000000,,523,0,,,AtLeast +Quantum128BitADPS16,q64,256,3,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.355000000000,,907,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,350.065000000000,,1321,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,465.605000000000,,1757,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.180000000000,,2212,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,710.200000000000,,2680,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,837.930000000000,,3162,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,968.310000000000,,3654,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1101.340000000000,,4156,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,7,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1236.490000000000,,4666,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,7,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:251327.582960176340,,4934,1638399999984599,,,AtLeast +Quantum128BitADPS16,q64,256,13,7,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:277828.785684739880,,4934,1638399999983970,,,AtLeast +Quantum128BitADPS16,q64,256,14,7,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:304545.922821417334,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q64,256,15,7,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:331464.839442187280,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,7,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358546.041328285821,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,7,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385816.476555206988,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,7,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:413212.789221473795,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,7,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:440757.463881048257,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,7,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:468438.421431811526,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,15,208,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,2,15,93943,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,15,7348487,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,15,267753975,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,15,6136166965,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,15,102042220193,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,15,1336211826970,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q64,64,9,15,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,160.590000000000,,606,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,15,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.500000000000,,700,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,15,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,210.940000000000,,796,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.910000000000,,894,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,15,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.410000000000,,994,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,15,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.175000000000,,1095,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,15,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,317.470000000000,,1198,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,15,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.120000000000,,1408,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,401.475000000000,,1515,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,15,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,430.360000000000,,1624,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,459.245000000000,,1733,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,15,46971,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,15,133876987,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,15,51021110096,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q64,128,5,15,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.225000000000,,665,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,15,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.600000000000,,1240,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.395000000000,,1443,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.780000000000,,1652,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,15,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,493.960000000000,,1864,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.200000000000,,2080,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,15,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,609.500000000000,,2300,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,668.595000000000,,2523,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,15,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,728.220000000000,,2748,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,788.905000000000,,2977,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,15,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,850.120000000000,,3208,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,912.130000000000,,3442,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,15,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,974.405000000000,,3677,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1037.475000000000,,3915,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,15,66938493,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,15,3628240405687,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.120000000000,,808,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.375000000000,,1575,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.025000000000,,1985,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.120000000000,,2408,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.395000000000,,2843,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,871.320000000000,,3288,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,991.365000000000,,3741,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,15,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1113.795000000000,,4203,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,15,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1238.080000000000,,4672,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,15,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:260203.228838537849,,4934,1638399999983970,,,AtLeast +Quantum128BitADPS16,q64,256,14,15,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:286255.146892117453,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q64,256,15,15,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:312531.934679375612,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,15,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:338992.998445552774,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,15,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365660.888123345154,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,15,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:392473.347346956434,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,15,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:419449.562063305115,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,15,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:446576.353634598665,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,31,26,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q64,64,2,31,18455,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,31,1531882,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,31,57253878,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,31,1331352696,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,31,22353782153,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,31,294742219596,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,31,3218053350580,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,31,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.365000000000,,541,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,31,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.890000000000,,626,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,31,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.945000000000,,713,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.265000000000,,801,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,31,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.380000000000,,892,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,31,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.760000000000,,984,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,31,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,310.580000000000,,1172,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,31,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,335.755000000000,,1267,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.725000000000,,1365,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,31,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,387.695000000000,,1463,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,413.930000000000,,1562,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,31,9227,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,31,28626939,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,31,11176891076,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,31,1609026675290,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,31,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,31,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.305000000000,,937,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.005000000000,,1117,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.115000000000,,1491,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,31,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,446.260000000000,,1684,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.200000000000,,1880,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,31,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.200000000000,,2080,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.730000000000,,2282,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,31,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,659.320000000000,,2488,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,714.440000000000,,2696,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,31,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,770.090000000000,,2906,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,826.270000000000,,3118,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,31,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,883.245000000000,,3333,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,940.750000000000,,3550,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,31,14313469,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,31,804513337645,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,192.655000000000,,727,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.490000000000,,1066,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.360000000000,,1424,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.205000000000,,1797,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,578.230000000000,,2182,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,683.170000000000,,2578,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,790.760000000000,,2984,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,900.205000000000,,3397,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,31,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1011.770000000000,,3818,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,31,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1125.190000000000,,4246,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,31,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1240.200000000000,,4680,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,31,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:268833.216327697737,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q64,256,15,31,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:294498.377576864266,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,31,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320368.760919724242,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,31,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:346462.727065772633,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,31,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:372719.066954816284,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,31,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:399153.824616615369,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,31,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425752.774107660633,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,63,9,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.485000000000,122.960000000000,549,0,464,0,Exact +Quantum128BitADPS16,q64,64,2,63,3618,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,63,326032,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,63,12572647,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,63,297388343,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,63,5048157684,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,63,67076470503,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,63,736589990871,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,63,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q64,64,10,63,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,149.195000000000,,563,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,63,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.130000000000,,642,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.595000000000,,723,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,63,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.325000000000,,805,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,63,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,235.585000000000,,889,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,63,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.110000000000,,974,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,280.900000000000,,1060,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,63,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,303.955000000000,,1147,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,63,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,327.540000000000,,1236,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,63,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,351.125000000000,,1325,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,375.240000000000,,1416,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,63,1809,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,63,6286323,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,63,2524078842,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,63,368294995435,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,63,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.040000000000,,536,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,63,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.720000000000,,848,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.180000000000,,1012,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,63,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,358.545000000000,,1353,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,63,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.185000000000,,1529,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,452.885000000000,,1709,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,63,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,501.115000000000,,1891,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,550.405000000000,,2077,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,63,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,599.960000000000,,2264,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,650.575000000000,,2455,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,63,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,701.455000000000,,2647,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,752.865000000000,,2841,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,63,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,805.070000000000,,3038,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,857.540000000000,,3236,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,63,3143161,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,63,184147497717,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,174.370000000000,,658,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.255000000000,,967,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,342.910000000000,,1294,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,433.275000000000,,1635,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.820000000000,,1988,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,623.015000000000,,2351,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,721.595000000000,,2723,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,822.030000000000,,3102,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,63,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,924.320000000000,,3488,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,63,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1028.200000000000,,3880,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,63,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1133.405000000000,,4277,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,63,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1240.465000000000,,4681,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,63,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:276881.900843721756,,4934,1638399999982781,,,AtLeast +Quantum128BitADPS16,q64,256,16,63,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:302175.265028041205,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,63,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:327708.581353890011,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,63,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:353421.663844306953,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,63,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:379327.487278109940,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,63,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:405410.802628134028,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,127,7,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,385.748621873532,122.430000000000,448,0,462,0,Exact +Quantum128BitADPS16,q64,64,2,127,678,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,127,69228,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,127,2778739,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,127,67090647,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,127,1153448877,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,127,15461239592,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,127,170886860493,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,127,1616981236522,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,127,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.885000000000,,509,0,,,AtLeast +Quantum128BitADPS16,q64,64,11,127,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,153.965000000000,,581,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,173.575000000000,,655,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,127,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.450000000000,,730,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,127,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.590000000000,,806,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,127,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,234.260000000000,,884,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,255.195000000000,,963,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,127,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.395000000000,,1043,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,127,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.860000000000,,1124,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,127,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,319.590000000000,,1206,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.585000000000,,1289,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,127,339,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,127,1389369,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,127,576724438,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,127,85443430246,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,127,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.525000000000,,485,0,,,AtLeast +Quantum128BitADPS16,q64,128,6,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.625000000000,,625,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,127,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,204.050000000000,,770,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.800000000000,,920,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,127,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,284.875000000000,,1075,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,326.745000000000,,1233,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,127,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.675000000000,,1395,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,413.135000000000,,1559,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,127,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,457.655000000000,,1727,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,502.705000000000,,1897,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,127,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.285000000000,,2069,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,594.660000000000,,2244,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,127,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,641.565000000000,,2421,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,688.735000000000,,2599,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,127,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.700000000000,,2780,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,784.930000000000,,2962,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,127,694684,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,127,42721715123,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.205000000000,,597,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.465000000000,,881,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.910000000000,,1494,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.035000000000,,1819,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,570.280000000000,,2152,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,660.910000000000,,2494,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.395000000000,,2843,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,127,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,847.470000000000,,3198,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,127,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,943.135000000000,,3559,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,127,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.125000000000,,3925,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,127,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1138.440000000000,,4296,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,127,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1238.080000000000,,4672,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,127,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:284189.454124008596,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q64,256,17,127,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:309168.520638720307,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,127,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334344.547199582565,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,127,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:359727.474370694661,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,127,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385301.041720008361,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,255,6,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,502.249972664221,113.685000000000,384,0,429,0,Exact +Quantum128BitADPS16,q64,64,2,255,113,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,3,255,14429,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,255,611125,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,255,15134439,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,255,264154934,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,255,3576907703,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,255,39825501710,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,255,378957714723,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,255,3166993892249,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,255,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.655000000000,,527,0,,,AtLeast +Quantum128BitADPS16,q64,64,12,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,255,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.695000000000,,663,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,255,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.510000000000,,734,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,255,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.325000000000,,805,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.405000000000,,877,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,255,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,252.015000000000,,951,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,255,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.625000000000,,1025,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,255,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,291.500000000000,,1100,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,311.905000000000,,1177,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,255,56,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,2,255,305562,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,255,132077467,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,255,19912750855,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,255,1583496946124,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.520000000000,,568,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,255,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.030000000000,,702,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,222.600000000000,,840,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,255,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.230000000000,,982,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,298.655000000000,,1127,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,255,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,338.140000000000,,1276,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.420000000000,,1428,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,255,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,419.230000000000,,1582,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,460.570000000000,,1738,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,255,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,502.705000000000,,1897,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,545.370000000000,,2058,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,255,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,588.565000000000,,2221,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,632.025000000000,,2385,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,255,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.280000000000,,2552,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,720.800000000000,,2720,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,255,152781,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,255,9956375427,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.895000000000,,543,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.060000000000,,804,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.465000000000,,1081,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,363.050000000000,,1370,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.285000000000,,1669,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,523.640000000000,,1976,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,607.115000000000,,2291,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,692.445000000000,,2613,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,255,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,779.365000000000,,2941,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,255,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,867.610000000000,,3274,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,255,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,957.445000000000,,3613,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,255,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1048.340000000000,,3956,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,255,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1140.295000000000,,4303,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,255,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1233.310000000000,,4654,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,255,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:290733.606782384682,,4934,1638399999981669,,,AtLeast +Quantum128BitADPS16,q64,256,18,255,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:315375.623235916661,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q64,256,19,255,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:340238.619662915706,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,255,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365305.329962084652,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,511,6,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,194.807775603332,73.935000000000,384,0,279,0,Exact +Quantum128BitADPS16,q64,64,2,511,17,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,126.405000000000,490,0,477,0,Exact +Quantum128BitADPS16,q64,64,3,511,2901,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,511,132654,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,511,3393135,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,511,60315145,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,511,826498675,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,511,9280294265,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,511,88868172833,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,511,746377056676,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,511,5612227639746,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.365000000000,,541,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,511,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,160.325000000000,,605,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,511,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.285000000000,,669,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,511,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.775000000000,,735,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.530000000000,,802,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,511,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,230.285000000000,,869,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,511,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.570000000000,,938,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,511,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.855000000000,,1007,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,511,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,126.405000000000,513,0,477,0,Exact +Quantum128BitADPS16,q64,128,2,511,66327,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,511,30157572,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,511,4640147132,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,511,373188528338,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.270000000000,,518,0,,,AtLeast +Quantum128BitADPS16,q64,128,7,511,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,203.520000000000,,768,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,511,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,238.235000000000,,899,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.745000000000,,1033,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,511,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,310.315000000000,,1171,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,347.150000000000,,1310,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,511,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,385.045000000000,,1453,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.205000000000,,1597,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,511,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.160000000000,,1744,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,501.645000000000,,1893,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,511,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,541.395000000000,,2043,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,581.675000000000,,2195,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,511,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,622.485000000000,,2349,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,663.560000000000,,2504,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,511,33163,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,511,2320073566,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.440000000000,,496,0,,,AtLeast +Quantum128BitADPS16,q64,256,4,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.880000000000,,992,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.635000000000,,1259,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,406.775000000000,,1535,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.035000000000,,1819,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,559.415000000000,,2111,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.385000000000,,2409,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,511,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,718.680000000000,,2712,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,511,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,800.565000000000,,3021,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,511,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,883.510000000000,,3334,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,511,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,967.780000000000,,3652,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,511,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1052.845000000000,,3973,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,511,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1139.235000000000,,4299,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,511,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1226.155000000000,,4627,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,511,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:10389.259173406230,,4934,1,,,AtLeast +Quantum128BitADPS16,q64,256,19,511,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320804.853755319142,,4934,1638399999980621,,,AtLeast +Quantum128BitADPS16,q64,256,20,511,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:345366.139727867150,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,1023,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,457.125031884902,77.645000000000,320,0,293,0,Exact +Quantum128BitADPS16,q64,64,2,1023,13,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,120.575000000000,512,0,455,0,Exact +Quantum128BitADPS16,q64,64,3,1023,547,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,1023,28188,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,1023,752556,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,1023,13683132,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,1023,190179116,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,1023,2156497684,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,1023,20801013835,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,1023,175684048442,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,1023,1326960347925,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,1023,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.910000000000,,494,0,,,AtLeast +Quantum128BitADPS16,q64,64,13,1023,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.545000000000,,553,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,1023,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,1023,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.345000000000,,673,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.510000000000,,734,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,1023,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,211.205000000000,,797,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,1023,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.900000000000,,860,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,1023,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.860000000000,,924,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.085000000000,,989,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,1023,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.505000000000,120.575000000000,617,0,455,0,Exact +Quantum128BitADPS16,q64,128,2,1023,14094,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,1023,6841566,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,1023,1078248842,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,1023,87842024221,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,1023,4553793444862,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,1023,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,155.555000000000,,587,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.560000000000,,704,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,1023,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,218.625000000000,,825,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,251.750000000000,,950,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,1023,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.140000000000,,1076,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,319.590000000000,,1206,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,1023,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,354.570000000000,,1338,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,389.815000000000,,1471,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,1023,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,425.855000000000,,1607,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.425000000000,,1745,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,1023,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,499.260000000000,,1884,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,536.625000000000,,2025,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,1023,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,574.255000000000,,2167,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,612.415000000000,,2311,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,1023,7047,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,1023,539124421,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,1023,2276896722431,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.140000000000,,676,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,307.135000000000,,1159,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.975000000000,,1415,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,444.935000000000,,1679,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,516.485000000000,,1949,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,589.890000000000,,2226,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,1023,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.355000000000,,2507,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,1023,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,740.410000000000,,2794,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,1023,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,817.260000000000,,3084,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,1023,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,895.435000000000,,3379,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,1023,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,974.670000000000,,3678,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,1023,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1054.700000000000,,3980,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,1023,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1135.525000000000,,4285,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,1023,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1217.410000000000,,4594,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,1023,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1299.825000000000,,4905,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,1023,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:325455.085833526682,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q64,64,1,2047,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.574447307450,50.880000000000,320,0,192,0,Exact +Quantum128BitADPS16,q64,64,2,2047,11,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.340000000000,117.130000000000,556,0,442,0,Exact +Quantum128BitADPS16,q64,64,3,2047,90,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,4,2047,5798,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,2047,164325,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,2047,3075102,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,2047,43483374,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,2047,498819753,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,2047,4852018945,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,2047,41242425485,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,2047,313083645419,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,2047,2157683633817,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,2047,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.090000000000,,506,0,,,AtLeast +Quantum128BitADPS16,q64,64,14,2047,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,2047,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.505000000000,,617,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.610000000000,,674,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,2047,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.980000000000,,732,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,2047,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,2047,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.150000000000,,910,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,2047,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,377.807550385149,117.130000000000,640,0,442,0,Exact +Quantum128BitADPS16,q64,128,2,2047,2899,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,2047,1537551,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,2047,249409876,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,2047,20621212742,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,2047,1078841816908,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,2047,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.570000000000,,538,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.455000000000,,647,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,2047,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.135000000000,,759,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.610000000000,,874,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,2047,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.880000000000,,992,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.680000000000,,1112,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,2047,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,327.010000000000,,1234,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,359.870000000000,,1358,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,2047,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,393.260000000000,,1484,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.180000000000,,1612,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,2047,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,461.365000000000,,1741,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,496.080000000000,,1872,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,2047,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,531.060000000000,,2004,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,566.570000000000,,2138,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,2047,1449,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,2047,124704938,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,2047,539420908454,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.830000000000,,622,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,222.865000000000,,841,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,283.550000000000,,1070,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.620000000000,,1308,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.545000000000,,1553,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,478.060000000000,,1804,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,546.165000000000,,2061,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,2047,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,615.595000000000,,2323,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,2047,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,686.085000000000,,2589,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,2047,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,757.900000000000,,2860,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,2047,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,830.510000000000,,3134,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,2047,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,904.180000000000,,3412,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,2047,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,978.645000000000,,3693,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,2047,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1053.905000000000,,3977,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,2047,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1129.960000000000,,4264,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,2047,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1206.810000000000,,4554,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,2047,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1284.190000000000,,4846,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,4095,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.288436147276,67.840000000000,256,0,256,0,Exact +Quantum128BitADPS16,q64,64,2,4095,10,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,104.940000000000,534,0,396,0,Exact +Quantum128BitADPS16,q64,64,3,4095,20,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,124.815000000000,486,0,471,0,Exact +Quantum128BitADPS16,q64,64,4,4095,1132,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,4095,35107,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,4095,682455,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,4095,9859226,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,4095,114683020,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,4095,1126528723,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,4095,9646164350,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,4095,73647657283,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,4095,509901833600,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,4095,3243403127356,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,4095,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q64,64,15,4095,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.255000000000,,567,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.300000000000,,620,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,4095,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.610000000000,,674,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,4095,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,192.920000000000,,728,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,4095,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.495000000000,,783,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,222.070000000000,,838,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,4095,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,87.715000000000,534,0,331,0,Exact +Quantum128BitADPS16,q64,128,2,4095,566,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,4095,341227,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,4095,57341510,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,4095,4823082175,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,4095,254950916800,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,4095,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.175000000000,,495,0,,,AtLeast +Quantum128BitADPS16,q64,128,8,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.940000000000,,596,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,4095,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.500000000000,,700,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.855000000000,,807,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,4095,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.740000000000,,916,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.155000000000,,1027,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,4095,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,302.365000000000,,1141,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,332.840000000000,,1256,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,4095,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.110000000000,,1374,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.380000000000,,1492,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,4095,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.445000000000,,1613,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,459.510000000000,,1734,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,4095,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,492.370000000000,,1858,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,525.230000000000,,1982,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,4095,283,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,4095,28670755,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,4095,127475458400,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.845000000000,,573,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.905000000000,,777,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.350000000000,,990,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.915000000000,,1211,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,381.335000000000,,1439,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,443.345000000000,,1673,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,506.680000000000,,1912,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,4095,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,571.340000000000,,2156,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,4095,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,637.060000000000,,2404,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,4095,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,703.840000000000,,2656,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,4095,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,771.680000000000,,2912,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,4095,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,840.315000000000,,3171,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,4095,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,909.745000000000,,3433,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,4095,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.970000000000,,3698,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,4095,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1050.990000000000,,3966,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,4095,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1122.805000000000,,4237,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,4095,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1194.885000000000,,4509,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,8191,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.098467564023,42.665000000000,256,0,161,0,Exact +Quantum128BitADPS16,q64,64,2,8191,9,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.050000000000,98.845000000000,570,0,373,0,Exact +Quantum128BitADPS16,q64,64,3,8191,16,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,122.960000000000,512,0,464,0,Exact +Quantum128BitADPS16,q64,64,4,8191,200,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,8191,7268,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,8191,148954,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,8191,2211676,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,8191,26167095,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,8191,260052602,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,8191,2245870358,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,8191,17259921251,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,8191,120124466821,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,8191,767351480181,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,8191,4546980936192,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,8191,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.330000000000,,522,0,,,AtLeast +Quantum128BitADPS16,q64,64,16,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.315000000000,,571,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,8191,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.565000000000,,621,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,8191,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.815000000000,,671,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,8191,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.595000000000,,723,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.110000000000,,774,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,8191,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.943349562000,98.845000000000,512,0,373,0,Exact +Quantum128BitADPS16,q64,128,2,8191,100,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,8191,74477,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,8191,13083547,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,8191,1122935179,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,8191,60062233410,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,8191,2273490468096,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,145.750000000000,,550,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,8191,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.190000000000,,646,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.690000000000,,746,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,8191,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.455000000000,,847,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,252.015000000000,,951,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,8191,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,280.105000000000,,1057,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,308.460000000000,,1164,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,8191,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.610000000000,,1274,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,366.760000000000,,1384,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,8191,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,396.440000000000,,1496,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.650000000000,,1610,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,8191,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,457.125000000000,,1725,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.865000000000,,1841,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,8191,50,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,8191,6541773,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,8191,30031116705,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.185000000000,,529,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.270000000000,,718,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.005000000000,,917,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.595000000000,,1123,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,354.040000000000,,1336,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.810000000000,,1554,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,470.905000000000,,1777,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,8191,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,531.325000000000,,2005,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,8191,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,592.805000000000,,2237,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,8191,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,655.080000000000,,2472,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,8191,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,718.415000000000,,2711,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,8191,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,782.545000000000,,2953,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,8191,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,847.470000000000,,3198,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,8191,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,913.190000000000,,3446,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,8191,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.440000000000,,3696,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,8191,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1046.485000000000,,3949,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,8191,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1114.060000000000,,4204,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,16383,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.803488688127,27.825000000000,256,0,105,0,Exact +Quantum128BitADPS16,q64,64,2,16383,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095393191264,101.495000000000,512,0,383,0,Exact +Quantum128BitADPS16,q64,64,3,16383,14,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.775000000000,119.515000000000,535,0,451,0,Exact +Quantum128BitADPS16,q64,64,4,16383,27,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,127.995000000000,486,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,16383,1433,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,16383,31782,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,16383,489396,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,16383,5914665,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,16383,59614105,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,16383,520050025,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,16383,4027147432,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,16383,28195272262,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,16383,180978445025,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,16383,1076667159828,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,16383,5988853766979,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.655000000000,,527,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,16383,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.110000000000,,574,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,16383,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.565000000000,,621,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,16383,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.020000000000,,668,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,189.740000000000,,716,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,16383,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095393191264,72.345000000000,512,0,273,0,Exact +Quantum128BitADPS16,q64,128,2,16383,13,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.995000000000,491,0,483,0,Exact +Quantum128BitADPS16,q64,128,3,16383,15891,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,16383,2957332,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,16383,260025012,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,16383,14097636131,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,16383,538333579914,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.620000000000,,508,0,,,AtLeast +Quantum128BitADPS16,q64,128,9,16383,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.470000000000,,598,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.850000000000,,690,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,16383,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,208.025000000000,,785,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.730000000000,,882,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,16383,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,259.965000000000,,981,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.465000000000,,1081,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,16383,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,313.495000000000,,1183,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,340.790000000000,,1286,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,16383,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.615000000000,,1391,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,396.705000000000,,1497,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,16383,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,425.060000000000,,1604,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.945000000000,,1713,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,16383,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,127.995000000000,510,0,483,0,Exact +Quantum128BitADPS16,q64,256,2,16383,1478666,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,16383,7048818065,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.585000000000,,489,0,,,AtLeast +Quantum128BitADPS16,q64,256,5,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.490000000000,,666,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.515000000000,,851,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.660000000000,,1044,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.130000000000,,1242,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,383.190000000000,,1446,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.575000000000,,1655,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,16383,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,495.020000000000,,1868,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,16383,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,552.525000000000,,2085,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,16383,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,610.825000000000,,2305,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,16383,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,670.185000000000,,2529,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,16383,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,730.075000000000,,2755,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,16383,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,790.760000000000,,2984,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,16383,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,852.240000000000,,3216,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,16383,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,914.515000000000,,3451,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,16383,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,977.055000000000,,3687,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,16383,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.390000000000,,3926,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,32767,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,943.302766146935,59.360000000000,192,0,224,0,Exact +Quantum128BitADPS16,q64,64,2,32767,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,841.166841113966,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q64,64,3,32767,13,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,107.590000000000,500,0,406,0,Exact +Quantum128BitADPS16,q64,64,4,32767,20,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,126.140000000000,507,0,476,0,Exact +Quantum128BitADPS16,q64,64,5,32767,259,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,32767,6565,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,32767,106368,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,32767,1321303,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,32767,13550589,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,32767,119642672,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,32767,934763722,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,32767,6589641647,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,32767,42529474129,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,32767,254150464784,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,32767,1418971239841,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,32767,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q64,64,17,32767,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.715000000000,,531,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,32767,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.375000000000,,575,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,32767,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.035000000000,,619,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.960000000000,,664,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,32767,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1880.286682965420,121.900000000000,384,0,460,0,Exact +Quantum128BitADPS16,q64,128,2,32767,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,120.575000000000,507,0,455,0,Exact +Quantum128BitADPS16,q64,128,3,32767,3282,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,32767,660651,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,32767,59821336,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,32767,3294820823,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,32767,127075232392,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,32767,3728158373596,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,32767,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.810000000000,,554,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.600000000000,,640,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,32767,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.185000000000,,729,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,217.035000000000,,819,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,32767,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.325000000000,,1005,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,32767,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,291.765000000000,,1101,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,317.205000000000,,1197,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,32767,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,343.175000000000,,1295,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.410000000000,,1394,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,32767,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,396.175000000000,,1495,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,422.940000000000,,1596,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,32767,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,113.950000000000,507,0,430,0,Exact +Quantum128BitADPS16,q64,256,2,32767,330325,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,32767,1647410411,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,32767,1864079186798,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.770000000000,,618,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.615000000000,,791,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.315000000000,,971,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.605000000000,,1157,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,357.220000000000,,1348,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,409.160000000000,,1544,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,32767,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,461.895000000000,,1743,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,32767,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.690000000000,,1946,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,32767,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,570.545000000000,,2153,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,32767,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.930000000000,,2362,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,32767,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,682.375000000000,,2575,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,32767,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,739.350000000000,,2790,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,32767,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,796.855000000000,,3007,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,32767,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.155000000000,,3227,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,32767,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,913.985000000000,,3449,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,32767,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,973.345000000000,,3673,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,65535,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,751.562274888984,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q64,64,2,65535,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,434.126853056119,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q64,64,3,65535,12,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,99.640000000000,491,0,376,0,Exact +Quantum128BitADPS16,q64,64,4,65535,18,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,117.660000000000,489,0,444,0,Exact +Quantum128BitADPS16,q64,64,5,65535,38,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,6,65535,1289,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,65535,22560,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,65535,290770,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,65535,3048200,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,65535,27311705,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,65535,215652456,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,65535,1532463092,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,65535,9952916780,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,65535,59780727921,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,65535,335176344165,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,65535,1767519282704,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,65535,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.380000000000,,492,0,,,AtLeast +Quantum128BitADPS16,q64,64,18,65535,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,65535,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.110000000000,,574,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.240000000000,,616,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,65535,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1496.813596058600,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q64,128,2,65535,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,109.975000000000,489,0,415,0,Exact +Quantum128BitADPS16,q64,128,3,65535,644,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,65535,145385,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,65535,13655852,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,65535,766231546,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,65535,29890363960,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,65535,883759641352,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,65535,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.210000000000,,514,0,,,AtLeast +Quantum128BitADPS16,q64,128,10,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,65535,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.670000000000,,678,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.930000000000,,762,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,65535,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.985000000000,,849,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.305000000000,,937,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,65535,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.890000000000,,1026,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.740000000000,,1116,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,65535,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.120000000000,,1208,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,344.765000000000,,1301,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,65535,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.675000000000,,1395,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.850000000000,,1490,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,65535,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,109.975000000000,677,0,415,0,Exact +Quantum128BitADPS16,q64,256,2,65535,72692,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,65535,383115773,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,65535,441879820676,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.110000000000,,574,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,239.825000000000,,905,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.200000000000,,1080,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.635000000000,,1259,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,65535,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,431.685000000000,,1629,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,65535,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.300000000000,,1820,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,65535,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,533.710000000000,,2014,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,65535,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,585.650000000000,,2210,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,65535,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.650000000000,,2410,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,65535,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,692.180000000000,,2612,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,65535,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,746.240000000000,,2816,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,65535,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,800.830000000000,,3022,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,65535,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,856.215000000000,,3231,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,65535,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,911.865000000000,,3441,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,131071,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,560.613105312373,20.935000000000,192,0,79,0,Exact +Quantum128BitADPS16,q64,64,2,131071,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.473216749179,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q64,64,3,131071,11,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.800000000000,96.195000000000,520,0,363,0,Exact +Quantum128BitADPS16,q64,64,4,131071,16,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,116.335000000000,512,0,439,0,Exact +Quantum128BitADPS16,q64,64,5,131071,23,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.090000000000,127.465000000000,506,0,481,0,Exact +Quantum128BitADPS16,q64,64,6,131071,231,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,131071,4618,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,131071,62729,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,131071,676775,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,131071,6175972,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,131071,49392108,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,131071,354323147,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,131071,2318106192,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,131071,14004808455,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,131071,78897412324,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,131071,417721125436,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,131071,2091855127594,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,131071,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.175000000000,,495,0,,,AtLeast +Quantum128BitADPS16,q64,64,19,131071,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.845000000000,,573,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,131071,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1114.946718479833,57.770000000000,384,0,218,0,Exact +Quantum128BitADPS16,q64,128,2,131071,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.410000000000,512,0,394,0,Exact +Quantum128BitADPS16,q64,128,3,131071,115,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,131071,31364,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,131071,3087986,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,131071,177161573,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,131071,7002404227,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,131071,208860562718,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,131071,4980728233918,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.545000000000,,553,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,131071,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.215000000000,,631,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,131071,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.615000000000,,791,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.610000000000,,874,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,131071,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.605000000000,,957,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,131071,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,298.920000000000,,1128,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.240000000000,,1216,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,131071,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.145000000000,,1393,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,131071,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,91.690000000000,512,0,346,0,Exact +Quantum128BitADPS16,q64,256,2,131071,15682,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,131071,88580786,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,131071,104430281359,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.510000000000,,534,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.055000000000,,687,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.925000000000,,845,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,267.385000000000,,1009,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,311.905000000000,,1177,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,357.485000000000,,1349,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,131071,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,404.125000000000,,1525,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,131071,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,451.560000000000,,1704,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,131071,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,500.055000000000,,1887,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,131071,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.815000000000,,2071,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,131071,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,598.635000000000,,2259,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,131071,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,648.985000000000,,2449,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,131071,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,699.865000000000,,2641,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,131071,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,751.275000000000,,2835,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,131071,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,803.215000000000,,3031,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,131071,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.685000000000,,3229,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,262143,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,372.791826034720,10.865000000000,192,0,41,0,Exact +Quantum128BitADPS16,q64,64,2,262143,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,739.428079218297,78.175000000000,384,0,295,0,Exact +Quantum128BitADPS16,q64,64,3,262143,10,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.420000000000,99.110000000000,628,0,374,0,Exact +Quantum128BitADPS16,q64,64,4,262143,14,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,127.995000000000,639,0,483,0,Exact +Quantum128BitADPS16,q64,64,5,262143,20,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,127.200000000000,529,0,480,0,Exact +Quantum128BitADPS16,q64,64,6,262143,33,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.995000000000,485,0,483,0,Exact +Quantum128BitADPS16,q64,64,7,262143,893,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,262143,13164,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,262143,147737,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,262143,1380285,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,262143,11214125,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,262143,81364769,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,262143,536911890,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,262143,3265730731,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,262143,18498546337,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,262143,98383524934,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,262143,494560561252,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,262143,2362764747955,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,262143,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.440000000000,,496,0,,,AtLeast +Quantum128BitADPS16,q64,64,20,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,262143,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,739.428079218297,42.400000000000,384,0,160,0,Exact +Quantum128BitADPS16,q64,128,2,262143,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,106.530000000000,639,0,402,0,Exact +Quantum128BitADPS16,q64,128,3,262143,16,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.995000000000,489,0,483,0,Exact +Quantum128BitADPS16,q64,128,4,262143,6582,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,262143,690142,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,262143,40682384,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,262143,1632865365,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,262143,49191762467,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,262143,1181382373977,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q64,128,11,262143,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,155.820000000000,,588,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.695000000000,,663,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,262143,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.835000000000,,739,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.240000000000,,816,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,262143,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.175000000000,,895,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.375000000000,,975,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,262143,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,279.575000000000,,1055,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.305000000000,,1137,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,262143,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,323.300000000000,,1220,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,262143,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1472.222862931910,106.530000000000,768,0,402,0,Exact +Quantum128BitADPS16,q64,256,2,262143,3291,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,262143,20341192,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,262143,24595881233,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.970000000000,,498,0,,,AtLeast +Quantum128BitADPS16,q64,256,6,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.160000000000,,944,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.030000000000,,1102,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.960000000000,,1264,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,262143,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.950000000000,,1430,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,262143,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.470000000000,,1598,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,262143,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,469.050000000000,,1770,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,262143,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.160000000000,,1944,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,262143,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,561.800000000000,,2120,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,262143,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,609.235000000000,,2299,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,262143,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,657.200000000000,,2480,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,262143,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,705.695000000000,,2663,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,262143,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,754.720000000000,,2848,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,262143,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,804.275000000000,,3035,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,524287,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,197.006229065078,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,524287,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,388.322466004426,53.530000000000,384,0,202,0,Exact +Quantum128BitADPS16,q64,64,3,524287,9,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,579.466314038880,113.420000000000,576,0,428,0,Exact +Quantum128BitADPS16,q64,64,4,524287,13,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,125.345000000000,677,0,473,0,Exact +Quantum128BitADPS16,q64,64,5,524287,18,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.605000000000,127.200000000000,557,0,480,0,Exact +Quantum128BitADPS16,q64,64,6,524287,26,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,123.755000000000,485,0,467,0,Exact +Quantum128BitADPS16,q64,64,7,524287,155,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,8,524287,2651,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,524287,31522,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,524287,303909,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,524287,2518902,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,524287,18531648,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,524287,123548554,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,524287,757449250,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,524287,4317685660,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,524287,23082108271,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,524287,116530778571,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,524287,558761681338,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,524287,2556857440277,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,524287,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.705000000000,,497,0,,,AtLeast +Quantum128BitADPS16,q64,128,1,524287,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,388.322466004426,31.800000000000,384,0,120,0,Exact +Quantum128BitADPS16,q64,128,2,524287,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.539313881360,125.345000000000,768,0,473,0,Exact +Quantum128BitADPS16,q64,128,3,524287,13,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,120.310000000000,485,0,454,0,Exact +Quantum128BitADPS16,q64,128,4,524287,1325,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,524287,151954,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,524287,9265824,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,524287,378724625,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,524287,11541054135,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,524287,279380840669,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,524287,5605441886634,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,524287,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,145.485000000000,,549,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.035000000000,,619,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,524287,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.115000000000,,691,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,524287,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,221.805000000000,,837,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,524287,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.085000000000,,989,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.490000000000,,1066,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,524287,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,303.160000000000,,1144,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.095000000000,,1223,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,524287,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.539313881360,85.860000000000,768,0,324,0,Exact +Quantum128BitADPS16,q64,256,2,524287,662,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,524287,4632912,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,524287,5770527067,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,524287,2802720943317,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.735000000000,,599,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.835000000000,,739,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,234.260000000000,,884,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.745000000000,,1033,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.290000000000,,1186,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,524287,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.630000000000,,1342,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,524287,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,397.765000000000,,1501,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,524287,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.430000000000,,1662,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,524287,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,484.155000000000,,1827,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,524287,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,528.145000000000,,1993,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,524287,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,572.930000000000,,2162,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,524287,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,618.245000000000,,2333,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,524287,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,663.825000000000,,2505,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,524287,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,710.200000000000,,2680,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,524287,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,756.840000000000,,2856,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,1048575,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1356.119118413983,62.348624042918,128,0,192,0,Exact +Quantum128BitADPS16,q64,64,2,1048575,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1333.575060294309,120.441217818960,320,0,384,0,Exact +Quantum128BitADPS16,q64,64,3,1048575,9,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,178.437774385344,81.620000000000,576,0,308,0,Exact +Quantum128BitADPS16,q64,64,4,1048575,13,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,96.460000000000,488,0,364,0,Exact +Quantum128BitADPS16,q64,64,5,1048575,17,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.390000000000,117.395000000000,526,0,443,0,Exact +Quantum128BitADPS16,q64,64,6,1048575,23,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,120.310000000000,486,0,454,0,Exact +Quantum128BitADPS16,q64,64,7,1048575,32,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.465000000000,489,0,481,0,Exact +Quantum128BitADPS16,q64,64,8,1048575,498,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,1048575,6510,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,1048575,65608,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,1048575,558198,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,1048575,4178805,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,1048575,28209447,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,1048575,174581777,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,1048575,1002534960,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,1048575,5391467021,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,1048575,27352873508,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,1048575,131698080202,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,1048575,604767988583,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,1048575,2659786302828,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,1048575,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2706.209235217572,120.441217818960,256,0,384,0,Exact +Quantum128BitADPS16,q64,128,2,1048575,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,236.394694087883,96.460000000000,768,0,364,0,Exact +Quantum128BitADPS16,q64,128,3,1048575,11,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.715000000000,120.310000000000,531,0,454,0,Exact +Quantum128BitADPS16,q64,128,4,1048575,249,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,1048575,32804,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,1048575,2089402,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,1048575,87290888,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,1048575,2695733510,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,1048575,65849040101,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,1048575,1329893151414,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,1048575,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,135.945000000000,,513,0,,,AtLeast +Quantum128BitADPS16,q64,128,12,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,153.435000000000,,579,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,1048575,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.190000000000,,646,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,189.475000000000,,715,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,1048575,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,208.025000000000,,785,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.575000000000,,855,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,1048575,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,245.655000000000,,927,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,265.000000000000,,1000,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,1048575,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,284.345000000000,,1073,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,304.220000000000,,1148,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,1048575,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,236.394694087883,70.490000000000,768,0,266,0,Exact +Quantum128BitADPS16,q64,256,2,1048575,124,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,1048575,1044701,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,1048575,1347866755,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,1048575,664946575707,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.645000000000,,693,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.685000000000,,829,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.050000000000,,970,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.210000000000,,1114,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,1048575,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.165000000000,,1261,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,1048575,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.915000000000,,1411,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,1048575,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,414.460000000000,,1564,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,1048575,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,455.535000000000,,1719,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,1048575,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,497.140000000000,,1876,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,1048575,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,539.275000000000,,2035,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,1048575,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,581.940000000000,,2196,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,1048575,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.135000000000,,2359,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,1048575,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,668.860000000000,,2524,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,1048575,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,713.115000000000,,2691,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,2097151,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1228.119097629091,28.885000000000,128,0,109,0,Exact +Quantum128BitADPS16,q64,64,2,2097151,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1014.802675650317,67.045000000000,320,0,253,0,Exact +Quantum128BitADPS16,q64,64,3,2097151,8,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.859280067297,105.735000000000,512,0,399,0,Exact +Quantum128BitADPS16,q64,64,4,2097151,12,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,97.520000000000,548,0,368,0,Exact +Quantum128BitADPS16,q64,64,5,2097151,16,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,110.505000000000,512,0,417,0,Exact +Quantum128BitADPS16,q64,64,6,2097151,21,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,116.600000000000,485,0,440,0,Exact +Quantum128BitADPS16,q64,64,7,2097151,27,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,125.345000000000,494,0,473,0,Exact +Quantum128BitADPS16,q64,64,8,2097151,81,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,9,2097151,1278,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,2097151,13782,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,2097151,121546,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,2097151,930631,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,2097151,6380532,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,2097151,39939876,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,2097151,231368053,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,2097151,1252920730,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,2097151,6392542592,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,2097151,30923658615,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,2097151,142569423671,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,2097151,629168057406,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,2097151,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2450.209196464170,67.045000000000,256,0,253,0,Exact +Quantum128BitADPS16,q64,128,2,2097151,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,76.320000000000,548,0,288,0,Exact +Quantum128BitADPS16,q64,128,3,2097151,10,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.280000000000,116.600000000000,552,0,440,0,Exact +Quantum128BitADPS16,q64,128,4,2097151,40,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,5,2097151,6891,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,2097151,465315,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,2097151,19969938,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,2097151,626460365,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,2097151,15461829307,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,2097151,314584028703,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,2097151,5450210649572,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.630000000000,,542,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,2097151,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,160.590000000000,,606,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.550000000000,,670,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,2097151,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.040000000000,,736,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.795000000000,,803,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,2097151,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,230.815000000000,,871,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.835000000000,,939,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,2097151,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,267.385000000000,,1009,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.935000000000,,1079,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,2097151,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,58.830000000000,548,0,222,0,Exact +Quantum128BitADPS16,q64,256,2,2097151,20,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,3,2097151,232657,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,2097151,313230182,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,2097151,157292014351,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.125000000000,,525,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,172.250000000000,,650,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,206.435000000000,,779,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,277.720000000000,,1048,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,2097151,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.555000000000,,1187,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,2097151,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,351.920000000000,,1328,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,2097151,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,390.345000000000,,1473,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,2097151,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,429.035000000000,,1619,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,2097151,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,468.520000000000,,1768,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,2097151,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,508.270000000000,,1918,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,2097151,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.815000000000,,2071,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,2097151,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,589.625000000000,,2225,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,2097151,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,630.965000000000,,2381,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,2097151,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,672.570000000000,,2538,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,4194303,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1108.816456186243,14.840000000000,117,0,56,0,Exact +Quantum128BitADPS16,q64,64,2,4194303,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,699.687785299176,44.520000000000,320,0,168,0,Exact +Quantum128BitADPS16,q64,64,3,4194303,8,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.061102338527,74.730000000000,512,0,282,0,Exact +Quantum128BitADPS16,q64,64,4,4194303,11,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,196.687994320976,106.000000000000,704,0,400,0,Exact +Quantum128BitADPS16,q64,64,5,4194303,15,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.535000000000,106.530000000000,519,0,402,0,Exact +Quantum128BitADPS16,q64,64,6,4194303,19,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.800000000000,118.720000000000,520,0,448,0,Exact +Quantum128BitADPS16,q64,64,7,4194303,24,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,125.080000000000,510,0,472,0,Exact +Quantum128BitADPS16,q64,64,8,4194303,32,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.670000000000,489,0,478,0,Exact +Quantum128BitADPS16,q64,64,9,4194303,229,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,10,4194303,2780,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,4194303,25843,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,4194303,203963,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,4194303,1426422,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,4194303,9055397,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,4194303,53012422,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,4194303,289440405,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,4194303,1486506569,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,4194303,7229893703,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,4194303,33483720963,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,4194303,148336022082,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,4194303,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2194.209657836618,44.520000000000,256,0,168,0,Exact +Quantum128BitADPS16,q64,128,2,4194303,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1392.812277941154,106.000000000000,640,0,400,0,Exact +Quantum128BitADPS16,q64,128,3,4194303,9,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.865000000000,118.720000000000,641,0,448,0,Exact +Quantum128BitADPS16,q64,128,4,4194303,16,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.285000000000,489,0,469,0,Exact +Quantum128BitADPS16,q64,128,5,4194303,1390,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,4194303,101981,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,4194303,4527698,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,4194303,144720202,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,4194303,3614946851,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,4194303,74168011041,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,4194303,1293002257374,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.620000000000,,508,0,,,AtLeast +Quantum128BitADPS16,q64,128,13,4194303,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.520000000000,,568,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.685000000000,,629,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,4194303,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.115000000000,,691,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.810000000000,,754,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,4194303,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.770000000000,,818,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.995000000000,,883,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,4194303,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,251.485000000000,,949,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,4194303,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,4381.890330397041,106.000000000000,512,0,400,0,Exact +Quantum128BitADPS16,q64,256,2,4194303,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,121.370000000000,489,0,458,0,Exact +Quantum128BitADPS16,q64,256,3,4194303,50990,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,4194303,72360101,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,4194303,37084005520,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.645000000000,,493,0,,,AtLeast +Quantum128BitADPS16,q64,256,7,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.650000000000,,610,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.980000000000,,732,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.370000000000,,858,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,261.290000000000,,986,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,4194303,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.270000000000,,1118,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,4194303,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,331.780000000000,,1252,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,4194303,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,367.820000000000,,1388,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,4194303,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,404.655000000000,,1527,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,4194303,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.020000000000,,1668,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,4194303,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,479.650000000000,,1810,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,4194303,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,518.075000000000,,1955,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,4194303,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.765000000000,,2101,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,4194303,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,595.720000000000,,2248,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,4194303,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,635.205000000000,,2397,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,8388607,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,972.120376989978,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,8388607,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,398.815198273995,30.740000000000,320,0,116,0,Exact +Quantum128BitADPS16,q64,64,3,8388607,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1341.919980614134,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q64,64,4,8388607,11,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,80.295000000000,488,0,303,0,Exact +Quantum128BitADPS16,q64,64,5,8388607,14,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.870000000000,106.265000000000,558,0,401,0,Exact +Quantum128BitADPS16,q64,64,6,8388607,18,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,111.565000000000,501,0,421,0,Exact +Quantum128BitADPS16,q64,64,7,8388607,22,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.065000000000,123.755000000000,521,0,467,0,Exact +Quantum128BitADPS16,q64,64,8,8388607,28,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,124.815000000000,494,0,471,0,Exact +Quantum128BitADPS16,q64,64,9,8388607,39,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.465000000000,484,0,481,0,Exact +Quantum128BitADPS16,q64,64,10,8388607,524,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,8388607,5310,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,8388607,43757,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,8388607,314185,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,8388607,2030468,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,8388607,12041715,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,8388607,66396810,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,8388607,343657812,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,8388607,1681984520,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,8388607,7830403715,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,8388607,34841860442,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,8388607,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1938.211811513251,30.740000000000,256,0,116,0,Exact +Quantum128BitADPS16,q64,128,2,8388607,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,791.429927994150,80.295000000000,640,0,303,0,Exact +Quantum128BitADPS16,q64,128,3,8388607,9,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,98.580000000000,501,0,372,0,Exact +Quantum128BitADPS16,q64,128,4,8388607,14,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,120.045000000000,494,0,453,0,Exact +Quantum128BitADPS16,q64,128,5,8388607,262,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,8388607,21878,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,8388607,1015234,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,8388607,33198405,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,8388607,840992260,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,8388607,17420930221,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,8388607,305838938700,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,8388607,4668626844064,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,8388607,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,8388607,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,172.250000000000,,650,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,8388607,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,204.050000000000,,770,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,220.215000000000,,831,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,8388607,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.910000000000,,894,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.340000000000,,956,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,8388607,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3869.894689533641,80.295000000000,512,0,303,0,Exact +Quantum128BitADPS16,q64,256,2,8388607,7,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,113.950000000000,494,0,430,0,Exact +Quantum128BitADPS16,q64,256,3,8388607,10939,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,8388607,16599202,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,8388607,8710465110,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,8388607,2334313422032,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.110000000000,,574,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.120000000000,,808,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,246.450000000000,,930,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,8388607,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,279.310000000000,,1054,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,8388607,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,8388607,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,347.150000000000,,1310,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,8388607,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,8388607,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.375000000000,,1575,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,8388607,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.150000000000,,1710,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,8388607,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,489.455000000000,,1847,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,8388607,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.025000000000,,1985,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,8388607,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,563.125000000000,,2125,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,8388607,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,600.755000000000,,2267,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,16777215,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,844.124671218051,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,16777215,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.017989332990,21.465000000000,320,0,81,0,Exact +Quantum128BitADPS16,q64,64,3,16777215,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,902.624097029309,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q64,64,4,16777215,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047651352747,93.810000000000,640,0,354,0,Exact +Quantum128BitADPS16,q64,64,5,16777215,13,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.635000000000,111.565000000000,659,0,421,0,Exact +Quantum128BitADPS16,q64,64,6,16777215,17,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.705000000000,106.795000000000,497,0,403,0,Exact +Quantum128BitADPS16,q64,64,7,16777215,21,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,114.745000000000,489,0,433,0,Exact +Quantum128BitADPS16,q64,64,8,16777215,25,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.535000000000,126.935000000000,519,0,479,0,Exact +Quantum128BitADPS16,q64,64,9,16777215,32,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,125.610000000000,489,0,474,0,Exact +Quantum128BitADPS16,q64,64,10,16777215,86,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,11,16777215,1033,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,16777215,9109,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,16777215,67860,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,16777215,448956,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,16777215,2706346,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,16777215,15103593,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,16777215,78903982,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,16777215,389055569,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,16777215,1822218883,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,16777215,8149034923,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,16777215,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1682.220580212346,21.465000000000,256,0,81,0,Exact +Quantum128BitADPS16,q64,128,2,16777215,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047651352747,62.805000000000,640,0,237,0,Exact +Quantum128BitADPS16,q64,128,3,16777215,8,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,106.795000000000,677,0,403,0,Exact +Quantum128BitADPS16,q64,128,4,16777215,12,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,126.935000000000,577,0,479,0,Exact +Quantum128BitADPS16,q64,128,5,16777215,43,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,6,16777215,4554,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,16777215,224478,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,16777215,7551796,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,16777215,194527784,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,16777215,4074517461,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,16777215,72101379330,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,16777215,1107238843866,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,16777215,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.765000000000,,501,0,,,AtLeast +Quantum128BitADPS16,q64,128,14,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,147.340000000000,,556,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,16777215,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.020000000000,,668,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,16777215,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,192.125000000000,,725,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.760000000000,,784,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,16777215,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.130000000000,,842,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,239.030000000000,,902,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,16777215,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3357.912434060225,62.805000000000,512,0,237,0,Exact +Quantum128BitADPS16,q64,256,2,16777215,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,113.155000000000,577,0,427,0,Exact +Quantum128BitADPS16,q64,256,3,16777215,2277,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,16777215,3775898,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,16777215,2037258730,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,16777215,553619421933,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.100000000000,,540,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.985000000000,,649,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.930000000000,,762,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.405000000000,,877,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,16777215,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.675000000000,,995,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,16777215,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.740000000000,,1116,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,16777215,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.070000000000,,1238,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,16777215,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.195000000000,,1363,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,16777215,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.585000000000,,1489,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,16777215,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,428.505000000000,,1617,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,16777215,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.955000000000,,1747,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,16777215,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,497.935000000000,,1879,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,16777215,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,532.915000000000,,2011,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,16777215,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,568.690000000000,,2146,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,33554431,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,716.141885852180,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,33554431,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255730384480,61.480000000000,256,0,232,0,Exact +Quantum128BitADPS16,q64,64,3,33554431,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,488.503460303731,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q64,64,4,33554431,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,70.755000000000,495,0,267,0,Exact +Quantum128BitADPS16,q64,64,5,33554431,12,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,383.014159981152,126.405000000000,768,0,477,0,Exact +Quantum128BitADPS16,q64,64,6,33554431,16,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.940000000000,512,0,396,0,Exact +Quantum128BitADPS16,q64,64,7,33554431,19,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.990000000000,123.755000000000,566,0,467,0,Exact +Quantum128BitADPS16,q64,64,8,33554431,23,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.100000000000,127.465000000000,540,0,481,0,Exact +Quantum128BitADPS16,q64,64,9,33554431,29,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,122.430000000000,485,0,462,0,Exact +Quantum128BitADPS16,q64,64,10,33554431,36,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.935000000000,489,0,479,0,Exact +Quantum128BitADPS16,q64,64,11,33554431,182,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,33554431,1811,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,33554431,14265,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,33554431,97469,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,33554431,600174,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,33554431,3400521,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,33554431,17967875,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,33554431,89383516,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,33554431,421636093,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,33554431,1896641848,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,33554431,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255730384480,14.045000000000,256,0,53,0,Exact +Quantum128BitADPS16,q64,128,2,33554431,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,50.350000000000,495,0,190,0,Exact +Quantum128BitADPS16,q64,128,3,33554431,8,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,87.980000000000,512,0,332,0,Exact +Quantum128BitADPS16,q64,128,4,33554431,11,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.685000000000,127.465000000000,629,0,481,0,Exact +Quantum128BitADPS16,q64,128,5,33554431,18,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.815000000000,489,0,471,0,Exact +Quantum128BitADPS16,q64,128,6,33554431,905,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,33554431,48734,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,33554431,1700260,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,33554431,44691758,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,33554431,948320924,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,33554431,16934201085,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,33554431,261810056189,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,33554431,3578103614057,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.860000000000,,524,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,33554431,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.640000000000,,576,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,33554431,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,181.260000000000,,684,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.835000000000,,739,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,33554431,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,210.675000000000,,795,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.515000000000,,851,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,33554431,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2845.983562838760,50.350000000000,512,0,190,0,Exact +Quantum128BitADPS16,q64,256,2,33554431,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,273.745000000000,127.465000000000,1033,0,481,0,Exact +Quantum128BitADPS16,q64,256,3,33554431,452,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,33554431,850130,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,33554431,474160462,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,33554431,130905028094,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.885000000000,,509,0,,,AtLeast +Quantum128BitADPS16,q64,256,8,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.535000000000,,719,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,33554431,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,249.100000000000,,940,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,33554431,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,279.575000000000,,1055,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,33554431,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,310.315000000000,,1171,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,33554431,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.585000000000,,1289,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,33554431,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.385000000000,,1409,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,33554431,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.715000000000,,1531,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,33554431,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.575000000000,,1655,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,33554431,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.435000000000,,1779,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,33554431,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,504.825000000000,,1905,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,33554431,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,538.745000000000,,2033,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,67108863,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,588.210750805800,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,67108863,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396342820438,38.955000000000,256,0,147,0,Exact +Quantum128BitADPS16,q64,64,3,67108863,7,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,161.930428509152,42.400000000000,448,0,160,0,Exact +Quantum128BitADPS16,q64,64,4,67108863,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,634.215219780644,92.485000000000,576,0,349,0,Exact +Quantum128BitADPS16,q64,64,5,67108863,12,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,95.665000000000,616,0,361,0,Exact +Quantum128BitADPS16,q64,64,6,67108863,15,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,148.400000000000,106.530000000000,560,0,402,0,Exact +Quantum128BitADPS16,q64,64,7,67108863,18,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.580000000000,120.310000000000,572,0,454,0,Exact +Quantum128BitADPS16,q64,64,8,67108863,22,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,119.250000000000,512,0,450,0,Exact +Quantum128BitADPS16,q64,64,9,67108863,26,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,125.875000000000,516,0,475,0,Exact +Quantum128BitADPS16,q64,64,10,67108863,32,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.550000000000,489,0,470,0,Exact +Quantum128BitADPS16,q64,64,11,67108863,41,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.200000000000,485,0,480,0,Exact +Quantum128BitADPS16,q64,64,12,67108863,332,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,67108863,2880,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,67108863,20639,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,67108863,130812,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,67108863,755820,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,67108863,4050748,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,67108863,20369698,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,67108863,96907738,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,67108863,438930607,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,67108863,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396342820438,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,67108863,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2334.268100178464,92.485000000000,512,0,349,0,Exact +Quantum128BitADPS16,q64,128,3,67108863,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,319.097652841314,106.530000000000,896,0,402,0,Exact +Quantum128BitADPS16,q64,128,4,67108863,11,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,108.120000000000,512,0,408,0,Exact +Quantum128BitADPS16,q64,128,5,67108863,16,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,120.840000000000,489,0,456,0,Exact +Quantum128BitADPS16,q64,128,6,67108863,166,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,67108863,10319,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,67108863,377910,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,67108863,10184849,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,67108863,219465303,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,67108863,3960325344,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,67108863,61697963449,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,67108863,848147785402,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,67108863,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.645000000000,,493,0,,,AtLeast +Quantum128BitADPS16,q64,128,15,67108863,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.895000000000,,543,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.410000000000,,594,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,67108863,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.190000000000,,646,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.970000000000,,698,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,67108863,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.015000000000,,751,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.060000000000,,804,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,67108863,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2334.268100178464,40.810000000000,512,0,154,0,Exact +Quantum128BitADPS16,q64,256,2,67108863,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,205.375000000000,108.120000000000,775,0,408,0,Exact +Quantum128BitADPS16,q64,256,3,67108863,83,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,67108863,188955,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,67108863,109732651,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,67108863,30848981724,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,67108863,5229769279979,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,153.170000000000,,578,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.935000000000,,679,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.495000000000,,783,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,67108863,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,235.585000000000,,889,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,67108863,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,264.470000000000,,998,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,67108863,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,293.885000000000,,1109,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,67108863,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,323.565000000000,,1221,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,67108863,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.775000000000,,1335,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,67108863,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,384.515000000000,,1451,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,67108863,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,415.520000000000,,1568,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,67108863,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,447.055000000000,,1687,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,67108863,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,478.855000000000,,1807,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,67108863,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,510.920000000000,,1928,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,134217727,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,460.486014789674,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,134217727,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958383523348,25.440000000000,256,0,96,0,Exact +Quantum128BitADPS16,q64,64,3,134217727,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1369.224187760590,82.945000000000,384,0,313,0,Exact +Quantum128BitADPS16,q64,64,4,134217727,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,211.840565646773,68.370000000000,576,0,258,0,Exact +Quantum128BitADPS16,q64,64,5,134217727,11,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,567.304417347430,117.130000000000,704,0,442,0,Exact +Quantum128BitADPS16,q64,64,6,134217727,14,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,177.285000000000,113.420000000000,669,0,428,0,Exact +Quantum128BitADPS16,q64,64,7,134217727,17,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,159.795000000000,120.310000000000,603,0,454,0,Exact +Quantum128BitADPS16,q64,64,8,134217727,21,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,112.890000000000,494,0,426,0,Exact +Quantum128BitADPS16,q64,64,9,134217727,24,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,127.730000000000,542,0,482,0,Exact +Quantum128BitADPS16,q64,64,10,134217727,29,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,124.550000000000,500,0,470,0,Exact +Quantum128BitADPS16,q64,64,11,134217727,35,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,126.140000000000,491,0,476,0,Exact +Quantum128BitADPS16,q64,64,12,134217727,51,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,134217727,544,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,134217727,4214,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,134217727,27851,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,134217727,165225,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,134217727,901849,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,134217727,4596512,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,134217727,22095114,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,134217727,100902828,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,134217727,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958383523348,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,134217727,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405411157834,68.370000000000,512,0,258,0,Exact +Quantum128BitADPS16,q64,128,3,134217727,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,177.285000000000,85.860000000000,669,0,324,0,Exact +Quantum128BitADPS16,q64,128,4,134217727,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,112.890000000000,605,0,426,0,Exact +Quantum128BitADPS16,q64,128,5,134217727,14,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.100000000000,124.550000000000,540,0,470,0,Exact +Quantum128BitADPS16,q64,128,6,134217727,25,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,7,134217727,2107,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,134217727,82612,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,134217727,2298256,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,134217727,50451414,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,134217727,921648569,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,134217727,14484512095,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,134217727,200428548774,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,134217727,2484484238397,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,134217727,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,135.945000000000,,513,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,134217727,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.650000000000,,610,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,174.900000000000,,660,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,134217727,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.665000000000,,761,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,134217727,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405411157834,33.390000000000,512,0,126,0,Exact +Quantum128BitADPS16,q64,256,2,134217727,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,92.750000000000,605,0,350,0,Exact +Quantum128BitADPS16,q64,256,3,134217727,12,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.995000000000,485,0,483,0,Exact +Quantum128BitADPS16,q64,256,4,134217727,41306,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,134217727,25225707,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,134217727,7242256047,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,134217727,1242242119198,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.690000000000,,546,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.130000000000,,642,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,196.365000000000,,741,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,134217727,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.130000000000,,842,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,134217727,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.425000000000,,945,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,134217727,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,278.250000000000,,1050,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,134217727,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.605000000000,,1157,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,134217727,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,335.490000000000,,1266,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,134217727,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.640000000000,,1376,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,134217727,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.320000000000,,1488,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,134217727,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.265000000000,,1601,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,134217727,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,454.475000000000,,1715,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,134217727,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,484.950000000000,,1830,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,268435455,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,333.583793039250,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,268435455,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.199713518359,16.430000000000,256,0,62,0,Exact +Quantum128BitADPS16,q64,64,3,268435455,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,988.611911484352,56.445000000000,384,0,213,0,Exact +Quantum128BitADPS16,q64,64,4,268435455,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.940665428801,110.240000000000,512,0,416,0,Exact +Quantum128BitADPS16,q64,64,5,268435455,11,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,175.165000000000,87.715000000000,661,0,331,0,Exact +Quantum128BitADPS16,q64,64,6,268435455,14,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,89.570000000000,492,0,338,0,Exact +Quantum128BitADPS16,q64,64,7,268435455,16,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,124.550000000000,677,0,470,0,Exact +Quantum128BitADPS16,q64,64,8,268435455,20,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,108.385000000000,486,0,409,0,Exact +Quantum128BitADPS16,q64,64,9,268435455,23,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.270000000000,120.310000000000,518,0,454,0,Exact +Quantum128BitADPS16,q64,64,10,268435455,27,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,122.695000000000,503,0,463,0,Exact +Quantum128BitADPS16,q64,64,11,268435455,32,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,123.755000000000,489,0,467,0,Exact +Quantum128BitADPS16,q64,64,12,268435455,38,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.200000000000,491,0,480,0,Exact +Quantum128BitADPS16,q64,64,13,268435455,89,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,268435455,811,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,268435455,5733,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,268435455,35322,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,268435455,197580,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,268435455,1024564,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,268435455,4988833,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,268435455,23011535,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,268435455,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.199713518359,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,268435455,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.940665428801,52.205000000000,512,0,197,0,Exact +Quantum128BitADPS16,q64,128,3,268435455,7,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,70.490000000000,492,0,266,0,Exact +Quantum128BitADPS16,q64,128,4,268435455,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,95.400000000000,486,0,360,0,Exact +Quantum128BitADPS16,q64,128,5,268435455,13,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.870000000000,122.695000000000,558,0,463,0,Exact +Quantum128BitADPS16,q64,128,6,268435455,19,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,124.815000000000,491,0,471,0,Exact +Quantum128BitADPS16,q64,128,7,268435455,405,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,268435455,17661,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,268435455,512282,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,268435455,11505767,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,268435455,213267022,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,268435455,3385749575,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,268435455,47201303550,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,268435455,588473482321,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,268435455,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.260000000000,,484,0,,,AtLeast +Quantum128BitADPS16,q64,128,16,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,268435455,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.905000000000,,577,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.360000000000,,624,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,268435455,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.080000000000,,672,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.800000000000,,720,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,268435455,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.940665428801,27.560000000000,512,0,104,0,Exact +Quantum128BitADPS16,q64,256,2,268435455,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,80.560000000000,486,0,304,0,Exact +Quantum128BitADPS16,q64,256,3,268435455,9,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,138.595000000000,124.815000000000,523,0,471,0,Exact +Quantum128BitADPS16,q64,256,4,268435455,8830,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,268435455,5752883,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,268435455,1692874787,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,268435455,294236741160,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.740000000000,,516,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.120000000000,,608,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.030000000000,,702,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,268435455,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,211.470000000000,,798,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,268435455,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.440000000000,,896,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,268435455,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.940000000000,,996,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,268435455,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.970000000000,,1098,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,268435455,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,318.530000000000,,1202,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,268435455,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.355000000000,,1307,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,268435455,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.445000000000,,1413,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,268435455,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.800000000000,,1520,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,268435455,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,431.685000000000,,1629,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,268435455,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,460.835000000000,,1739,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,536870911,2,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,209.922706319070,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,536870911,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.056235889485,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,64,3,536870911,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,617.997102760939,40.015000000000,384,0,151,0,Exact +Quantum128BitADPS16,q64,64,4,536870911,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858951693548,77.645000000000,512,0,293,0,Exact +Quantum128BitADPS16,q64,64,5,536870911,10,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1025.677462244892,121.635000000000,640,0,459,0,Exact +Quantum128BitADPS16,q64,64,6,536870911,13,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.865000000000,99.905000000000,641,0,377,0,Exact +Quantum128BitADPS16,q64,64,7,536870911,16,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,99.905000000000,512,0,377,0,Exact +Quantum128BitADPS16,q64,64,8,536870911,19,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,106.000000000000,491,0,400,0,Exact +Quantum128BitADPS16,q64,64,9,536870911,22,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,114.745000000000,503,0,433,0,Exact +Quantum128BitADPS16,q64,64,10,536870911,25,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,125.345000000000,530,0,473,0,Exact +Quantum128BitADPS16,q64,64,11,536870911,29,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.740000000000,126.935000000000,516,0,479,0,Exact +Quantum128BitADPS16,q64,64,12,536870911,34,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,127.200000000000,501,0,480,0,Exact +Quantum128BitADPS16,q64,64,13,536870911,41,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.995000000000,491,0,483,0,Exact +Quantum128BitADPS16,q64,64,14,536870911,139,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,15,536870911,1119,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,536870911,7316,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,536870911,42366,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,536870911,224810,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,536870911,1112847,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,536870911,5197285,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,536870911,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.056235889485,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,536870911,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858951693548,40.810000000000,512,0,154,0,Exact +Quantum128BitADPS16,q64,128,3,536870911,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1275.286455358994,99.905000000000,744,0,377,0,Exact +Quantum128BitADPS16,q64,128,4,536870911,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.900000000000,106.000000000000,660,0,400,0,Exact +Quantum128BitADPS16,q64,128,5,536870911,12,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,125.345000000000,616,0,473,0,Exact +Quantum128BitADPS16,q64,128,6,536870911,17,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,122.960000000000,501,0,464,0,Exact +Quantum128BitADPS16,q64,128,7,536870911,69,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,8,536870911,3658,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,536870911,112405,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,536870911,2598642,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,536870911,49019555,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,536870911,787481967,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,536870911,11072800971,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,536870911,138948443989,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,536870911,1579008210717,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.765000000000,,501,0,,,AtLeast +Quantum128BitADPS16,q64,128,17,536870911,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.690000000000,,546,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,536870911,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.730000000000,,682,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,536870911,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858951693548,22.790000000000,512,0,86,0,Exact +Quantum128BitADPS16,q64,256,2,536870911,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1636.998965982966,106.000000000000,1024,0,400,0,Exact +Quantum128BitADPS16,q64,256,3,536870911,8,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,148.665000000000,122.960000000000,561,0,464,0,Exact +Quantum128BitADPS16,q64,256,4,536870911,1829,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,536870911,1299321,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,536870911,393740983,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,536870911,69474221994,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q64,256,9,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.375000000000,,575,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.225000000000,,665,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,536870911,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.605000000000,,757,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,536870911,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,536870911,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.690000000000,,946,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,536870911,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.395000000000,,1043,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,536870911,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,302.365000000000,,1141,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,536870911,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.865000000000,,1241,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,536870911,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.895000000000,,1343,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,536870911,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.925000000000,,1445,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,536870911,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,410.485000000000,,1549,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,536870911,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.310000000000,,1654,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,1073741823,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2088.824060576101,98.464124322811,64,0,128,0,Exact +Quantum128BitADPS16,q64,64,2,1073741823,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.786220834548,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,64,3,1073741823,6,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,284.955179165369,29.150000000000,384,0,110,0,Exact +Quantum128BitADPS16,q64,64,4,1073741823,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060968396230,56.975000000000,512,0,215,0,Exact +Quantum128BitADPS16,q64,64,5,1073741823,10,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,471.132005050722,88.775000000000,640,0,335,0,Exact +Quantum128BitADPS16,q64,64,6,1073741823,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,564.181002427652,123.490000000000,768,0,466,0,Exact +Quantum128BitADPS16,q64,64,7,1073741823,15,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,106.530000000000,605,0,402,0,Exact +Quantum128BitADPS16,q64,64,8,1073741823,18,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,106.000000000000,514,0,400,0,Exact +Quantum128BitADPS16,q64,64,9,1073741823,21,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.235000000000,111.035000000000,499,0,419,0,Exact +Quantum128BitADPS16,q64,64,10,1073741823,24,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,118.720000000000,510,0,448,0,Exact +Quantum128BitADPS16,q64,64,11,1073741823,27,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,127.995000000000,534,0,483,0,Exact +Quantum128BitADPS16,q64,64,12,1073741823,32,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,122.695000000000,489,0,463,0,Exact +Quantum128BitADPS16,q64,64,13,1073741823,37,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,125.610000000000,490,0,474,0,Exact +Quantum128BitADPS16,q64,64,14,1073741823,45,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,126.935000000000,484,0,479,0,Exact +Quantum128BitADPS16,q64,64,15,1073741823,198,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,16,1073741823,1443,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,1073741823,8813,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,1073741823,48305,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,1073741823,244420,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,1073741823,1159777,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,1073741823,2,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.786220834548,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,1073741823,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060968396230,32.330000000000,512,0,122,0,Exact +Quantum128BitADPS16,q64,128,3,1073741823,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,564.181002427652,78.970000000000,768,0,298,0,Exact +Quantum128BitADPS16,q64,128,4,1073741823,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,88.775000000000,514,0,335,0,Exact +Quantum128BitADPS16,q64,128,5,1073741823,12,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,107.590000000000,510,0,406,0,Exact +Quantum128BitADPS16,q64,128,6,1073741823,16,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,117.395000000000,489,0,443,0,Exact +Quantum128BitADPS16,q64,128,7,1073741823,22,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,126.935000000000,491,0,479,0,Exact +Quantum128BitADPS16,q64,128,8,1073741823,721,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,1073741823,24152,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,1073741823,579888,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,1073741823,11177308,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,1073741823,182099271,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,1073741823,2586014627,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,1073741823,32691832066,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,1073741823,373650772885,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,1073741823,3907651976721,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,1073741823,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.005000000000,,517,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,1073741823,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.795000000000,,603,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.455000000000,,647,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,1073741823,2,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060968396230,18.550000000000,512,0,70,0,Exact +Quantum128BitADPS16,q64,256,2,1073741823,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,750.237353352976,88.775000000000,1024,0,335,0,Exact +Quantum128BitADPS16,q64,256,3,1073741823,8,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,109.975000000000,489,0,415,0,Exact +Quantum128BitADPS16,q64,256,4,1073741823,360,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,1073741823,289944,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,1073741823,91049635,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,1073741823,16345916033,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,1073741823,1953825988360,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.425000000000,,545,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.215000000000,,631,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,1073741823,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.270000000000,,718,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,1073741823,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.855000000000,,807,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,1073741823,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.970000000000,,898,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,1073741823,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.615000000000,,991,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,1073741823,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,287.525000000000,,1085,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,1073741823,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.700000000000,,1180,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,1073741823,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,338.405000000000,,1277,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,1073741823,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.375000000000,,1375,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,1073741823,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,390.610000000000,,1474,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,1073741823,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.110000000000,,1574,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,2147483647,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2024.824060533105,28.620000000000,64,0,108,0,Exact +Quantum128BitADPS16,q64,64,2,2147483647,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1967.206414040663,59.360000000000,192,0,224,0,Exact +Quantum128BitADPS16,q64,64,3,2147483647,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1909.198572077905,90.630000000000,320,0,342,0,Exact +Quantum128BitADPS16,q64,64,4,2147483647,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1851.597615245684,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q64,64,5,2147483647,10,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.170000000000,67.310000000000,578,0,254,0,Exact +Quantum128BitADPS16,q64,64,6,2147483647,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,184.705000000000,93.810000000000,697,0,354,0,Exact +Quantum128BitADPS16,q64,64,7,2147483647,14,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,216.505000000000,121.635000000000,817,0,459,0,Exact +Quantum128BitADPS16,q64,64,8,2147483647,17,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,150.255000000000,109.445000000000,567,0,413,0,Exact +Quantum128BitADPS16,q64,64,9,2147483647,20,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,109.180000000000,507,0,412,0,Exact +Quantum128BitADPS16,q64,64,10,2147483647,23,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.970000000000,113.950000000000,498,0,430,0,Exact +Quantum128BitADPS16,q64,64,11,2147483647,26,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,120.840000000000,510,0,456,0,Exact +Quantum128BitADPS16,q64,64,12,2147483647,30,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,120.575000000000,488,0,455,0,Exact +Quantum128BitADPS16,q64,64,13,2147483647,34,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,124.815000000000,494,0,471,0,Exact +Quantum128BitADPS16,q64,64,14,2147483647,39,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,127.465000000000,495,0,481,0,Exact +Quantum128BitADPS16,q64,64,15,2147483647,48,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.465000000000,485,0,481,0,Exact +Quantum128BitADPS16,q64,64,16,2147483647,261,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,2147483647,1750,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,2147483647,10079,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,2147483647,52589,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,2147483647,254850,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,2147483647,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,4044.118919966251,59.360000000000,128,0,224,0,Exact +Quantum128BitADPS16,q64,128,2,2147483647,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3928.091345914765,121.900000000000,384,0,460,0,Exact +Quantum128BitADPS16,q64,128,3,2147483647,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,184.705000000000,63.865000000000,697,0,241,0,Exact +Quantum128BitADPS16,q64,128,4,2147483647,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.040000000000,109.445000000000,936,0,413,0,Exact +Quantum128BitADPS16,q64,128,5,2147483647,11,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,113.950000000000,605,0,430,0,Exact +Quantum128BitADPS16,q64,128,6,2147483647,15,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,113.950000000000,488,0,430,0,Exact +Quantum128BitADPS16,q64,128,7,2147483647,19,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.945000000000,127.465000000000,513,0,481,0,Exact +Quantum128BitADPS16,q64,128,8,2147483647,130,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,2147483647,5039,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,2147483647,127425,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,2147483647,2523927,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,2147483647,41822426,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,2147483647,600869127,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,2147483647,7660867166,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,2147483647,88130516293,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,2147483647,926432989152,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,2147483647,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.850000000000,,490,0,,,AtLeast +Quantum128BitADPS16,q64,128,18,2147483647,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,2147483647,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.580000000000,,572,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,2147483647,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.710000000000,,614,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,2147483647,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,8082.208837383313,121.900000000000,256,0,460,0,Exact +Quantum128BitADPS16,q64,256,2,2147483647,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.040000000000,75.260000000000,936,0,284,0,Exact +Quantum128BitADPS16,q64,256,3,2147483647,7,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,157.145000000000,113.950000000000,593,0,430,0,Exact +Quantum128BitADPS16,q64,256,4,2147483647,65,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,2147483647,63712,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,2147483647,20911213,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,2147483647,3830433583,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,2147483647,463216494576,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,2147483647,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.005000000000,,517,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,2147483647,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.735000000000,,599,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,2147483647,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.730000000000,,682,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,2147483647,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,203.255000000000,,767,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,2147483647,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.310000000000,,854,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,2147483647,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,249.630000000000,,942,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,2147483647,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.480000000000,,1032,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,2147483647,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.595000000000,,1123,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,2147483647,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.240000000000,,1216,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,2147483647,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.885000000000,,1309,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,2147483647,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,372.060000000000,,1404,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,2147483647,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,397.500000000000,,1500,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,4294967295,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1960.824060511607,10.865000000000,64,0,41,0,Exact +Quantum128BitADPS16,q64,64,2,4294967295,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1775.206576331468,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q64,64,3,4294967295,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1589.299995891013,58.035000000000,320,0,219,0,Exact +Quantum128BitADPS16,q64,64,4,4294967295,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1405.395612712946,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q64,64,5,4294967295,9,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1231.086669551790,105.735000000000,575,0,399,0,Exact +Quantum128BitADPS16,q64,64,6,4294967295,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,73.405000000000,491,0,277,0,Exact +Quantum128BitADPS16,q64,64,7,4294967295,14,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,154.495000000000,95.135000000000,583,0,359,0,Exact +Quantum128BitADPS16,q64,64,8,4294967295,16,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,117.925000000000,677,0,445,0,Exact +Quantum128BitADPS16,q64,64,9,4294967295,19,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.245000000000,109.975000000000,533,0,415,0,Exact +Quantum128BitADPS16,q64,64,10,4294967295,22,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,110.770000000000,495,0,418,0,Exact +Quantum128BitADPS16,q64,64,11,4294967295,25,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,115.275000000000,492,0,435,0,Exact +Quantum128BitADPS16,q64,64,12,4294967295,28,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,121.635000000000,505,0,459,0,Exact +Quantum128BitADPS16,q64,64,13,4294967295,32,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,121.900000000000,489,0,460,0,Exact +Quantum128BitADPS16,q64,64,14,4294967295,36,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,125.875000000000,495,0,475,0,Exact +Quantum128BitADPS16,q64,64,15,4294967295,42,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,125.610000000000,485,0,474,0,Exact +Quantum128BitADPS16,q64,64,16,4294967295,51,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,127.995000000000,486,0,483,0,Exact +Quantum128BitADPS16,q64,64,17,4294967295,321,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,18,4294967295,2011,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,4294967295,10994,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,4294967295,54869,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,4294967295,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3916.118919923255,34.980000000000,128,0,132,0,Exact +Quantum128BitADPS16,q64,128,2,4294967295,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3544.091675360038,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q64,128,3,4294967295,6,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,52.470000000000,491,0,198,0,Exact +Quantum128BitADPS16,q64,128,4,4294967295,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,89.835000000000,677,0,339,0,Exact +Quantum128BitADPS16,q64,128,5,4294967295,11,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,97.520000000000,495,0,368,0,Exact +Quantum128BitADPS16,q64,128,6,4294967295,14,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,112.890000000000,505,0,426,0,Exact +Quantum128BitADPS16,q64,128,7,4294967295,18,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,121.370000000000,495,0,458,0,Exact +Quantum128BitADPS16,q64,128,8,4294967295,25,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.995000000000,489,0,483,0,Exact +Quantum128BitADPS16,q64,128,9,4294967295,1005,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,4294967295,27434,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,4294967295,563067,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,4294967295,9527123,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,4294967295,138782837,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,4294967295,1786971872,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,4294967295,20710287468,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,4294967295,218971970141,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,4294967295,2134409686552,2176,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,18,4294967295,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.295000000000,,503,0,,,AtLeast +Quantum128BitADPS16,q64,128,19,4294967295,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.895000000000,,543,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,4294967295,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,4294967295,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,7826.208837297321,81.885000000000,256,0,309,0,Exact +Quantum128BitADPS16,q64,256,2,4294967295,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,64.660000000000,677,0,244,0,Exact +Quantum128BitADPS16,q64,256,3,4294967295,7,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,100.965000000000,505,0,381,0,Exact +Quantum128BitADPS16,q64,256,4,4294967295,12,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,127.995000000000,500,0,483,0,Exact +Quantum128BitADPS16,q64,256,5,4294967295,13717,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,4294967295,4763561,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,4294967295,893485936,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,4294967295,109485985070,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,4294967295,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.115000000000,,491,0,,,AtLeast +Quantum128BitADPS16,q64,256,10,4294967295,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.785000000000,,569,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,4294967295,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.720000000000,,648,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,4294967295,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.450000000000,,730,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,4294967295,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,215.445000000000,,813,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,4294967295,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.705000000000,,897,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,4294967295,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.495000000000,,983,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,4294967295,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,283.550000000000,,1070,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,4294967295,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.870000000000,,1158,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,4294967295,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,330.720000000000,,1248,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,4294967295,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,354.570000000000,,1338,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,4294967295,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.685000000000,,1429,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,8589934591,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1896.824060500858,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,8589934591,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1583.207225719656,20.935000000000,192,0,79,0,Exact +Quantum128BitADPS16,q64,64,3,8589934591,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1269.705513262886,39.220000000000,320,0,148,0,Exact +Quantum128BitADPS16,q64,64,4,8589934591,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,964.547589718675,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q64,64,5,8589934591,9,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,690.214819818522,76.850000000000,576,0,290,0,Exact +Quantum128BitADPS16,q64,64,6,8589934591,11,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,469.720266532623,96.195000000000,704,0,363,0,Exact +Quantum128BitADPS16,q64,64,7,8589934591,13,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,311.688911147243,115.805000000000,832,0,437,0,Exact +Quantum128BitADPS16,q64,64,8,8589934591,16,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,95.135000000000,512,0,359,0,Exact +Quantum128BitADPS16,q64,64,9,8589934591,18,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,155.820000000000,113.950000000000,588,0,430,0,Exact +Quantum128BitADPS16,q64,64,10,8589934591,21,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,109.445000000000,503,0,413,0,Exact +Quantum128BitADPS16,q64,64,11,8589934591,23,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.170000000000,127.465000000000,578,0,481,0,Exact +Quantum128BitADPS16,q64,64,12,8589934591,26,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.015000000000,127.995000000000,551,0,483,0,Exact +Quantum128BitADPS16,q64,64,13,8589934591,30,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.705000000000,121.635000000000,497,0,459,0,Exact +Quantum128BitADPS16,q64,64,14,8589934591,34,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,122.165000000000,487,0,461,0,Exact +Quantum128BitADPS16,q64,64,15,8589934591,38,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,126.140000000000,494,0,476,0,Exact +Quantum128BitADPS16,q64,64,16,8589934591,44,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,126.405000000000,487,0,477,0,Exact +Quantum128BitADPS16,q64,64,17,8589934591,55,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.730000000000,484,0,482,0,Exact +Quantum128BitADPS16,q64,64,18,8589934591,372,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,8589934591,2201,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,8589934591,11481,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,8589934591,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3788.118919901757,20.935000000000,128,0,79,0,Exact +Quantum128BitADPS16,q64,128,2,8589934591,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3160.092993591019,57.770000000000,384,0,218,0,Exact +Quantum128BitADPS16,q64,128,3,8589934591,5,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2532.731616911354,96.195000000000,640,0,363,0,Exact +Quantum128BitADPS16,q64,128,4,8589934591,8,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,74.995000000000,512,0,283,0,Exact +Quantum128BitADPS16,q64,128,5,8589934591,10,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,176.225000000000,109.445000000000,665,0,413,0,Exact +Quantum128BitADPS16,q64,128,6,8589934591,13,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.015000000000,115.540000000000,551,0,436,0,Exact +Quantum128BitADPS16,q64,128,7,8589934591,17,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,116.865000000000,487,0,441,0,Exact +Quantum128BitADPS16,q64,128,8,8589934591,22,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,124.285000000000,487,0,469,0,Exact +Quantum128BitADPS16,q64,128,9,8589934591,186,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,8589934591,5740,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,8589934591,123686,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,8589934591,2148774,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,8589934591,31829432,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,8589934591,414617266,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,8589934591,4846463649,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,8589934591,51579771030,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,8589934591,505399335874,2176,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,18,8589934591,4599670747534,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,19,8589934591,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,8589934591,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.810000000000,,554,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,8589934591,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,7570.208837254326,57.770000000000,256,0,218,0,Exact +Quantum128BitADPS16,q64,256,2,8589934591,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,56.180000000000,512,0,212,0,Exact +Quantum128BitADPS16,q64,256,3,8589934591,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,217.300000000000,115.540000000000,820,0,436,0,Exact +Quantum128BitADPS16,q64,256,4,8589934591,11,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,121.105000000000,487,0,457,0,Exact +Quantum128BitADPS16,q64,256,5,8589934591,2870,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,8589934591,1074387,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,8589934591,207308633,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,8589934591,25789885515,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,8589934591,2299835373767,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,10,8589934591,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.100000000000,,540,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,8589934591,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.240000000000,,616,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,8589934591,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.910000000000,,694,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,8589934591,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.110000000000,,774,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,8589934591,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.310000000000,,854,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,8589934591,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.040000000000,,936,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,8589934591,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,270.300000000000,,1020,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,8589934591,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,292.560000000000,,1104,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,8589934591,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,315.350000000000,,1190,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,8589934591,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,338.140000000000,,1276,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,8589934591,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.460000000000,,1364,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,17179869183,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1832.824060495484,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,17179869183,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1391.209823373090,10.865000000000,192,0,41,0,Exact +Quantum128BitADPS16,q64,64,3,17179869183,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,951.324733341350,27.295000000000,320,0,103,0,Exact +Quantum128BitADPS16,q64,64,4,17179869183,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,544.522609604290,42.400000000000,448,0,160,0,Exact +Quantum128BitADPS16,q64,64,5,17179869183,9,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.640472585012,58.035000000000,576,0,219,0,Exact +Quantum128BitADPS16,q64,64,6,17179869183,11,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,73.935000000000,616,0,279,0,Exact +Quantum128BitADPS16,q64,64,7,17179869183,13,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,165.625000000000,90.100000000000,625,0,340,0,Exact +Quantum128BitADPS16,q64,64,8,17179869183,15,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,173.840000000000,106.530000000000,656,0,402,0,Exact +Quantum128BitADPS16,q64,64,9,17179869183,17,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,185.235000000000,123.225000000000,699,0,465,0,Exact +Quantum128BitADPS16,q64,64,10,17179869183,20,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,110.240000000000,529,0,416,0,Exact +Quantum128BitADPS16,q64,64,11,17179869183,22,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,157.145000000000,126.670000000000,593,0,478,0,Exact +Quantum128BitADPS16,q64,64,12,17179869183,25,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,123.755000000000,542,0,467,0,Exact +Quantum128BitADPS16,q64,64,13,17179869183,28,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,139.920000000000,125.345000000000,528,0,473,0,Exact +Quantum128BitADPS16,q64,64,14,17179869183,32,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,120.840000000000,489,0,456,0,Exact +Quantum128BitADPS16,q64,64,15,17179869183,35,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,127.730000000000,510,0,482,0,Exact +Quantum128BitADPS16,q64,64,16,17179869183,40,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,125.875000000000,491,0,475,0,Exact +Quantum128BitADPS16,q64,64,17,17179869183,46,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,126.670000000000,487,0,478,0,Exact +Quantum128BitADPS16,q64,64,18,17179869183,58,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,19,17179869183,409,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,17179869183,2302,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,17179869183,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3660.118919891009,10.865000000000,128,0,41,0,Exact +Quantum128BitADPS16,q64,128,2,17179869183,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2776.098266715574,42.400000000000,384,0,160,0,Exact +Quantum128BitADPS16,q64,128,3,17179869183,5,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1896.001608723614,73.935000000000,640,0,279,0,Exact +Quantum128BitADPS16,q64,128,4,17179869183,7,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1082.650518503063,106.530000000000,896,0,402,0,Exact +Quantum128BitADPS16,q64,128,5,17179869183,10,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,92.750000000000,529,0,350,0,Exact +Quantum128BitADPS16,q64,128,6,17179869183,12,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.635000000000,123.755000000000,659,0,467,0,Exact +Quantum128BitADPS16,q64,128,7,17179869183,16,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,114.215000000000,489,0,431,0,Exact +Quantum128BitADPS16,q64,128,8,17179869183,20,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,122.430000000000,491,0,462,0,Exact +Quantum128BitADPS16,q64,128,9,17179869183,29,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,10,17179869183,1151,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,17179869183,26617,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,17179869183,478663,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,17179869183,7238473,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,17179869183,95603946,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,17179869183,1128688529,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,17179869183,12103000177,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,17179869183,119290542849,2176,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,18,17179869183,1090820962433,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,19,17179869183,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.850000000000,,490,0,,,AtLeast +Quantum128BitADPS16,q64,128,20,17179869183,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.390000000000,,526,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,17179869183,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,7314.208837232829,42.400000000000,256,0,160,0,Exact +Quantum128BitADPS16,q64,256,2,17179869183,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,5545.375167354872,106.530000000000,768,0,402,0,Exact +Quantum128BitADPS16,q64,256,3,17179869183,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.635000000000,100.700000000000,659,0,380,0,Exact +Quantum128BitADPS16,q64,256,4,17179869183,10,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,117.130000000000,491,0,442,0,Exact +Quantum128BitADPS16,q64,256,5,17179869183,575,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,17179869183,239331,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,17179869183,47801973,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,17179869183,6051500088,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,17179869183,545410481216,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,10,17179869183,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.210000000000,,514,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,17179869183,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,155.555000000000,,587,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,17179869183,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.165000000000,,661,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,17179869183,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,17179869183,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,215.710000000000,,814,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,17179869183,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.645000000000,,893,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,17179869183,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,17179869183,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,279.045000000000,,1053,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,17179869183,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,300.775000000000,,1135,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,17179869183,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.770000000000,,1218,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,17179869183,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q64,64,1,34359738367,1,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1768.824060492796,10.600000000000,64,0,40,0,Exact +Quantum128BitADPS16,q64,64,2,34359738367,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1199.220213848369,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q64,64,3,34359738367,5,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,637.756181851812,18.815000000000,320,0,71,0,Exact +Quantum128BitADPS16,q64,64,4,34359738367,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,198.790570362133,31.800000000000,448,0,120,0,Exact +Quantum128BitADPS16,q64,64,5,34359738367,8,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405405698384,115.010000000000,512,0,434,0,Exact +Quantum128BitADPS16,q64,64,6,34359738367,10,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1268.988933263443,114.480000000000,640,0,432,0,Exact +Quantum128BitADPS16,q64,64,7,34359738367,12,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.537529442990,120.840000000000,768,0,456,0,Exact +Quantum128BitADPS16,q64,64,8,34359738367,15,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,85.860000000000,492,0,324,0,Exact +Quantum128BitADPS16,q64,64,9,34359738367,17,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,99.905000000000,534,0,377,0,Exact +Quantum128BitADPS16,q64,64,10,34359738367,19,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.965000000000,114.215000000000,581,0,431,0,Exact +Quantum128BitADPS16,q64,64,11,34359738367,22,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,106.795000000000,486,0,403,0,Exact +Quantum128BitADPS16,q64,64,12,34359738367,24,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,121.105000000000,542,0,457,0,Exact +Quantum128BitADPS16,q64,64,13,34359738367,27,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,120.310000000000,512,0,454,0,Exact +Quantum128BitADPS16,q64,64,14,34359738367,30,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,122.695000000000,507,0,463,0,Exact +Quantum128BitADPS16,q64,64,15,34359738367,33,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.475000000000,126.935000000000,515,0,479,0,Exact +Quantum128BitADPS16,q64,64,16,34359738367,37,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,126.405000000000,501,0,477,0,Exact +Quantum128BitADPS16,q64,64,17,34359738367,42,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,125.345000000000,487,0,473,0,Exact +Quantum128BitADPS16,q64,64,18,34359738367,48,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,126.670000000000,485,0,478,0,Exact +Quantum128BitADPS16,q64,64,19,34359738367,65,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,64,20,34359738367,429,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,1,34359738367,1,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3532.118919885634,10.600000000000,128,0,40,0,Exact +Quantum128BitADPS16,q64,128,2,34359738367,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2392.119358925115,31.800000000000,384,0,120,0,Exact +Quantum128BitADPS16,q64,128,3,34359738367,5,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1268.988933263443,58.300000000000,640,0,220,0,Exact +Quantum128BitADPS16,q64,128,4,34359738367,7,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,392.506742326610,85.860000000000,896,0,324,0,Exact +Quantum128BitADPS16,q64,128,5,34359738367,9,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,241.680000000000,114.215000000000,912,0,431,0,Exact +Quantum128BitADPS16,q64,128,6,34359738367,12,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,106.265000000000,542,0,401,0,Exact +Quantum128BitADPS16,q64,128,7,34359738367,15,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,113.950000000000,507,0,430,0,Exact +Quantum128BitADPS16,q64,128,8,34359738367,18,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,126.405000000000,530,0,477,0,Exact +Quantum128BitADPS16,q64,128,9,34359738367,24,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,124.815000000000,485,0,471,0,Exact +Quantum128BitADPS16,q64,128,10,34359738367,214,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,11,34359738367,5566,1408,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,12,34359738367,104943,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,13,34359738367,1629184,1664,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,14,34359738367,21882745,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,15,34359738367,261396508,1920,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,16,34359738367,2827434844,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,17,34359738367,28055490622,2176,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,18,34359738367,257920534542,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,19,34359738367,2214243991031,2432,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,128,20,34359738367,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.765000000000,,501,0,,,AtLeast +Quantum128BitADPS16,q64,256,1,34359738367,1,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,7058.208837222079,31.800000000000,256,0,120,0,Exact +Quantum128BitADPS16,q64,256,2,34359738367,3,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,4777.417704894076,85.860000000000,768,0,324,0,Exact +Quantum128BitADPS16,q64,256,3,34359738367,6,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,88.510000000000,542,0,334,0,Exact +Quantum128BitADPS16,q64,256,4,34359738367,9,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,117.395000000000,530,0,443,0,Exact +Quantum128BitADPS16,q64,256,5,34359738367,107,1280,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,6,34359738367,52471,1536,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,7,34359738367,10941372,1792,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,8,34359738367,1413717422,2048,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,9,34359738367,128960267271,2304,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q64,256,10,34359738367,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.585000000000,,489,0,,,AtLeast +Quantum128BitADPS16,q64,256,11,34359738367,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.135000000000,,559,0,,,AtLeast +Quantum128BitADPS16,q64,256,12,34359738367,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q64,256,13,34359738367,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.295000000000,,703,0,,,AtLeast +Quantum128BitADPS16,q64,256,14,34359738367,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.905000000000,,777,0,,,AtLeast +Quantum128BitADPS16,q64,256,15,34359738367,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.780000000000,,852,0,,,AtLeast +Quantum128BitADPS16,q64,256,16,34359738367,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,245.920000000000,,928,0,,,AtLeast +Quantum128BitADPS16,q64,256,17,34359738367,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.590000000000,,1006,0,,,AtLeast +Quantum128BitADPS16,q64,256,18,34359738367,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,287.260000000000,,1084,0,,,AtLeast +Quantum128BitADPS16,q64,256,19,34359738367,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,308.195000000000,,1163,0,,,AtLeast +Quantum128BitADPS16,q64,256,20,34359738367,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.660000000000,,1244,0,,,AtLeast +Quantum128BitADPS16,q128,64,1,2,7606285,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,2,18668388992,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,2,6400000000000,192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q128,64,4,2,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.330000000000,,722,0,,,AtLeast +Quantum128BitADPS16,q128,64,5,2,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,2,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,327.010000000000,,1234,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,2,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.825000000000,,1505,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,472.760000000000,,1784,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,2,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.550000000000,,2070,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,2,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.930000000000,,2362,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,2,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,704.900000000000,,2660,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,784.930000000000,,2962,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,2,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,866.285000000000,,3269,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,948.965000000000,,3581,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,2,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1032.440000000000,,3896,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1116.975000000000,,4215,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,2,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1202.305000000000,,4537,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1288.430000000000,,4862,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,2,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:211002.202828367328,,4934,409599999986297,,,AtLeast +Quantum128BitADPS16,q128,64,20,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:224513.018937684217,,4934,409599999985941,,,AtLeast +Quantum128BitADPS16,q128,128,1,2,9334194496,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,2,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.465000000000,,681,0,,,AtLeast +Quantum128BitADPS16,q128,128,3,2,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,309.255000000000,,1167,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,447.850000000000,,1690,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,2,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,593.335000000000,,2239,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,744.385000000000,,2809,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,2,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,900.470000000000,,3398,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1060.265000000000,,4001,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,2,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1223.505000000000,,4617,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:224513.018937684217,,4934,819199999985941,,,AtLeast +Quantum128BitADPS16,q128,128,11,2,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:251720.451384118729,,4934,819199999985255,,,AtLeast +Quantum128BitADPS16,q128,128,12,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:279160.661409805762,,4933,819199999984601,,,AtLeast +Quantum128BitADPS16,q128,128,13,2,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:306799.399671089544,,4933,819199999983972,,,AtLeast +Quantum128BitADPS16,q128,128,14,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334610.770029844600,,4933,819199999983367,,,AtLeast +Quantum128BitADPS16,q128,128,15,2,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:362585.683845080086,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:390686.233907236194,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,2,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:418947.099631444959,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:447303.117761324334,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,2,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:475782.194915602624,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:504374.059347082861,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,2,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.395000000000,,643,0,,,AtLeast +Quantum128BitADPS16,q128,256,2,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.530000000000,,1602,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,2,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,706.755000000000,,2667,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1007.265000000000,,3801,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,2,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:32336.886465868978,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,256,6,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:279160.661409805762,,4933,1638399999984601,,,AtLeast +Quantum128BitADPS16,q128,256,7,2,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334610.770029844600,,4933,1638399999983367,,,AtLeast +Quantum128BitADPS16,q128,256,8,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:390686.233907236194,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,2,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:447303.117761324334,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:504374.059347082861,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,2,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:561796.648314574151,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,2,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:619553.356852918514,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,2,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:677626.186417037505,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,2,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:735947.258153813891,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,2,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:794471.084569157916,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,2,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:853239.444218778634,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,2,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:912185.901198994834,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,2,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:971314.827307532658,,4933,1638399999973327,,,AtLeast +Quantum128BitADPS16,q128,256,19,2,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1030601.695241744164,,4933,1638399999972596,,,AtLeast +Quantum128BitADPS16,q128,256,20,2,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1090037.452116118046,,4933,1638399999971884,,,AtLeast +Quantum128BitADPS16,q128,512,1,2,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.535000000000,,1519,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,2,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,957.975000000000,,3615,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,2,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:279160.661409805762,,4933,3276799999984601,,,AtLeast +Quantum128BitADPS16,q128,512,4,2,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:390686.233907236194,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,2,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:504374.059347082861,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,2,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:619553.356852918514,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,2,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:735947.258153813891,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,2,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:853239.444218778634,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,2,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:971314.827307532658,,4933,3276799999973327,,,AtLeast +Quantum128BitADPS16,q128,512,10,2,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1090037.452116118046,,4933,3276799999971884,,,AtLeast +Quantum128BitADPS16,q128,512,11,2,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1209295.605151515687,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,2,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1329032.996129247593,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,2,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1449219.897072442574,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,2,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1569809.478108891286,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,2,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1690668.749968180433,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,2,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1811898.088388116099,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,2,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1933345.015094581759,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,2,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2055085.463690233417,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,2,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2177068.981009125244,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,2,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2299262.868092134129,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,3,3174318,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,3,7975201095,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,3,2914178382100,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,3,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.345000000000,,673,0,,,AtLeast +Quantum128BitADPS16,q128,64,5,3,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.620000000000,,908,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,3,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,305.545000000000,,1153,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,3,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.120000000000,,1408,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.550000000000,,1670,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,3,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,513.835000000000,,1939,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,3,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.445000000000,,2213,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,3,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,660.645000000000,,2493,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.170000000000,,2778,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,3,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,812.755000000000,,3067,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,890.400000000000,,3360,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,3,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,968.840000000000,,3656,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1048.340000000000,,3956,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,3,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1128.900000000000,,4260,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1209.990000000000,,4566,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,3,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1291.875000000000,,4875,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:216289.031141704123,,4934,409599999985941,,,AtLeast +Quantum128BitADPS16,q128,128,1,3,3987600547,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,3,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,168.540000000000,,636,0,,,AtLeast +Quantum128BitADPS16,q128,128,3,3,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,289.380000000000,,1092,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,419.760000000000,,1584,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,3,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.500000000000,,2100,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,699.070000000000,,2638,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,3,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,845.880000000000,,3192,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,996.400000000000,,3760,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,3,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1150.365000000000,,4341,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1306.980000000000,,4932,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,3,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:243095.179311362241,,4934,819199999985255,,,AtLeast +Quantum128BitADPS16,q128,128,12,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:270152.823861291574,,4933,819199999984601,,,AtLeast +Quantum128BitADPS16,q128,128,13,3,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:297423.620709554059,,4933,819199999983972,,,AtLeast +Quantum128BitADPS16,q128,128,14,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:324880.420750299294,,4934,819199999983365,,,AtLeast +Quantum128BitADPS16,q128,128,15,3,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:352513.214545162511,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:380283.845756911847,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,3,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:408224.152030725498,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:436269.555072721851,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,3,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:464446.206614127266,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:492743.249945244170,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,3,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.265000000000,,601,0,,,AtLeast +Quantum128BitADPS16,q128,256,2,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,398.295000000000,,1503,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,3,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,664.355000000000,,2507,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,947.640000000000,,3576,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,3,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1243.910000000000,,4694,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:270152.823861291574,,4933,1638399999984601,,,AtLeast +Quantum128BitADPS16,q128,256,7,3,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:324880.420750299294,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q128,256,8,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:380283.845756911847,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,3,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:436269.555072721851,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:492743.249945244170,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,3,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:549598.425287035876,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,3,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:606812.873587211827,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,3,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:664365.086525688879,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,3,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:722185.430361847975,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,3,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780226.662714097067,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,3,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:838527.637325641583,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,3,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:897021.333330299705,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,3,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:955712.122525797342,,4933,1638399999973327,,,AtLeast +Quantum128BitADPS16,q128,256,19,3,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1014571.382871981710,,4933,1638399999972596,,,AtLeast +Quantum128BitADPS16,q128,256,20,3,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1073590.646445842227,,4933,1638399999971884,,,AtLeast +Quantum128BitADPS16,q128,512,1,3,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.155000000000,,1427,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,3,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,902.325000000000,,3405,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,3,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:270152.823861291574,,4933,3276799999984601,,,AtLeast +Quantum128BitADPS16,q128,512,4,3,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:380283.845756911847,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,3,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:492743.249945244170,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,3,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:606812.873587211827,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,3,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:722185.430361847975,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,3,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:838527.637325641583,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,3,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:955712.122525797342,,4933,3276799999973327,,,AtLeast +Quantum128BitADPS16,q128,512,10,3,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1073590.646445842227,,4933,3276799999971884,,,AtLeast +Quantum128BitADPS16,q128,512,11,3,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1192044.476042747963,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,3,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1311014.981182034593,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,3,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1430465.999299322255,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,3,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1550347.190747397719,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,3,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1670523.811368345516,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,3,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1791092.142162466189,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,3,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1911899.119893142721,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,3,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2033017.753350527724,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,3,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2154396.419443674386,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,3,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2276001.249288456980,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,7,503495,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,7,1341082602,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,7,500169842353,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,7,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q128,64,5,7,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,7,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.590000000000,,1006,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,7,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,325.950000000000,,1230,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,387.430000000000,,1462,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,7,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,450.235000000000,,1699,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,7,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,514.365000000000,,1941,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,7,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,579.820000000000,,2188,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,646.600000000000,,2440,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,7,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,714.175000000000,,2695,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,7,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,782.810000000000,,2954,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,7,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,852.505000000000,,3217,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,922.730000000000,,3482,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,7,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,994.015000000000,,3751,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1065.830000000000,,4022,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,7,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1138.175000000000,,4295,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1211.580000000000,,4572,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,7,670541301,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,7,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.280000000000,,552,0,,,AtLeast +Quantum128BitADPS16,q128,128,3,7,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.075000000000,,955,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.085000000000,,1389,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,7,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,489.190000000000,,1846,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,615.330000000000,,2322,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,7,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,745.445000000000,,2813,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,879.005000000000,,3317,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,7,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1015.480000000000,,3832,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1154.605000000000,,4357,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,7,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1296.115000000000,,4891,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:251327.582960176340,,4934,819199999984599,,,AtLeast +Quantum128BitADPS16,q128,128,13,7,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:277828.785684739880,,4934,819199999983970,,,AtLeast +Quantum128BitADPS16,q128,128,14,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:304545.922821417334,,4934,819199999983365,,,AtLeast +Quantum128BitADPS16,q128,128,15,7,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:331464.839442187280,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358546.041328285821,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,7,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385816.476555206988,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:413212.789221473795,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,7,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:440757.463881048257,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:468438.421431811526,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,7,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.595000000000,,523,0,,,AtLeast +Quantum128BitADPS16,q128,256,2,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,350.065000000000,,1321,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,7,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,586.180000000000,,2212,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,837.930000000000,,3162,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,7,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1101.340000000000,,4156,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:251327.582960176340,,4934,1638399999984599,,,AtLeast +Quantum128BitADPS16,q128,256,7,7,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:304545.922821417334,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q128,256,8,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358546.041328285821,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,7,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:413212.789221473795,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:468438.421431811526,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,7,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:524107.876124906936,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,7,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:580189.166650503874,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,7,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:636653.450333991554,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,7,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:693427.426257486688,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,7,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:750460.184862133116,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,7,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:807784.467929029837,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,7,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:865332.032199573470,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,7,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:923107.249471490155,,4933,1638399999973327,,,AtLeast +Quantum128BitADPS16,q128,256,19,7,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:981072.940957677551,,4933,1638399999972596,,,AtLeast +Quantum128BitADPS16,q128,256,20,7,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1039221.140739127062,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,7,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.105000000000,,1257,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,7,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,799.240000000000,,3016,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,7,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,4033.857808341728,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,512,4,7,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358546.041328285821,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,7,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:468438.421431811526,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,7,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:580189.166650503874,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,7,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:693427.426257486688,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,7,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:807784.467929029837,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,7,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:923107.249471490155,,4933,3276799999973327,,,AtLeast +Quantum128BitADPS16,q128,512,10,7,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1039221.140739127062,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,7,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1155994.901145114796,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,7,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1273362.849820029223,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,7,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1391276.098271275638,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,7,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1509676.972497112583,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,7,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1628427.061162360711,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,7,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1747614.088520371355,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,7,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1867083.768942105817,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,7,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1986902.999255610164,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,7,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2107017.711585094687,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,7,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2227391.592261591461,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,15,93943,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,15,267753975,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,15,102042220193,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,15,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q128,64,5,15,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.500000000000,,700,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,15,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,236.910000000000,,894,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,15,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.175000000000,,1095,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,15,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,401.475000000000,,1515,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,15,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,459.245000000000,,1733,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,15,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,518.075000000000,,1955,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,578.230000000000,,2182,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,15,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.915000000000,,2411,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,15,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,700.660000000000,,2644,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,15,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,763.200000000000,,2880,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,826.535000000000,,3119,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,15,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,890.665000000000,,3361,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,955.325000000000,,3605,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,15,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1020.780000000000,,3852,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1086.765000000000,,4101,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,15,133876987,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,15,6400000000000,256,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q128,128,3,15,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.600000000000,,1240,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,15,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.780000000000,,1652,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.200000000000,,2080,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,15,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,668.595000000000,,2523,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,788.905000000000,,2977,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,15,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,912.130000000000,,3442,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1037.475000000000,,3915,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,15,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1165.470000000000,,4398,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1295.055000000000,,4887,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,15,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:260203.228838537849,,4934,819199999983970,,,AtLeast +Quantum128BitADPS16,q128,128,14,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:286255.146892117453,,4934,819199999983365,,,AtLeast +Quantum128BitADPS16,q128,128,15,15,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:312531.934679375612,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:338992.998445552774,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,15,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365660.888123345154,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:392473.347346956434,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,15,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:419449.562063305115,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:446576.353634598665,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,15,3628240405687,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,15,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.025000000000,,1985,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.395000000000,,2843,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,15,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,991.365000000000,,3741,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1238.080000000000,,4672,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,15,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:286255.146892117453,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q128,256,8,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:338992.998445552774,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,15,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:392473.347346956434,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:446576.353634598665,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,15,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:501179.258724349726,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,15,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:556241.279680565000,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,15,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:611726.976614592364,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,15,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:667559.750001527835,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,15,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:723685.391675494844,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,15,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780131.145739224390,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,15,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:836827.669398439699,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,15,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:893779.199727085535,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,15,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:950939.234240057529,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,15,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1008303.297134549008,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,15,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,298.390000000000,,1126,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,15,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,720.005000000000,,2717,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,15,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1184.285000000000,,4469,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,15,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:338992.998445552774,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,15,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:446576.353634598665,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,15,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:556241.279680565000,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,15,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:667559.750001527835,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,15,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780131.145739224390,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,15,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:893779.199727085535,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,15,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1008303.297134549008,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,15,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1123568.494596424745,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,15,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1239494.952003313927,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,15,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1356024.984577233437,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,15,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1473094.321102400310,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,15,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1590561.251636614325,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,15,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1708505.803683512378,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,15,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1826772.592078382382,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,15,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1945423.015970902052,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,15,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2064400.808413935127,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,15,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2183667.456667166203,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,31,18455,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,31,57253878,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,31,22353782153,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,31,3218053350580,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,31,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.890000000000,,626,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,31,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.265000000000,,801,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,31,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.760000000000,,984,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,31,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,310.580000000000,,1172,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,31,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.725000000000,,1365,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,31,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,413.930000000000,,1562,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,31,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,467.460000000000,,1764,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,521.785000000000,,1969,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,31,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,576.905000000000,,2177,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,31,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,633.085000000000,,2389,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,31,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,689.795000000000,,2603,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,747.300000000000,,2820,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,31,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,805.600000000000,,3040,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,864.165000000000,,3261,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,31,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,923.525000000000,,3485,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,983.680000000000,,3712,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,31,28626939,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,31,1609026675290,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,31,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,31,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.005000000000,,1117,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,31,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.115000000000,,1491,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.200000000000,,1880,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,31,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.730000000000,,2282,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,714.440000000000,,2696,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,31,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,826.270000000000,,3118,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,940.750000000000,,3550,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,31,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1057.085000000000,,3989,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1175.275000000000,,4435,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,31,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1295.055000000000,,4887,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:268833.216327697737,,4934,819199999983365,,,AtLeast +Quantum128BitADPS16,q128,128,15,31,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:294498.377576864266,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320368.760919724242,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,31,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:346462.727065772633,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:372719.066954816284,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,31,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:399153.824616615369,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425752.774107660633,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,31,804513337645,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,31,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.490000000000,,1066,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,31,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.205000000000,,1797,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,683.170000000000,,2578,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,31,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,900.205000000000,,3397,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1125.190000000000,,4246,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,31,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:268833.216327697737,,4934,1638399999983365,,,AtLeast +Quantum128BitADPS16,q128,256,8,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320368.760919724242,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,31,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:372719.066954816284,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425752.774107660633,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,31,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:479339.792654076708,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,31,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:533430.961212692317,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,31,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:587984.556060567033,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,31,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:642920.835755652282,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,31,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:698182.450214927085,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,31,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:753791.407012548763,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,31,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:809677.316048525507,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,31,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:865841.272479657899,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,31,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:922235.726515126997,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,31,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:978854.107740696287,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,31,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,269.770000000000,,1018,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,31,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,654.020000000000,,2468,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,31,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1078.020000000000,,4068,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,31,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320368.760919724242,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,31,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425752.774107660633,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,31,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:533430.961212692317,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,31,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:642920.835755652282,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,31,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:753791.407012548763,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,31,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:865841.272479657899,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,31,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:978854.107740696287,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,31,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1092682.401761896210,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,31,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1207235.841376710916,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,31,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1322448.363361439202,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,31,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1438249.412666009506,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,31,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1554494.137431077193,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,31,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1671255.234020275762,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,31,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1788376.269963178085,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,31,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1905913.407880888321,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,31,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2023808.286214840598,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,31,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2142020.297613289673,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,63,3618,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,63,12572647,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,63,5048157684,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,63,736589990871,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,63,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,149.195000000000,,563,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,63,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,191.595000000000,,723,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,63,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,235.585000000000,,889,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,63,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,280.900000000000,,1060,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,63,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,327.540000000000,,1236,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,63,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,375.240000000000,,1416,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,63,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.000000000000,,1600,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,473.555000000000,,1787,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,63,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,523.905000000000,,1977,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,63,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,575.050000000000,,2170,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,63,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,626.990000000000,,2366,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,679.460000000000,,2564,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,63,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,732.725000000000,,2765,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,63,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,786.255000000000,,2967,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,63,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,840.580000000000,,3172,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,895.435000000000,,3379,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,63,6286323,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,63,368294995435,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,63,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,63,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.180000000000,,1012,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,63,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,358.545000000000,,1353,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,452.885000000000,,1709,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,63,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,550.405000000000,,2077,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,650.575000000000,,2455,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,63,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,752.865000000000,,2841,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,857.540000000000,,3236,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,63,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,964.070000000000,,3638,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1072.190000000000,,4046,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,63,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1181.900000000000,,4460,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1293.200000000000,,4880,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,63,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:276881.900843721756,,4934,819199999982781,,,AtLeast +Quantum128BitADPS16,q128,128,16,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:302175.265028041205,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,63,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:327708.581353890011,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:353421.663844306953,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,63,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:379327.487278109940,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:405410.802628134028,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,63,184147497717,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,63,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.255000000000,,967,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,63,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,433.275000000000,,1635,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,623.015000000000,,2351,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,63,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,822.030000000000,,3102,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1028.200000000000,,3880,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,63,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1240.465000000000,,4681,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:302175.265028041205,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,63,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:353421.663844306953,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:405410.802628134028,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,63,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:458005.430069830443,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,63,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:511148.200119090383,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,63,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:564791.250551294303,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,63,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:618851.770673554856,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,63,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:673269.341152011417,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,63,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:728060.854142755736,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,63,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:783154.896462182980,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,63,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:838549.494016254437,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,63,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:894196.073930538027,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,63,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:950086.019623570726,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,63,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.860000000000,,924,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,63,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,597.045000000000,,2253,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,63,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,986.330000000000,,3722,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,63,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:302175.265028041205,,4934,3276799999982217,,,AtLeast +Quantum128BitADPS16,q128,512,5,63,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:405410.802628134028,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,63,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:511148.200119090383,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,63,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:618851.770673554856,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,63,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:728060.854142755736,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,63,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:838549.494016254437,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,63,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:950086.019623570726,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,63,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1062510.642927579582,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,63,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1175722.819925603224,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,63,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1289648.302725035232,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,63,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1404210.397774125449,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,63,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1519261.183962690411,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,63,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1634866.196069071302,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,63,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1750867.978539227974,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,63,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1867317.578576199012,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,63,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1984154.588454192504,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,63,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2101336.354654236697,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,127,678,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,127,2778739,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,127,1153448877,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,127,170886860493,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,127,6400000000000,320,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.885000000000,,509,0,,,AtLeast +Quantum128BitADPS16,q128,64,6,127,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,173.575000000000,,655,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,127,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.590000000000,,806,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,127,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,255.195000000000,,963,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,127,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.860000000000,,1124,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,127,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.585000000000,,1289,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,127,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,386.105000000000,,1457,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,431.420000000000,,1628,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,127,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,477.795000000000,,1803,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,127,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,524.700000000000,,1980,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,127,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,572.135000000000,,2159,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,620.365000000000,,2341,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,127,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,669.125000000000,,2525,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,127,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,718.415000000000,,2711,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,127,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,768.235000000000,,2899,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,818.320000000000,,3088,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,127,1389369,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,127,85443430246,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,127,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.625000000000,,625,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,127,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.800000000000,,920,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,127,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,326.745000000000,,1233,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,413.135000000000,,1559,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,127,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,502.705000000000,,1897,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,594.660000000000,,2244,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,127,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,688.735000000000,,2599,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,784.930000000000,,2962,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,127,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,882.715000000000,,3331,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,982.355000000000,,3707,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,127,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1083.320000000000,,4088,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1185.345000000000,,4473,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,127,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1288.960000000000,,4864,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:284189.454124008596,,4934,819199999982217,,,AtLeast +Quantum128BitADPS16,q128,128,17,127,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:309168.520638720307,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334344.547199582565,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,127,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:359727.474370694661,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385301.041720008361,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,127,42721715123,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,127,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.465000000000,,881,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,127,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.910000000000,,1494,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,570.280000000000,,2152,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,127,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.395000000000,,2843,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,943.135000000000,,3559,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,127,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1138.440000000000,,4296,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:284189.454124008596,,4934,1638399999982217,,,AtLeast +Quantum128BitADPS16,q128,256,9,127,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:334344.547199582565,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385301.041720008361,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,127,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:436914.606541314279,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,127,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:489119.804375020787,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,127,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:541862.704567912500,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,127,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:595057.462212811923,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,127,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:648640.623761568917,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,127,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:702624.024346458609,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,127,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:756935.239379113191,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,127,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:811569.260551203974,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,127,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:866476.503583535319,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,127,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:921646.329085118254,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,127,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.395000000000,,843,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,127,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,547.225000000000,,2065,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,127,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,906.035000000000,,3419,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,127,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1286.840000000000,,4856,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,127,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:385301.041720008361,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,127,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:489119.804375020787,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,127,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:595057.462212811923,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,127,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:702624.024346458609,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,127,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:811569.260551203974,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,127,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:921646.329085118254,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,127,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1032683.305053917458,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,127,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1144569.530407291139,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,127,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1257222.666014526738,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,127,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1370559.949895294383,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,127,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1484430.426725120516,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,127,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1598892.551449003629,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,127,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1713787.857108140597,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,127,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1829162.333881753264,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,127,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1944953.551234523300,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,127,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2061116.832837952534,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,255,113,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,2,255,611125,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,255,264154934,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,255,39825501710,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,255,3166993892249,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,255,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,255,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.510000000000,,734,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,255,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.405000000000,,877,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,255,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.625000000000,,1025,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,255,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,311.905000000000,,1177,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,255,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,352.715000000000,,1331,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.585000000000,,1489,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,255,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,436.985000000000,,1649,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,255,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,480.180000000000,,1812,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,255,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,523.905000000000,,1977,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,568.160000000000,,2144,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,255,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,613.210000000000,,2314,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,255,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,658.525000000000,,2485,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,255,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,704.370000000000,,2658,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,750.480000000000,,2832,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,255,305562,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,255,19912750855,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,255,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.520000000000,,568,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,255,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,222.600000000000,,840,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,255,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,298.655000000000,,1127,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.420000000000,,1428,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,255,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,460.570000000000,,1738,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,545.370000000000,,2058,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,255,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,632.025000000000,,2385,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,720.800000000000,,2720,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,255,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,810.900000000000,,3060,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,902.855000000000,,3407,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,255,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,995.870000000000,,3758,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1090.210000000000,,4114,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,255,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1185.610000000000,,4474,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1282.335000000000,,4839,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,255,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:290733.606782384682,,4934,819199999981669,,,AtLeast +Quantum128BitADPS16,q128,128,18,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:315375.623235916661,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,255,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:340238.619662915706,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365305.329962084652,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,255,9956375427,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,255,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.060000000000,,804,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,255,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,363.050000000000,,1370,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,523.640000000000,,1976,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,255,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,692.445000000000,,2613,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,867.610000000000,,3274,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,255,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1048.340000000000,,3956,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1233.310000000000,,4654,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,255,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:315375.623235916661,,4934,1638399999981138,,,AtLeast +Quantum128BitADPS16,q128,256,10,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365305.329962084652,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,255,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:415943.396095756441,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,255,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:467216.338998132676,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,255,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:519064.194003447250,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,255,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:571398.099198272335,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,255,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:624151.584028207813,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,255,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:677331.455281778355,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,255,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:730864.282701865770,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,255,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:784742.040973891388,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,255,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:838914.140149909421,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,255,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:893367.929501430597,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,255,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,204.315000000000,,771,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,255,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,503.235000000000,,1899,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,255,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,834.485000000000,,3149,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,255,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1186.670000000000,,4478,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,255,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:365305.329962084652,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,255,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:467216.338998132676,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,255,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:571398.099198272335,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,255,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:677331.455281778355,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,255,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:784742.040973891388,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,255,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:893367.929501430597,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,255,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1003025.127945110900,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,255,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1113592.921567121055,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,255,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1224980.925886747427,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,255,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1337100.344911160180,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,255,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1449797.206309635192,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,255,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1563122.925345920259,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,255,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1676918.029392462224,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,255,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1791223.480284732766,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,255,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1905974.836149913259,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,255,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:2021125.409322005231,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,511,17,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.850000000000,126.405000000000,490,0,477,0,Exact +Quantum128BitADPS16,q128,64,2,511,132654,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,511,60315145,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,511,9280294265,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,511,746377056676,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,511,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.365000000000,,541,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,511,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.285000000000,,669,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,511,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.530000000000,,802,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,511,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.570000000000,,938,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,511,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,511,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,323.300000000000,,1220,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.725000000000,,1365,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,511,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,400.945000000000,,1513,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,511,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.695000000000,,1663,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,511,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,480.975000000000,,1815,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,522.050000000000,,1970,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,511,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,563.390000000000,,2126,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,511,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,605.260000000000,,2284,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,511,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,647.395000000000,,2443,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,690.325000000000,,2605,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,511,66327,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,511,4640147132,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,511,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.270000000000,,518,0,,,AtLeast +Quantum128BitADPS16,q128,128,4,511,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,203.520000000000,,768,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,511,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.745000000000,,1033,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,347.150000000000,,1310,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,511,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.205000000000,,1597,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,501.645000000000,,1893,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,511,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,581.675000000000,,2195,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,663.560000000000,,2504,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,511,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,747.035000000000,,2819,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,831.835000000000,,3139,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,511,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,917.960000000000,,3464,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1005.145000000000,,3793,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,511,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1093.655000000000,,4127,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1182.960000000000,,4464,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,511,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1273.325000000000,,4805,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:296460.318394385453,,4934,819199999981138,,,AtLeast +Quantum128BitADPS16,q128,128,19,511,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:320804.853755319142,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:345366.139727867150,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,511,2320073566,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,511,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,511,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.635000000000,,1259,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.035000000000,,1819,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,511,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.385000000000,,2409,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,800.565000000000,,3021,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,511,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,967.780000000000,,3652,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1139.235000000000,,4299,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,511,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:10389.259173406230,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,256,10,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:345366.139727867150,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,511,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:395031.464598613558,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,511,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:445374.787758097169,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,511,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:496330.127584181668,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,511,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:547805.613685275428,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,511,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:599731.767028845847,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,511,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:652110.380273197428,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,511,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:704867.020335167996,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,511,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:757990.653422046336,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,511,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:811429.686759842793,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,511,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:865169.463967979886,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,511,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,187.355000000000,,707,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,511,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,463.750000000000,,1750,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,511,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,770.885000000000,,2909,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,511,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1097.365000000000,,4141,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,511,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:345366.139727867150,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,511,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:445374.787758097169,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,511,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:547805.613685275428,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,511,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:652110.380273197428,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,511,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:757990.653422046336,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,511,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:865169.463967979886,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,511,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:973450.785079184221,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,511,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1082703.873757406836,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,511,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1192830.322913582204,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,511,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1303735.319598615635,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,511,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1415261.883003650699,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,511,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1527454.408610126702,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,511,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1640152.420964446617,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,511,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1753391.867771861609,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,511,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1867106.301507464610,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,511,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1981247.028853168944,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,1023,13,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,120.575000000000,512,0,455,0,Exact +Quantum128BitADPS16,q128,64,2,1023,28188,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,1023,13683132,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,1023,2156497684,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,1023,175684048442,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,1023,6400000000000,384,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.910000000000,,494,0,,,AtLeast +Quantum128BitADPS16,q128,64,7,1023,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,1023,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.510000000000,,734,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,1023,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.900000000000,,860,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,1023,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.085000000000,,989,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,1023,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.800000000000,,1120,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,1023,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,332.575000000000,,1255,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,1023,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,368.615000000000,,1391,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,1023,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.450000000000,,1530,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,1023,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.815000000000,,1671,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,480.710000000000,,1814,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,1023,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,518.870000000000,,1958,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,1023,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,557.560000000000,,2104,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,1023,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,596.780000000000,,2252,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,636.265000000000,,2401,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,1023,14094,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,1023,1078248842,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,1023,4553793444862,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,1023,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.560000000000,,704,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,1023,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,251.750000000000,,950,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,1023,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,319.590000000000,,1206,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,1023,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,389.815000000000,,1471,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,462.425000000000,,1745,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,1023,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,536.625000000000,,2025,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,612.415000000000,,2311,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,1023,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,689.795000000000,,2603,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,768.500000000000,,2900,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,1023,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,848.265000000000,,3201,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,929.355000000000,,3507,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,1023,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1011.240000000000,,3816,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1094.185000000000,,4129,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,1023,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1177.925000000000,,4445,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1262.460000000000,,4764,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,1023,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:301398.510980800900,,4934,819199999980621,,,AtLeast +Quantum128BitADPS16,q128,128,20,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:325455.085833526682,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,1023,539124421,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,1023,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.140000000000,,676,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,1023,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,307.135000000000,,1159,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,444.935000000000,,1679,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,1023,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,589.890000000000,,2226,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,740.410000000000,,2794,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,1023,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,895.435000000000,,3379,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1054.700000000000,,3980,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,1023,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1217.410000000000,,4594,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:325455.085833526682,,4934,1638399999980117,,,AtLeast +Quantum128BitADPS16,q128,256,11,1023,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:374149.042083221371,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,1023,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:423564.057293081773,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,1023,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:473628.141374711005,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,1023,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:524246.419703625259,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,1023,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:575346.409014429431,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,1023,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:626924.894910683623,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,1023,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:678906.442898276960,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,1023,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:731277.014951651916,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,1023,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:783984.016885870020,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,1023,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:837010.789498456055,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,1023,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.985000000000,,649,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,1023,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,428.505000000000,,1617,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,1023,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,713.645000000000,,2693,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,1023,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1017.070000000000,,3838,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,1023,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:325455.085833526682,,4934,3276799999980117,,,AtLeast +Quantum128BitADPS16,q128,512,6,1023,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:423564.057293081773,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,1023,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:524246.419703625259,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,1023,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:626924.894910683623,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,1023,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:731277.014951651916,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,1023,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:837010.789498456055,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,1023,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:943918.174787895987,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,1023,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1051858.413712231908,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,1023,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1160725.087894807337,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,1023,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1270417.375920834485,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,1023,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1380775.292748610955,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,1023,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1491836.223982934374,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,1023,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1603438.692759258440,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,1023,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1715613.639728090726,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,1023,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1828292.614542626543,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,1023,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1941424.921062881825,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,2047,11,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,147.340000000000,117.130000000000,556,0,442,0,Exact +Quantum128BitADPS16,q128,64,2,2047,5798,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,2047,3075102,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,2047,498819753,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,2047,41242425485,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,2047,2157683633817,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,2047,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,2047,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,178.610000000000,,674,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,2047,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.350000000000,,790,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,2047,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.150000000000,,910,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,2047,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.480000000000,,1032,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,2047,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.340000000000,,1156,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,2047,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,339.995000000000,,1283,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,2047,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.915000000000,,1411,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,2047,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,408.630000000000,,1542,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,443.610000000000,,1674,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,2047,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,479.120000000000,,1808,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,2047,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.160000000000,,1944,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,2047,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,551.465000000000,,2081,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,588.035000000000,,2219,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,2047,2899,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,2047,249409876,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,2047,1078841816908,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,2047,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.455000000000,,647,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,2047,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.610000000000,,874,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,2047,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.680000000000,,1112,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,2047,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,359.870000000000,,1358,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.180000000000,,1612,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,2047,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,496.080000000000,,1872,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,566.570000000000,,2138,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,2047,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.385000000000,,2409,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,711.525000000000,,2685,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,2047,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,785.725000000000,,2965,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,860.985000000000,,3249,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,2047,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,937.040000000000,,3536,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1014.155000000000,,3827,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,2047,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1092.065000000000,,4121,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1170.770000000000,,4418,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,2047,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1250.270000000000,,4718,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:305558.069171181298,,4934,819199999980117,,,AtLeast +Quantum128BitADPS16,q128,256,1,2047,124704938,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,2047,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.830000000000,,622,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,2047,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,283.550000000000,,1070,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.545000000000,,1553,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,2047,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,546.165000000000,,2061,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,686.085000000000,,2589,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,2047,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,830.510000000000,,3134,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,978.645000000000,,3693,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,2047,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1129.960000000000,,4264,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1284.190000000000,,4846,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,2047,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:353281.341609481664,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,2047,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:401768.703323614376,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,2047,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:450942.159993216861,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,2047,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:500703.834878701135,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,2047,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:550978.242599750869,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,2047,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:601757.165235139895,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,2047,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:652964.167585800053,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,2047,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:704582.209511301829,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,2047,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:756557.696121749585,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,2047,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:808871.966804753640,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,2047,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.470000000000,,598,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,2047,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,396.705000000000,,1497,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,2047,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,661.970000000000,,2498,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,2047,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,944.725000000000,,3565,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,2047,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1240.200000000000,,4680,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,2047,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:401768.703323614376,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,2047,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:500703.834878701135,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,2047,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:601757.165235139895,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,2047,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:704582.209511301829,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,2047,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:808871.966804753640,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,2047,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:914406.384892808157,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,2047,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1021034.699618152343,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,2047,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1128642.486964472104,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,2047,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1237122.921287235338,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,2047,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1346313.015429868363,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,2047,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1456243.150062467670,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,2047,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1566750.847615529550,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,2047,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1677862.045214775251,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,2047,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1789506.291103485273,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,2047,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1901630.887731761672,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,4095,10,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,141.510000000000,104.940000000000,534,0,396,0,Exact +Quantum128BitADPS16,q128,64,2,4095,1132,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,4095,682455,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,4095,114683020,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,4095,9646164350,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,4095,509901833600,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,4095,6400000000000,448,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q128,64,8,4095,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.300000000000,,620,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,4095,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,192.920000000000,,728,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,4095,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,222.070000000000,,838,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,4095,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,252.280000000000,,952,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,4095,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.755000000000,,1067,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,4095,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.025000000000,,1185,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,4095,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,4095,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,377.625000000000,,1425,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,410.220000000000,,1548,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,4095,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,443.345000000000,,1673,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,4095,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,476.735000000000,,1799,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,4095,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,510.390000000000,,1926,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,544.575000000000,,2055,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,4095,566,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,4095,57341510,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,4095,254950916800,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,4095,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.940000000000,,596,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,4095,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.855000000000,,807,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,4095,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.155000000000,,1027,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,4095,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,332.840000000000,,1256,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.380000000000,,1492,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,4095,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,459.510000000000,,1734,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,525.230000000000,,1982,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,4095,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,592.010000000000,,2234,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,660.115000000000,,2491,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,4095,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,729.280000000000,,2752,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,799.240000000000,,3016,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,4095,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,870.260000000000,,3284,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,942.075000000000,,3555,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,4095,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1014.685000000000,,3829,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1088.090000000000,,4106,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,4095,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1162.025000000000,,4385,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1236.755000000000,,4667,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,4095,28670755,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,4095,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.845000000000,,573,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,4095,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.350000000000,,990,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,381.335000000000,,1439,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,4095,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,506.680000000000,,1912,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,637.060000000000,,2404,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,4095,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,771.680000000000,,2912,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,909.745000000000,,3433,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,4095,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1050.990000000000,,3966,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1194.885000000000,,4509,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,4095,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:332420.994066775893,,4934,1638399999979147,,,AtLeast +Quantum128BitADPS16,q128,256,12,4095,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:379981.029151593335,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,4095,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:428264.172229976219,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,4095,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:477169.545504247479,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,4095,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:526618.662536955555,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,4095,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:576598.303645090200,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,4095,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:627031.033277233364,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,4095,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:677896.810235907440,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,4095,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:729141.039278867072,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,4095,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780743.059089023620,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,4095,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.015000000000,,551,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,4095,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,367.820000000000,,1388,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,4095,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,615.330000000000,,2322,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,4095,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,879.005000000000,,3317,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,4095,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1155.135000000000,,4359,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,4095,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:379981.029151593335,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,4095,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:477169.545504247479,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,4095,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:576598.303645090200,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,4095,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:677896.810235907440,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,4095,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780743.059089023620,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,4095,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:884904.993753557326,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,4095,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:990221.846548700705,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,4095,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1096571.190639343113,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,4095,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1203840.198266855674,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,4095,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1311862.881217616610,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,4095,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1420662.617695275228,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,4095,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1530075.929777978687,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,4095,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1640123.752829700476,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,4095,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1750733.634389022365,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,4095,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1861850.876201347448,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,8191,9,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,151.050000000000,98.845000000000,570,0,373,0,Exact +Quantum128BitADPS16,q128,64,2,8191,200,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,8191,148954,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,8191,26167095,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,8191,2245870358,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,8191,120124466821,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,8191,4546980936192,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,8191,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.315000000000,,571,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,8191,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.815000000000,,671,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,8191,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.110000000000,,774,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,8191,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.200000000000,,880,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,8191,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,261.555000000000,,987,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,8191,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.440000000000,,1096,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,8191,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.120000000000,,1208,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,8191,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,350.065000000000,,1321,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,380.275000000000,,1435,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,8191,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,411.015000000000,,1551,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,8191,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.020000000000,,1668,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,8191,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,473.555000000000,,1787,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,505.355000000000,,1907,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,8191,100,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,8191,13083547,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,8191,60062233410,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,8191,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,145.750000000000,,550,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,8191,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.690000000000,,746,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,8191,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,252.015000000000,,951,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,8191,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,308.460000000000,,1164,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,366.760000000000,,1384,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,8191,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.650000000000,,1610,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,487.865000000000,,1841,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,8191,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,550.140000000000,,2076,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,613.740000000000,,2316,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,8191,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,678.135000000000,,2559,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,743.590000000000,,2806,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,8191,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,809.840000000000,,3056,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,876.885000000000,,3309,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,8191,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,944.460000000000,,3564,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1013.095000000000,,3823,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,8191,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1082.260000000000,,4084,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1151.955000000000,,4347,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,8191,6541773,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,8191,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.185000000000,,529,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,8191,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.005000000000,,917,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,354.040000000000,,1336,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,8191,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,470.905000000000,,1777,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,592.805000000000,,2237,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,8191,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,718.415000000000,,2711,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,847.470000000000,,3198,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,8191,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,979.440000000000,,3696,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1114.060000000000,,4204,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,8191,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1251.065000000000,,4721,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,8191,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358197.192769006884,,4934,1638399999978220,,,AtLeast +Quantum128BitADPS16,q128,256,13,8191,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:405590.179079898517,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,8191,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:453639.401576112199,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,8191,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:502263.373291246069,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,8191,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:551443.873661533115,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,8191,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:601102.466959391255,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,8191,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:651216.111458914820,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,8191,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:701729.211741716135,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,8191,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:752619.106138421688,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,8191,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.885000000000,,509,0,,,AtLeast +Quantum128BitADPS16,q128,512,2,8191,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.850000000000,,1290,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,8191,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,572.930000000000,,2162,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,8191,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,819.645000000000,,3093,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,8191,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1077.755000000000,,4067,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,8191,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:358197.192769006884,,4934,3276799999978220,,,AtLeast +Quantum128BitADPS16,q128,512,7,8191,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:453639.401576112199,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,8191,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:551443.873661533115,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,8191,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:651216.111458914820,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,8191,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:752619.106138421688,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,8191,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:855408.799135462730,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,8191,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:959414.421007805038,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,8191,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1064505.543511198368,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,8191,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1170563.337830159115,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,8191,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1277418.815222636797,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,8191,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1385088.352659284836,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,8191,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1493407.472042107023,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,8191,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1602392.107854365138,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,8191,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1711967.807282355381,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,8191,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1822077.871719195042,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,16383,8,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.095393191264,101.495000000000,512,0,383,0,Exact +Quantum128BitADPS16,q128,64,2,16383,27,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,127.995000000000,486,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,16383,31782,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,16383,5914665,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,16383,520050025,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,16383,28195272262,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,16383,1076667159828,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,16383,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.655000000000,,527,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,16383,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.565000000000,,621,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,16383,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,189.740000000000,,716,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,16383,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,215.710000000000,,814,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,16383,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.475000000000,,915,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,16383,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,269.505000000000,,1017,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,16383,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.800000000000,,1120,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,16383,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.890000000000,,1226,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,352.980000000000,,1332,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,16383,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,381.865000000000,,1441,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,16383,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,410.750000000000,,1550,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,16383,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.165000000000,,1661,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,469.845000000000,,1773,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,16383,13,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.995000000000,491,0,483,0,Exact +Quantum128BitADPS16,q128,128,2,16383,2957332,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,16383,14097636131,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,16383,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.620000000000,,508,0,,,AtLeast +Quantum128BitADPS16,q128,128,5,16383,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.850000000000,,690,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,16383,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.730000000000,,882,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,16383,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.465000000000,,1081,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,340.790000000000,,1286,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,16383,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,396.705000000000,,1497,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.945000000000,,1713,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,16383,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,512.245000000000,,1933,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,571.340000000000,,2156,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,16383,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,631.760000000000,,2384,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,692.710000000000,,2614,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,16383,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,754.720000000000,,2848,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,817.525000000000,,3085,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,16383,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,880.860000000000,,3324,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,944.990000000000,,3566,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,16383,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1009.650000000000,,3810,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1075.105000000000,,4057,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,16383,1478666,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,16383,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.585000000000,,489,0,,,AtLeast +Quantum128BitADPS16,q128,256,3,16383,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.515000000000,,851,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.130000000000,,1242,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,16383,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.575000000000,,1655,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,552.525000000000,,2085,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,16383,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,670.185000000000,,2529,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,790.760000000000,,2984,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,16383,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,914.515000000000,,3451,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.390000000000,,3926,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,16383,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1168.650000000000,,4410,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,16383,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1298.765000000000,,4901,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,16383,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:382918.182688057364,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,16383,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:430111.329801813292,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,16383,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:477910.228864771605,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,16383,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:526291.658872563858,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,16383,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:575176.184009520803,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,16383,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:624537.762285533361,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,16383,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:674319.798194150324,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,16383,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:724497.629889871925,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,16383,3921318963744,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,16383,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,318.000000000000,,1200,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,16383,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,534.505000000000,,2017,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,16383,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,765.320000000000,,2888,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,16383,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1007.265000000000,,3801,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,16383,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1257.955000000000,,4747,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,16383,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:430111.329801813292,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,16383,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:526291.658872563858,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,16383,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:624537.762285533361,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,16383,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:724497.629889871925,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,16383,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:825915.202064230340,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,16383,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:928609.708485744195,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,16383,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1032442.720205657301,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,16383,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1137289.407880107407,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,16383,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1242977.782502854709,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,16383,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1349517.220428109635,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,16383,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1456742.243469813373,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,16383,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1564663.785670911195,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,16383,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1673205.394041573396,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,16383,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1782308.369798791595,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,32767,7,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,841.166841113966,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q128,64,2,32767,20,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,126.140000000000,507,0,476,0,Exact +Quantum128BitADPS16,q128,64,3,32767,6565,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,32767,1321303,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,32767,119642672,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,32767,6589641647,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,32767,254150464784,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,32767,6400000000000,512,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q128,64,9,32767,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.375000000000,,575,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,32767,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.960000000000,,664,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,32767,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.075000000000,,755,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,32767,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,224.985000000000,,849,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,32767,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.160000000000,,944,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,32767,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,275.865000000000,,1041,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,32767,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.835000000000,,1139,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,32767,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.335000000000,,1239,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,32767,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.100000000000,,1340,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,32767,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.395000000000,,1443,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,32767,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,409.690000000000,,1546,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.515000000000,,1651,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,32767,10,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,120.575000000000,507,0,455,0,Exact +Quantum128BitADPS16,q128,128,2,32767,660651,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,32767,3294820823,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,32767,3728158373596,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,32767,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.600000000000,,640,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,32767,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,217.035000000000,,819,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,32767,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.325000000000,,1005,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,32767,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,317.205000000000,,1197,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,32767,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.410000000000,,1394,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,422.940000000000,,1596,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,32767,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,477.530000000000,,1802,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,533.180000000000,,2012,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,32767,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,589.360000000000,,2224,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,646.865000000000,,2441,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,32767,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,704.900000000000,,2660,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,763.465000000000,,2881,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,32767,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,822.825000000000,,3105,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,882.980000000000,,3332,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,32767,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,943.665000000000,,3561,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1004.880000000000,,3792,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,32767,330325,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,32767,1864079186798,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,32767,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.615000000000,,791,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,32767,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.605000000000,,1157,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,32767,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,409.160000000000,,1544,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.690000000000,,1946,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,32767,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.930000000000,,2362,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,739.350000000000,,2790,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,32767,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.155000000000,,3227,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,973.345000000000,,3673,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,32767,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1093.655000000000,,4127,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,32767,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1215.820000000000,,4588,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,32767,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:360247.184539381531,,4934,1638399999977330,,,AtLeast +Quantum128BitADPS16,q128,256,14,32767,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:406584.293962318916,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,32767,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:453558.156700654537,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,32767,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:501140.551528774318,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,32767,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:549251.042586840806,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,32767,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:597860.587752613472,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,32767,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:646911.591475611902,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,32767,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:696377.391822276637,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,32767,932039593399,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,32767,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,296.535000000000,,1119,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,32767,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,499.260000000000,,1884,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,32767,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,716.030000000000,,2702,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,32767,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,943.135000000000,,3559,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,32767,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1178.455000000000,,4447,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,32767,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:406584.293962318916,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,32767,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:501140.551528774318,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,32767,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:597860.587752613472,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,32767,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:696377.391822276637,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,32767,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:796422.903588059358,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,32767,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:897806.352286801441,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,32767,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1000381.308617510367,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,32767,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1104016.942972146207,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,32767,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1208538.266212380491,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,32767,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1313947.654384216527,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,32767,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1420078.629257566063,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,32767,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1526937.124655226711,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,32767,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1634444.687499309424,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,32767,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1742540.618918746244,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,65535,7,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,434.126853056119,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q128,64,2,65535,18,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,117.660000000000,489,0,444,0,Exact +Quantum128BitADPS16,q128,64,3,65535,1289,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,65535,290770,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,65535,27311705,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,65535,1532463092,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,65535,59780727921,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,65535,1767519282704,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,65535,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,65535,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.240000000000,,616,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,65535,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.030000000000,,702,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,65535,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.085000000000,,789,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,65535,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.670000000000,,878,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,65535,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.785000000000,,969,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,65535,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,281.165000000000,,1061,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,65535,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,305.810000000000,,1154,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,65535,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,330.985000000000,,1249,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,65535,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,356.425000000000,,1345,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,65535,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,408.100000000000,,1540,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,65535,9,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,109.975000000000,489,0,415,0,Exact +Quantum128BitADPS16,q128,128,2,65535,145385,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,65535,766231546,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,65535,883759641352,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,65535,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,65535,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.930000000000,,762,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,65535,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.305000000000,,937,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,65535,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.740000000000,,1116,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,65535,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,344.765000000000,,1301,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.850000000000,,1490,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,65535,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,445.995000000000,,1683,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,497.935000000000,,1879,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,65535,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,550.935000000000,,2079,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.730000000000,,2282,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,65535,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,659.055000000000,,2487,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,714.175000000000,,2695,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,65535,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,770.090000000000,,2906,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,826.535000000000,,3119,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,65535,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,883.245000000000,,3333,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,940.750000000000,,3550,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,65535,72692,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,65535,441879820676,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,65535,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.305000000000,,737,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,65535,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.200000000000,,1080,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,65535,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.300000000000,,1820,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,65535,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,585.650000000000,,2210,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,692.180000000000,,2612,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,65535,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,800.830000000000,,3022,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,911.865000000000,,3441,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,65535,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1025.020000000000,,3868,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,65535,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1139.765000000000,,4301,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,65535,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1256.365000000000,,4741,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,65535,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:383057.776055359805,,4934,1638399999976474,,,AtLeast +Quantum128BitADPS16,q128,256,15,65535,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:429206.620631016325,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,65535,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:475989.997869591345,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,65535,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:523326.471888563829,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,65535,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:571184.000499595539,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,65535,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:619503.988130152924,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,65535,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:668257.772802648018,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,65535,220939910338,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,65535,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.925000000000,,1045,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,65535,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,467.195000000000,,1763,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,65535,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,670.715000000000,,2531,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,65535,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,884.305000000000,,3337,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,65535,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1105.580000000000,,4172,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,65535,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:383057.776055359805,,4934,3276799999976474,,,AtLeast +Quantum128BitADPS16,q128,512,8,65535,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:475989.997869591345,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,65535,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:571184.000499595539,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,65535,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:668257.772802648018,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,65535,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:766931.254364834283,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,65535,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:867003.674202851136,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,65535,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:968320.602839591797,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,65535,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1070745.210534930695,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,65535,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1174099.508084496483,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,65535,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1278378.871380192460,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,65535,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1383415.822169916471,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,65535,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1489211.294166393811,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,65535,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1595684.834247707622,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,65535,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1702773.743498761673,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,131071,7,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.473216749179,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q128,64,2,131071,16,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,116.335000000000,512,0,439,0,Exact +Quantum128BitADPS16,q128,64,3,131071,231,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,131071,62729,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,131071,6175972,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,131071,354323147,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,131071,14004808455,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,131071,417721125436,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,131071,6400000000000,576,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.175000000000,,495,0,,,AtLeast +Quantum128BitADPS16,q128,64,10,131071,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.845000000000,,573,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,131071,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,173.045000000000,,653,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,131071,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,194.775000000000,,735,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,131071,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.770000000000,,818,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,131071,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,239.295000000000,,903,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,131071,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.350000000000,,990,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,131071,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,131071,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,308.990000000000,,1166,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,131071,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,332.840000000000,,1256,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,131071,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,356.955000000000,,1347,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,381.335000000000,,1439,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,131071,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.410000000000,512,0,394,0,Exact +Quantum128BitADPS16,q128,128,2,131071,31364,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,131071,177161573,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,131071,208860562718,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,131071,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.545000000000,,553,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,131071,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,131071,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.610000000000,,874,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,131071,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.130000000000,,1042,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,131071,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.240000000000,,1216,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.145000000000,,1393,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,131071,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.110000000000,,1574,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,466.135000000000,,1759,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,131071,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.690000000000,,1946,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,566.305000000000,,2137,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,131071,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,617.450000000000,,2330,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,669.125000000000,,2525,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,131071,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,721.595000000000,,2723,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,774.595000000000,,2923,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,131071,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,828.125000000000,,3125,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,882.185000000000,,3329,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,131071,15682,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,131071,104430281359,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,131071,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.055000000000,,687,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,131071,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,267.385000000000,,1009,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,131071,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,357.485000000000,,1349,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,451.560000000000,,1704,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,131071,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,548.815000000000,,2071,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,648.985000000000,,2449,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,131071,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,751.275000000000,,2835,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,855.685000000000,,3229,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,131071,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,962.215000000000,,3631,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,131071,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1070.070000000000,,4038,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,131071,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1179.780000000000,,4452,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,131071,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1290.815000000000,,4871,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,131071,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:404855.352599864535,,4934,1638399999975649,,,AtLeast +Quantum128BitADPS16,q128,256,16,131071,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:450839.721043265134,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,131071,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:497402.186542718729,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,131071,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:544507.706876446842,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,131071,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:592096.686460875673,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,131071,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:640138.463296375703,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,131071,52215140679,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,131071,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.905000000000,,977,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,131071,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,437.780000000000,,1652,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,131071,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,629.375000000000,,2375,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,131071,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,830.245000000000,,3133,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,131071,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1038.800000000000,,3920,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,131071,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1253.185000000000,,4729,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,131071,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:450839.721043265134,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,131071,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:544507.706876446842,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,131071,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:640138.463296375703,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,131071,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:737439.929756936501,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,131071,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:836201.335164755932,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,131071,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:936260.249954670900,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,131071,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1037473.844320513774,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,131071,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1139661.129024892347,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,131071,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1242810.479882660788,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,131071,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1346753.418630709639,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,131071,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1451485.878926729551,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,131071,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1556925.407626789296,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,131071,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1663007.305793778272,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,262143,6,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,739.428079218297,78.175000000000,384,0,295,0,Exact +Quantum128BitADPS16,q128,64,2,262143,14,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,127.995000000000,639,0,483,0,Exact +Quantum128BitADPS16,q128,64,3,262143,33,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,127.995000000000,485,0,483,0,Exact +Quantum128BitADPS16,q128,64,4,262143,13164,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,262143,1380285,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,262143,81364769,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,262143,3265730731,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,262143,98383524934,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,262143,2362764747955,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,262143,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,141.245000000000,,533,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,262143,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.120000000000,,608,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,262143,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,181.525000000000,,685,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,262143,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,262143,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.395000000000,,843,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,262143,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.860000000000,,924,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,262143,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.590000000000,,1006,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,262143,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,288.850000000000,,1090,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,262143,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,311.110000000000,,1174,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,262143,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,333.900000000000,,1260,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,356.690000000000,,1346,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,262143,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.335000000000,106.530000000000,639,0,402,0,Exact +Quantum128BitADPS16,q128,128,2,262143,6582,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,262143,40682384,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,262143,49191762467,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,262143,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q128,128,6,262143,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.695000000000,,663,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,262143,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.240000000000,,816,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,262143,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.375000000000,,975,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,262143,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.305000000000,,1137,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.560000000000,,1304,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,262143,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,390.875000000000,,1475,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,436.720000000000,,1648,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,262143,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,483.625000000000,,1825,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,531.060000000000,,2004,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,262143,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,579.290000000000,,2186,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,628.050000000000,,2370,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,262143,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,677.340000000000,,2556,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,727.160000000000,,2744,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,262143,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,777.510000000000,,2934,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,828.390000000000,,3126,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,262143,3291,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,262143,24595881233,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,262143,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,262143,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.160000000000,,944,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,262143,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.960000000000,,1264,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,423.470000000000,,1598,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,262143,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,515.160000000000,,1944,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,609.235000000000,,2299,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,262143,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,705.695000000000,,2663,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,804.275000000000,,3035,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,262143,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,904.445000000000,,3413,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,262143,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1006.205000000000,,3797,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,262143,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1109.555000000000,,4187,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,262143,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1214.230000000000,,4582,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,262143,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:215323.529824782367,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,256,16,262143,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425689.582631302415,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,262143,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:471478.043870682362,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,262143,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:517831.560065733502,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,262143,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:564689.535627100151,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,262143,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:612019.308544125059,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,262143,12297940616,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,262143,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.475000000000,,915,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,262143,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,410.750000000000,,1550,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,262143,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,591.480000000000,,2232,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,262143,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,780.955000000000,,2947,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,262143,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,977.320000000000,,3688,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,262143,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1179.780000000000,,4452,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,262143,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:425689.582631302415,,4934,3276799999974850,,,AtLeast +Quantum128BitADPS16,q128,512,9,262143,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:517831.560065733502,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,262143,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:612019.308544125059,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,262143,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:707948.767453916371,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,262143,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:805399.165646678302,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,262143,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:904200.073513220064,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,262143,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1004202.661214353167,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,262143,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1105222.939496174920,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,262143,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1207242.284135014983,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,262143,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1310091.216862260597,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,262143,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1413760.671308085555,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,262143,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1518166.194317550631,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,262143,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1623241.086942538852,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,524287,6,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,388.322466004426,53.530000000000,384,0,202,0,Exact +Quantum128BitADPS16,q128,64,2,524287,13,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,125.345000000000,677,0,473,0,Exact +Quantum128BitADPS16,q128,64,3,524287,26,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,123.755000000000,485,0,467,0,Exact +Quantum128BitADPS16,q128,64,4,524287,2651,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,524287,303909,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,524287,18531648,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,524287,757449250,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,524287,23082108271,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,524287,558761681338,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,524287,6400000000000,640,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.705000000000,,497,0,,,AtLeast +Quantum128BitADPS16,q128,64,11,524287,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.255000000000,,567,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,524287,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.600000000000,,640,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,524287,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.945000000000,,713,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,524287,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,208.820000000000,,788,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,524287,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,228.960000000000,,864,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,524287,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,249.630000000000,,942,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,524287,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,270.300000000000,,1020,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,524287,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,291.500000000000,,1100,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,524287,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.700000000000,,1180,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,524287,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,334.165000000000,,1261,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,524287,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,770.539313881360,125.345000000000,768,0,473,0,Exact +Quantum128BitADPS16,q128,128,2,524287,1325,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,524287,9265824,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,524287,11541054135,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,524287,5605441886634,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,524287,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.035000000000,,619,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,524287,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,202.195000000000,,763,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,524287,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.680000000000,,912,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,524287,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,282.490000000000,,1066,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,524287,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,324.095000000000,,1223,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,524287,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,366.495000000000,,1383,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,409.955000000000,,1547,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,524287,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.945000000000,,1713,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.730000000000,,1882,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,524287,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,544.045000000000,,2053,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,590.155000000000,,2227,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,524287,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,636.530000000000,,2402,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,683.700000000000,,2580,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,524287,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,731.135000000000,,2759,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,779.100000000000,,2940,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,524287,662,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,524287,5770527067,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,524287,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.735000000000,,599,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,524287,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,234.260000000000,,884,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,524287,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.290000000000,,1186,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,397.765000000000,,1501,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,524287,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,484.155000000000,,1827,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,572.930000000000,,2162,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,524287,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,663.825000000000,,2505,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,756.840000000000,,2856,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,524287,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,851.445000000000,,3213,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,524287,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,947.375000000000,,3575,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,524287,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1045.160000000000,,3944,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,524287,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1144.005000000000,,4317,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,524287,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1243.910000000000,,4694,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,524287,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:400539.513427152880,,4934,1638399999974850,,,AtLeast +Quantum128BitADPS16,q128,256,17,524287,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:445553.972535161418,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,524287,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:491155.486660639523,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,524287,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:537282.460210444871,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,524287,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:583900.231168221217,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,524287,2885263533,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,524287,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,227.105000000000,,857,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,524287,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,386.105000000000,,1457,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,524287,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.235000000000,,2099,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,524287,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,735.110000000000,,2774,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,524287,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,920.875000000000,,3475,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,524287,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1111.940000000000,,4196,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,524287,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1435.328436936068,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,512,9,524287,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:491155.486660639523,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,524287,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:583900.231168221217,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,524287,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:678457.686302638613,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,524287,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:774597.080887882039,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,524287,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:872139.985292747151,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,524287,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:970931.569661534857,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,524287,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1070784.844732087338,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,524287,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1171674.186261472525,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,524287,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1273429.115978325251,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,524287,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1376035.567499060184,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,524287,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1479407.087663236307,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,524287,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1583474.977517232532,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,1048575,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1333.575060294309,120.441217818960,320,0,384,0,Exact +Quantum128BitADPS16,q128,64,2,1048575,13,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,96.460000000000,488,0,364,0,Exact +Quantum128BitADPS16,q128,64,3,1048575,23,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,120.310000000000,486,0,454,0,Exact +Quantum128BitADPS16,q128,64,4,1048575,498,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,1048575,65608,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,1048575,4178805,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,1048575,174581777,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,1048575,5391467021,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,1048575,131698080202,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,1048575,2659786302828,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,1048575,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,1048575,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.470000000000,,598,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,1048575,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.755000000000,,667,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,1048575,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.570000000000,,738,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,1048575,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,214.385000000000,,809,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,1048575,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.730000000000,,882,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,1048575,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.340000000000,,956,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,1048575,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,273.215000000000,,1031,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,1048575,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,293.355000000000,,1107,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,1048575,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,313.495000000000,,1183,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,1048575,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,236.394694087883,96.460000000000,768,0,364,0,Exact +Quantum128BitADPS16,q128,128,2,1048575,249,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,1048575,2089402,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,1048575,2695733510,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,1048575,1329893151414,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,1048575,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,153.435000000000,,579,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,1048575,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,189.475000000000,,715,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,1048575,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.575000000000,,855,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,1048575,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,265.000000000000,,1000,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,1048575,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,304.220000000000,,1148,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,1048575,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,344.235000000000,,1299,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,385.045000000000,,1453,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,1048575,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.650000000000,,1610,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,469.050000000000,,1770,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,1048575,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,511.715000000000,,1931,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,555.175000000000,,2095,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,1048575,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,599.165000000000,,2261,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,643.420000000000,,2428,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,1048575,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,688.205000000000,,2597,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,733.520000000000,,2768,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,1048575,124,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,1048575,1347866755,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,1048575,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,1048575,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.685000000000,,829,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,1048575,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.210000000000,,1114,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.915000000000,,1411,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,1048575,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,455.535000000000,,1719,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,539.275000000000,,2035,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,1048575,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,625.135000000000,,2359,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,713.115000000000,,2691,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,1048575,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,802.420000000000,,3028,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,1048575,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,893.315000000000,,3371,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,1048575,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,985.535000000000,,3719,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,1048575,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1078.815000000000,,4071,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,1048575,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1173.685000000000,,4429,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,1048575,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1269.350000000000,,4790,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,1048575,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:419629.936868624238,,4934,1638399999974076,,,AtLeast +Quantum128BitADPS16,q128,256,18,1048575,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:464479.449958365643,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,1048575,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:509875.422502212401,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,1048575,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:555781.192480338039,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,1048575,673933377,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,1048575,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.325000000000,,805,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,1048575,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,363.050000000000,,1370,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,1048575,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,524.170000000000,,1978,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,1048575,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,693.240000000000,,2616,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,1048575,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,868.670000000000,,3278,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,1048575,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1049.400000000000,,3960,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,1048575,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1234.900000000000,,4660,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,1048575,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:464479.449958365643,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,1048575,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:555781.192480338039,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,1048575,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:648966.645727057708,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,1048575,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:743795.038508544560,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,1048575,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:840079.941182573792,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,1048575,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:937660.523885191185,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,1048575,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1036346.797350111301,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,1048575,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1136106.137324770913,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,1048575,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1236767.065536429407,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,1048575,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1338310.515594622120,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,1048575,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1440648.034336155513,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,1048575,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1543708.922804657370,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,2097151,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1014.802675650317,67.045000000000,320,0,253,0,Exact +Quantum128BitADPS16,q128,64,2,2097151,12,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,97.520000000000,548,0,368,0,Exact +Quantum128BitADPS16,q128,64,3,2097151,21,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,116.600000000000,485,0,440,0,Exact +Quantum128BitADPS16,q128,64,4,2097151,81,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,5,2097151,13782,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,2097151,930631,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,2097151,39939876,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,2097151,1252920730,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,2097151,30923658615,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,2097151,629168057406,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,2097151,6400000000000,704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.440000000000,,496,0,,,AtLeast +Quantum128BitADPS16,q128,64,12,2097151,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,2097151,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.625000000000,,625,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,2097151,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.115000000000,,691,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,2097151,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.135000000000,,759,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,2097151,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,2097151,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.705000000000,,897,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,2097151,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,256.520000000000,,968,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,2097151,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,275.335000000000,,1039,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,2097151,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.415000000000,,1111,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,2097151,6,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.220000000000,76.320000000000,548,0,288,0,Exact +Quantum128BitADPS16,q128,128,2,2097151,40,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,3,2097151,465315,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,2097151,626460365,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,2097151,314584028703,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,2097151,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.630000000000,,542,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,2097151,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.550000000000,,670,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,2097151,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,212.795000000000,,803,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,2097151,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,248.835000000000,,939,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,2097151,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.935000000000,,1079,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,2097151,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,323.830000000000,,1222,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,362.255000000000,,1367,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,2097151,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,401.740000000000,,1516,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,441.490000000000,,1666,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,2097151,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.035000000000,,1819,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,522.845000000000,,1973,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,2097151,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,564.450000000000,,2130,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,606.320000000000,,2288,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,2097151,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,648.720000000000,,2448,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,691.650000000000,,2610,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,2097151,20,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,2,2097151,313230182,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,2097151,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.125000000000,,525,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,2097151,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,206.435000000000,,779,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,2097151,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,277.720000000000,,1048,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,351.920000000000,,1328,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,2097151,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,429.035000000000,,1619,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,508.270000000000,,1918,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,2097151,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,589.625000000000,,2225,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,672.570000000000,,2538,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,2097151,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,757.105000000000,,2857,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,2097151,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,843.230000000000,,3182,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,2097151,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,930.415000000000,,3511,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,2097151,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1018.925000000000,,3845,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,2097151,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1108.495000000000,,4183,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,2097151,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1199.125000000000,,4525,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,2097151,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1290.550000000000,,4870,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,2097151,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:437803.431608124636,,4934,1638399999973324,,,AtLeast +Quantum128BitADPS16,q128,256,19,2097151,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:482468.403648283449,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,2097151,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:527662.173136444413,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,2097151,156615091,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,2097151,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,200.340000000000,,756,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,2097151,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,342.115000000000,,1291,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,2097151,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,494.225000000000,,1865,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,2097151,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,654.285000000000,,2469,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,2097151,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,820.440000000000,,3096,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,2097151,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,991.630000000000,,3742,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,2097151,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1167.325000000000,,4405,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,2097151,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:437803.431608124636,,4934,3276799999973324,,,AtLeast +Quantum128BitADPS16,q128,512,10,2097151,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:527662.173136444413,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,2097151,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:619475.625439281692,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,2097151,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:712993.017318891012,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,2097151,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:808019.919127502828,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,2097151,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:904389.500997035648,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,2097151,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1001908.773659140221,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,2097151,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1100538.112856437685,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,2097151,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1200105.040315499762,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,2097151,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1300585.489642421482,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,2097151,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1401889.007672634209,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,2097151,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1503942.895448389696,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,4194303,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,699.687785299176,44.520000000000,320,0,168,0,Exact +Quantum128BitADPS16,q128,64,2,4194303,11,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,196.687994320976,106.000000000000,704,0,400,0,Exact +Quantum128BitADPS16,q128,64,3,4194303,19,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.800000000000,118.720000000000,520,0,448,0,Exact +Quantum128BitADPS16,q128,64,4,4194303,32,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.670000000000,489,0,478,0,Exact +Quantum128BitADPS16,q128,64,5,4194303,2780,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,4194303,203963,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,4194303,9055397,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,4194303,289440405,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,4194303,7229893703,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,4194303,148336022082,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,4194303,2586004514748,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,4194303,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.860000000000,,524,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,4194303,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,155.290000000000,,586,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,4194303,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.985000000000,,649,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,4194303,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.680000000000,,712,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,4194303,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.905000000000,,777,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,4194303,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,223.395000000000,,843,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,4194303,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.150000000000,,910,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,4194303,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,258.905000000000,,977,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,4194303,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.925000000000,,1045,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,4194303,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1392.812277941154,106.000000000000,640,0,400,0,Exact +Quantum128BitADPS16,q128,128,2,4194303,16,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.285000000000,489,0,469,0,Exact +Quantum128BitADPS16,q128,128,3,4194303,101981,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,4194303,144720202,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,4194303,74168011041,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,4194303,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.620000000000,,508,0,,,AtLeast +Quantum128BitADPS16,q128,128,7,4194303,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.685000000000,,629,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,4194303,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.810000000000,,754,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,4194303,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,233.995000000000,,883,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,4194303,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,4194303,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,304.750000000000,,1150,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.320000000000,,1288,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,4194303,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.420000000000,,1428,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,416.050000000000,,1570,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,4194303,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,454.475000000000,,1715,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,493.165000000000,,1861,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,4194303,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,532.385000000000,,2009,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,572.135000000000,,2159,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,4194303,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,612.415000000000,,2311,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,652.960000000000,,2464,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,4194303,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,121.370000000000,489,0,458,0,Exact +Quantum128BitADPS16,q128,256,2,4194303,72360101,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,4194303,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.645000000000,,493,0,,,AtLeast +Quantum128BitADPS16,q128,256,4,4194303,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.980000000000,,732,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,4194303,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,261.290000000000,,986,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,331.780000000000,,1252,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,4194303,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,404.655000000000,,1527,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,479.650000000000,,1810,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,4194303,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,556.765000000000,,2101,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,635.205000000000,,2397,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,4194303,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,715.500000000000,,2700,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,4194303,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,796.855000000000,,3007,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,4194303,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,879.535000000000,,3319,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,4194303,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,963.275000000000,,3635,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,4194303,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1048.340000000000,,3956,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,4194303,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1134.200000000000,,4280,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,4194303,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1220.855000000000,,4607,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,4194303,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1971.199672687650,,4934,1,,,AtLeast +Quantum128BitADPS16,q128,256,19,4194303,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:455061.394222017087,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,4194303,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:499543.163464643410,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,4194303,36180050,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,4194303,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.415000000000,,711,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,4194303,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.505000000000,,1217,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,4194303,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,466.665000000000,,1761,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,4194303,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,618.245000000000,,2333,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,4194303,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,775.655000000000,,2927,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,4194303,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,938.100000000000,,3540,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,4194303,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1104.520000000000,,4168,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,4194303,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1274.650000000000,,4810,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,4194303,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:499543.163464643410,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,4194303,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:589984.615295397351,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,4194303,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:682191.006724067964,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,4194303,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:775959.908099971362,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,4194303,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:871118.489552962012,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,4194303,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:967470.761813658872,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,4194303,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1064970.100622275611,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,4194303,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1163443.027705039131,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,4194303,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1262860.476666325703,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,4194303,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1363129.994340878213,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,4194303,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1464176.881770260632,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,8388607,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,398.815198273995,30.740000000000,320,0,116,0,Exact +Quantum128BitADPS16,q128,64,2,8388607,11,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,80.295000000000,488,0,303,0,Exact +Quantum128BitADPS16,q128,64,3,8388607,18,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,111.565000000000,501,0,421,0,Exact +Quantum128BitADPS16,q128,64,4,8388607,28,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,124.815000000000,494,0,471,0,Exact +Quantum128BitADPS16,q128,64,5,8388607,524,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,8388607,43757,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,8388607,2030468,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,8388607,66396810,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,8388607,1681984520,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,8388607,34841860442,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,8388607,611677877400,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,8388607,6400000000000,768,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.380000000000,,492,0,,,AtLeast +Quantum128BitADPS16,q128,64,13,8388607,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,145.750000000000,,550,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,8388607,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.385000000000,,609,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,8388607,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.285000000000,,669,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,8388607,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.715000000000,,731,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,8388607,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,210.145000000000,,793,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,8388607,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.840000000000,,856,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,8388607,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.800000000000,,920,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,8388607,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,260.760000000000,,984,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,8388607,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,791.429927994150,80.295000000000,640,0,303,0,Exact +Quantum128BitADPS16,q128,128,2,8388607,14,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,120.045000000000,494,0,453,0,Exact +Quantum128BitADPS16,q128,128,3,8388607,21878,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,8388607,33198405,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,8388607,17420930221,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,8388607,4668626844064,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,8388607,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,8388607,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.150000000000,,710,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,8388607,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,220.215000000000,,831,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,8388607,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.340000000000,,956,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,8388607,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,287.260000000000,,1084,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,8388607,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,321.975000000000,,1215,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,8388607,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,356.955000000000,,1347,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,392.730000000000,,1482,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,8388607,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,429.035000000000,,1619,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,465.605000000000,,1757,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,8388607,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,502.970000000000,,1898,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,540.600000000000,,2040,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,8388607,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,578.495000000000,,2183,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,616.920000000000,,2328,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,8388607,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,113.950000000000,494,0,430,0,Exact +Quantum128BitADPS16,q128,256,2,8388607,16599202,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,8388607,2334313422032,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,8388607,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.585000000000,,689,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,8388607,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,246.450000000000,,930,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,8388607,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.965000000000,,1181,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,8388607,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.130000000000,,1442,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,453.150000000000,,1710,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,8388607,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,526.025000000000,,1985,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,600.755000000000,,2267,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,8388607,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.545000000000,,2553,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,8388607,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.925000000000,,2845,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,8388607,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,832.365000000000,,3141,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,8388607,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,911.865000000000,,3441,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,8388607,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,992.425000000000,,3745,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,8388607,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1074.045000000000,,4053,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,8388607,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1156.195000000000,,4363,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,8388607,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1239.405000000000,,4677,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,8388607,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:427654.389511663874,,4934,1638399999972593,,,AtLeast +Quantum128BitADPS16,q128,256,20,8388607,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:471424.158629313461,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,8388607,8299601,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,8388607,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.550000000000,,670,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,8388607,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,304.485000000000,,1149,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,8388607,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,441.225000000000,,1665,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,8388607,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,584.855000000000,,2207,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,8388607,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,734.315000000000,,2771,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,8388607,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,888.280000000000,,3352,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,8388607,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1046.485000000000,,3949,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,8388607,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1207.870000000000,,4558,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,8388607,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:471424.158629313461,,4934,3276799999971881,,,AtLeast +Quantum128BitADPS16,q128,512,11,8388607,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:560493.610223496915,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,8388607,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:651389.001426657429,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,8388607,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:743899.902586206561,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,8388607,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:837847.483830926241,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,8388607,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:933032.755890919361,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,8388607,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1029402.094505195390,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,8388607,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1126781.021399810212,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,8388607,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1225135.470178279327,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,8388607,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1324370.987675001612,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,8388607,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1424410.874931197148,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,16777215,5,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,149.017989332990,21.465000000000,320,0,81,0,Exact +Quantum128BitADPS16,q128,64,2,16777215,10,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047651352747,93.810000000000,640,0,354,0,Exact +Quantum128BitADPS16,q128,64,3,16777215,17,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.705000000000,106.795000000000,497,0,403,0,Exact +Quantum128BitADPS16,q128,64,4,16777215,25,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,137.535000000000,126.935000000000,519,0,479,0,Exact +Quantum128BitADPS16,q128,64,5,16777215,86,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,6,16777215,9109,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,16777215,448956,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,16777215,15103593,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,16777215,389055569,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,16777215,8149034923,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,16777215,144202758661,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,16777215,2214477687732,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,16777215,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,137.005000000000,,517,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,16777215,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.845000000000,,573,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,16777215,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,16777215,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.320000000000,,688,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,16777215,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.955000000000,,747,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,16777215,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.590000000000,,806,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,16777215,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,229.755000000000,,867,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,16777215,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,245.920000000000,,928,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,16777215,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,293.047651352747,62.805000000000,640,0,237,0,Exact +Quantum128BitADPS16,q128,128,2,16777215,12,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,126.935000000000,577,0,479,0,Exact +Quantum128BitADPS16,q128,128,3,16777215,4554,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,16777215,7551796,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,16777215,4074517461,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,16777215,1107238843866,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,16777215,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,147.340000000000,,556,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,16777215,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,177.020000000000,,668,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,16777215,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.760000000000,,784,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,16777215,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,239.030000000000,,902,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,16777215,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.095000000000,,1023,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,16777215,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,303.955000000000,,1147,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,16777215,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.080000000000,,1272,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,371.000000000000,,1400,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,16777215,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.450000000000,,1530,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,440.165000000000,,1661,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,16777215,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,475.410000000000,,1794,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,511.185000000000,,1929,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,16777215,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,547.225000000000,,2065,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,583.795000000000,,2203,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,16777215,6,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,152.905000000000,113.155000000000,577,0,427,0,Exact +Quantum128BitADPS16,q128,256,2,16777215,3775898,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,16777215,553619421933,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,16777215,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.985000000000,,649,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,16777215,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,232.405000000000,,877,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,16777215,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,295.740000000000,,1116,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,16777215,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.195000000000,,1363,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,428.505000000000,,1617,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,16777215,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,497.935000000000,,1879,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,568.690000000000,,2146,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,16777215,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,640.770000000000,,2418,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,16777215,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,713.910000000000,,2694,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,16777215,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,788.640000000000,,2976,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,16777215,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,864.165000000000,,3261,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,16777215,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,940.485000000000,,3549,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,16777215,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1017.865000000000,,3841,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,16777215,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1096.305000000000,,4137,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,16777215,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1175.275000000000,,4435,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,16777215,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1255.040000000000,,4736,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,16777215,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:443305.156213927141,,4934,1638399999971881,,,AtLeast +Quantum128BitADPS16,q128,512,1,16777215,1887949,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,16777215,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.215000000000,,631,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,16777215,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,287.790000000000,,1086,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,16777215,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.375000000000,,1575,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,16777215,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,553.850000000000,,2090,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,16777215,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,695.890000000000,,2626,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,16777215,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,842.170000000000,,3178,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,16777215,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,992.425000000000,,3745,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,16777215,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1146.125000000000,,4325,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,16777215,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1302.475000000000,,4915,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,16777215,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:531002.607687648735,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,16777215,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:620586.998777952278,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,16777215,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:711839.899829324335,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,16777215,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:804576.480969908531,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,16777215,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:898594.752929549781,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,16777215,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:993834.091446655570,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,16777215,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1090119.018247195752,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,16777215,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1187410.466934256256,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,16777215,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1285611.984342063777,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,16777215,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1384644.871511665639,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,33554431,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1426.255730384480,61.480000000000,256,0,232,0,Exact +Quantum128BitADPS16,q128,64,2,33554431,10,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,70.755000000000,495,0,267,0,Exact +Quantum128BitADPS16,q128,64,3,33554431,16,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,104.940000000000,512,0,396,0,Exact +Quantum128BitADPS16,q128,64,4,33554431,23,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.100000000000,127.465000000000,540,0,481,0,Exact +Quantum128BitADPS16,q128,64,5,33554431,36,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,126.935000000000,489,0,479,0,Exact +Quantum128BitADPS16,q128,64,6,33554431,1811,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,33554431,97469,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,33554431,3400521,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,33554431,89383516,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,33554431,1896641848,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,33554431,33868402171,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,33554431,523620112379,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,33554431,6400000000000,832,6400000000000,true,local-minimum+proven-pruned-certification,128.0,128.790000000000,,486,0,,,AtLeast +Quantum128BitADPS16,q128,64,14,33554431,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.835000000000,,539,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,33554431,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.145000000000,,593,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,33554431,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.720000000000,,648,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,33554431,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.560000000000,,704,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,33554431,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.400000000000,,760,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,33554431,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,216.505000000000,,817,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,33554431,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.875000000000,,875,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,33554431,5,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,50.350000000000,495,0,190,0,Exact +Quantum128BitADPS16,q128,128,2,33554431,11,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,166.685000000000,127.465000000000,629,0,481,0,Exact +Quantum128BitADPS16,q128,128,3,33554431,905,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,33554431,1700260,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,33554431,948320924,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,33554431,261810056189,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,33554431,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,138.860000000000,,524,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,33554431,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,33554431,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.835000000000,,739,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,33554431,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.515000000000,,851,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,33554431,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,255.990000000000,,966,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,33554431,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,286.995000000000,,1083,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,33554431,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,318.795000000000,,1203,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,350.860000000000,,1324,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,33554431,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,383.455000000000,,1447,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,416.580000000000,,1572,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,33554431,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,449.970000000000,,1698,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,483.890000000000,,1826,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,33554431,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,518.340000000000,,1956,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,552.790000000000,,2086,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,33554431,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,273.745000000000,127.465000000000,1033,0,481,0,Exact +Quantum128BitADPS16,q128,256,2,33554431,850130,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,33554431,130905028094,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,33554431,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.180000000000,,612,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,33554431,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,33554431,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,279.575000000000,,1055,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,33554431,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,341.585000000000,,1289,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,405.715000000000,,1531,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,33554431,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.435000000000,,1779,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,538.745000000000,,2033,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,33554431,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,607.380000000000,,2292,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,33554431,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,677.075000000000,,2555,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,33554431,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,747.830000000000,,2822,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,33554431,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,819.645000000000,,3093,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,33554431,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,892.255000000000,,3367,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,33554431,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,965.925000000000,,3645,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,33554431,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.390000000000,,3926,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,33554431,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1115.650000000000,,4210,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,33554431,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1191.440000000000,,4496,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,33554431,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1268.025000000000,,4785,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,33554431,425065,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,33554431,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.675000000000,,595,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,33554431,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.155000000000,,1027,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,33554431,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,395.380000000000,,1492,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,33554431,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,524.965000000000,,1981,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,33554431,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,660.115000000000,,2491,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,33554431,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,799.240000000000,,3016,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,33554431,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,942.075000000000,,3555,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,33554431,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1088.355000000000,,4107,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,33554431,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1237.285000000000,,4669,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,33554431,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:501511.606420152588,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,33554431,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:589784.997453634744,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,33554431,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:679779.898450883338,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,33554431,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:771305.479539399734,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,33554431,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:864156.751448865049,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,33554431,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:958266.089917385718,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,33554431,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1053457.016670888755,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,33554431,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1149685.465312244603,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,33554431,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1246852.982675594743,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,33554431,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1344878.869801899884,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,67108863,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1170.396342820438,38.955000000000,256,0,147,0,Exact +Quantum128BitADPS16,q128,64,2,67108863,9,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,634.215219780644,92.485000000000,576,0,349,0,Exact +Quantum128BitADPS16,q128,64,3,67108863,15,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,148.400000000000,106.530000000000,560,0,402,0,Exact +Quantum128BitADPS16,q128,64,4,67108863,22,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,119.250000000000,512,0,450,0,Exact +Quantum128BitADPS16,q128,64,5,67108863,32,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,124.550000000000,489,0,470,0,Exact +Quantum128BitADPS16,q128,64,6,67108863,332,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,67108863,20639,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,67108863,755820,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,67108863,20369698,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,67108863,438930607,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,67108863,7920650689,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,67108863,123395926898,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,67108863,1696295570804,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,67108863,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,134.620000000000,,508,0,,,AtLeast +Quantum128BitADPS16,q128,64,15,67108863,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.135000000000,,559,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,67108863,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,161.915000000000,,611,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,67108863,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.960000000000,,664,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,67108863,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.005000000000,,717,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,67108863,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,204.580000000000,,772,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,67108863,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.155000000000,,827,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,67108863,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2334.268100178464,92.485000000000,512,0,349,0,Exact +Quantum128BitADPS16,q128,128,2,67108863,11,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,108.120000000000,512,0,408,0,Exact +Quantum128BitADPS16,q128,128,3,67108863,166,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,67108863,377910,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,67108863,219465303,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,67108863,61697963449,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,67108863,6400000000000,896,6400000000000,true,local-minimum+proven-pruned-certification,128.0,130.645000000000,,493,0,,,AtLeast +Quantum128BitADPS16,q128,128,8,67108863,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,157.410000000000,,594,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,67108863,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,184.970000000000,,698,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,67108863,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.060000000000,,804,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,67108863,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,242.210000000000,,914,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,67108863,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,271.625000000000,,1025,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,67108863,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,301.570000000000,,1138,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,67108863,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,332.045000000000,,1253,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,67108863,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,363.050000000000,,1370,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,394.585000000000,,1489,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,67108863,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.385000000000,,1609,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,458.715000000000,,1731,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,67108863,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,491.045000000000,,1853,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,524.170000000000,,1978,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,67108863,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,205.375000000000,108.120000000000,775,0,408,0,Exact +Quantum128BitADPS16,q128,256,2,67108863,188955,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,67108863,30848981724,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,67108863,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,153.170000000000,,578,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,67108863,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,207.495000000000,,783,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,67108863,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,264.470000000000,,998,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,67108863,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,323.565000000000,,1221,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,384.515000000000,,1451,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,67108863,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,447.055000000000,,1687,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,510.920000000000,,1928,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,67108863,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,576.110000000000,,2174,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,67108863,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,642.360000000000,,2424,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,67108863,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,709.935000000000,,2679,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,67108863,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,778.305000000000,,2937,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,67108863,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,847.470000000000,,3198,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,67108863,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,917.430000000000,,3462,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,67108863,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,988.450000000000,,3730,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,67108863,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1060.000000000000,,4000,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,67108863,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1132.080000000000,,4272,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,67108863,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1205.220000000000,,4548,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,67108863,94477,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,67108863,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.930000000000,,562,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,67108863,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,67108863,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.710000000000,,1414,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,67108863,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,498.200000000000,,1880,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,67108863,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,626.725000000000,,2365,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,67108863,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,759.225000000000,,2865,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,67108863,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,895.435000000000,,3379,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,67108863,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1034.560000000000,,3904,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,67108863,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1176.335000000000,,4439,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,67108863,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:472020.605788116343,,4934,3276799999970509,,,AtLeast +Quantum128BitADPS16,q128,512,12,67108863,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:558982.996791563462,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,67108863,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:647719.897761662956,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,67108863,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:738034.478824145510,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,67108863,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:829718.750708522741,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,67108863,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:922698.089152751025,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,67108863,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1016795.015882735141,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,67108863,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1111960.464501239127,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,67108863,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1208093.981842360226,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,67108863,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1305112.868947017472,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,134217727,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,914.958383523348,25.440000000000,256,0,96,0,Exact +Quantum128BitADPS16,q128,64,2,134217727,9,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,211.840565646773,68.370000000000,576,0,258,0,Exact +Quantum128BitADPS16,q128,64,3,134217727,14,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,177.285000000000,113.420000000000,669,0,428,0,Exact +Quantum128BitADPS16,q128,64,4,134217727,21,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.910000000000,112.890000000000,494,0,426,0,Exact +Quantum128BitADPS16,q128,64,5,134217727,29,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,124.550000000000,500,0,470,0,Exact +Quantum128BitADPS16,q128,64,6,134217727,51,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,134217727,4214,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,134217727,165225,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,134217727,4596512,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,134217727,100902828,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,134217727,1843297138,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,134217727,28969024191,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,134217727,400857097548,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,134217727,4968968476794,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,134217727,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.655000000000,,527,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,134217727,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.905000000000,,577,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,134217727,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.155000000000,,627,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,134217727,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.670000000000,,678,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,134217727,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.185000000000,,729,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,134217727,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,206.965000000000,,781,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,134217727,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1823.405411157834,68.370000000000,512,0,258,0,Exact +Quantum128BitADPS16,q128,128,2,134217727,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,112.890000000000,605,0,426,0,Exact +Quantum128BitADPS16,q128,128,3,134217727,25,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,4,134217727,82612,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,134217727,50451414,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,134217727,14484512095,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,134217727,2484484238397,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,134217727,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.665000000000,,561,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,134217727,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,174.900000000000,,660,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,134217727,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,201.665000000000,,761,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,134217727,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,228.960000000000,,864,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,134217727,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.050000000000,,970,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,134217727,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.670000000000,,1078,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,134217727,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.820000000000,,1188,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,134217727,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,344.235000000000,,1299,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,374.180000000000,,1412,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,134217727,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,404.390000000000,,1526,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,435.130000000000,,1642,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,134217727,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,465.870000000000,,1758,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,497.405000000000,,1877,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,134217727,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,160.325000000000,92.750000000000,605,0,350,0,Exact +Quantum128BitADPS16,q128,256,2,134217727,41306,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,134217727,7242256047,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,134217727,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.690000000000,,546,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,134217727,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,196.365000000000,,741,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,134217727,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,250.425000000000,,945,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,134217727,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,306.605000000000,,1157,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.640000000000,,1376,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,134217727,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,424.265000000000,,1601,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,484.950000000000,,1830,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,134217727,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,547.225000000000,,2065,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,134217727,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,610.295000000000,,2303,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,134217727,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,674.425000000000,,2545,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,134217727,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,739.615000000000,,2791,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,134217727,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,805.600000000000,,3040,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,134217727,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,872.380000000000,,3292,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,134217727,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,939.690000000000,,3546,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,134217727,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1008.060000000000,,3804,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,134217727,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1076.960000000000,,4064,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,134217727,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1146.390000000000,,4326,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,134217727,20653,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,134217727,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.715000000000,,531,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,134217727,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.065000000000,,921,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,134217727,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.630000000000,,1342,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,134217727,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,473.290000000000,,1786,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,134217727,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,595.455000000000,,2247,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,134217727,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,721.860000000000,,2724,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,134217727,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,851.710000000000,,3214,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,134217727,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,984.210000000000,,3714,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,134217727,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1119.625000000000,,4225,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,134217727,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1257.160000000000,,4744,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,134217727,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:528180.996460894472,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,134217727,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:615659.897417086293,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,134217727,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:704763.478466518223,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,134217727,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:795280.750338351587,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,134217727,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:887130.088770433562,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,134217727,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:980133.015488658333,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,134217727,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1074235.464095736155,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,134217727,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1169334.981425742852,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,134217727,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1265346.868519576034,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,268435455,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,661.199713518359,16.430000000000,256,0,62,0,Exact +Quantum128BitADPS16,q128,64,2,268435455,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.940665428801,110.240000000000,512,0,416,0,Exact +Quantum128BitADPS16,q128,64,3,268435455,14,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,89.570000000000,492,0,338,0,Exact +Quantum128BitADPS16,q128,64,4,268435455,20,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,108.385000000000,486,0,409,0,Exact +Quantum128BitADPS16,q128,64,5,268435455,27,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,122.695000000000,503,0,463,0,Exact +Quantum128BitADPS16,q128,64,6,268435455,38,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,127.200000000000,491,0,480,0,Exact +Quantum128BitADPS16,q128,64,7,268435455,811,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,268435455,35322,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,268435455,1024564,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,268435455,23011535,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,268435455,426534044,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,268435455,6771499150,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,268435455,94402607101,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,268435455,1176946964642,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,268435455,6400000000000,960,6400000000000,true,local-minimum+proven-pruned-certification,128.0,131.970000000000,,498,0,,,AtLeast +Quantum128BitADPS16,q128,64,16,268435455,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.425000000000,,545,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,268435455,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.880000000000,,592,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,268435455,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,169.865000000000,,641,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,268435455,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,182.850000000000,,690,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,268435455,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.835000000000,,739,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,268435455,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1315.940665428801,52.205000000000,512,0,197,0,Exact +Quantum128BitADPS16,q128,128,2,268435455,10,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,95.400000000000,486,0,360,0,Exact +Quantum128BitADPS16,q128,128,3,268435455,19,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,124.815000000000,491,0,471,0,Exact +Quantum128BitADPS16,q128,128,4,268435455,17661,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,268435455,11505767,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,268435455,3385749575,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,268435455,588473482321,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,268435455,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,268435455,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,165.360000000000,,624,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,268435455,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.800000000000,,720,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,268435455,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,217.035000000000,,819,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,268435455,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.535000000000,,919,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,268435455,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,270.830000000000,,1022,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,268435455,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,298.390000000000,,1126,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,268435455,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,326.480000000000,,1232,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.100000000000,,1340,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,268435455,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,383.720000000000,,1448,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,412.870000000000,,1558,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,268435455,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,442.550000000000,,1670,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,472.230000000000,,1782,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,268435455,5,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,80.560000000000,486,0,304,0,Exact +Quantum128BitADPS16,q128,256,2,268435455,8830,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,268435455,1692874787,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,268435455,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.740000000000,,516,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,268435455,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,186.030000000000,,702,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,268435455,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.440000000000,,896,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,268435455,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.970000000000,,1098,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.355000000000,,1307,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,268435455,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,402.800000000000,,1520,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,460.835000000000,,1739,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,268435455,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,519.930000000000,,1962,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,268435455,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,580.350000000000,,2190,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,268435455,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,641.565000000000,,2421,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,268435455,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,703.575000000000,,2655,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,268435455,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,766.380000000000,,2892,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,268435455,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,829.980000000000,,3132,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,268435455,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,894.375000000000,,3375,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,268435455,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,959.565000000000,,3621,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,268435455,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1025.285000000000,,3869,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,268435455,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1091.535000000000,,4119,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,268435455,4415,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,268435455,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.030000000000,,502,0,,,AtLeast +Quantum128BitADPS16,q128,512,3,268435455,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.610000000000,,874,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,268435455,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.875000000000,,1275,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,268435455,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,449.705000000000,,1697,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,268435455,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,566.570000000000,,2138,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,268435455,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,686.880000000000,,2592,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,268435455,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,810.635000000000,,3059,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,268435455,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,937.305000000000,,3537,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,268435455,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1066.360000000000,,4024,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,268435455,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1197.800000000000,,4520,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,268435455,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:497378.996297027508,,4934,3276799999969198,,,AtLeast +Quantum128BitADPS16,q128,512,13,268435455,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:583599.897244881955,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,268435455,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:671492.478287704638,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,268435455,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:760842.750153265893,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,268435455,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:851562.088579274714,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,268435455,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:943471.015291619929,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,268435455,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1036510.463892984553,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,268435455,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1130575.981217434164,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,268435455,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1225580.868305855198,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,536870911,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,414.056235889485,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q128,64,2,536870911,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858951693548,77.645000000000,512,0,293,0,Exact +Quantum128BitADPS16,q128,64,3,536870911,13,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,169.865000000000,99.905000000000,641,0,377,0,Exact +Quantum128BitADPS16,q128,64,4,536870911,19,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,106.000000000000,491,0,400,0,Exact +Quantum128BitADPS16,q128,64,5,536870911,25,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,125.345000000000,530,0,473,0,Exact +Quantum128BitADPS16,q128,64,6,536870911,34,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,127.200000000000,501,0,480,0,Exact +Quantum128BitADPS16,q128,64,7,536870911,139,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,8,536870911,7316,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,536870911,224810,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,536870911,5197285,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,536870911,98039111,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,536870911,1574963935,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,536870911,22145601942,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,536870911,277896887978,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,536870911,3158016421435,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,536870911,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.475000000000,,515,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,536870911,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,536870911,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,160.590000000000,,606,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,536870911,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,173.045000000000,,653,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,536870911,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.500000000000,,700,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,536870911,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,821.858951693548,40.810000000000,512,0,154,0,Exact +Quantum128BitADPS16,q128,128,2,536870911,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.900000000000,106.000000000000,660,0,400,0,Exact +Quantum128BitADPS16,q128,128,3,536870911,17,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,122.960000000000,501,0,464,0,Exact +Quantum128BitADPS16,q128,128,4,536870911,3658,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,536870911,2598642,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,536870911,787481967,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,536870911,138948443989,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,536870911,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.765000000000,,501,0,,,AtLeast +Quantum128BitADPS16,q128,128,9,536870911,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,156.615000000000,,591,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,536870911,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,180.730000000000,,682,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,536870911,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.640000000000,,776,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,536870911,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.080000000000,,872,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,536870911,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.050000000000,,970,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,536870911,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,283.285000000000,,1069,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,536870911,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,310.050000000000,,1170,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.080000000000,,1272,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,536870911,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.640000000000,,1376,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,392.465000000000,,1481,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,536870911,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,420.555000000000,,1587,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,448.910000000000,,1694,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,536870911,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1636.998965982966,106.000000000000,1024,0,400,0,Exact +Quantum128BitADPS16,q128,256,2,536870911,1829,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,536870911,393740983,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,536870911,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.320000000000,,488,0,,,AtLeast +Quantum128BitADPS16,q128,256,5,536870911,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,176.225000000000,,665,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,536870911,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,225.250000000000,,850,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,536870911,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.395000000000,,1043,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,328.865000000000,,1241,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,536870911,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,382.925000000000,,1445,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,438.310000000000,,1654,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,536870911,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,494.755000000000,,1867,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,536870911,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,552.260000000000,,2084,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,536870911,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,610.560000000000,,2304,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,536870911,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,669.655000000000,,2527,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,536870911,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,729.810000000000,,2754,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,536870911,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,790.495000000000,,2983,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,536870911,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,851.975000000000,,3215,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,536870911,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,914.250000000000,,3450,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,536870911,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,976.790000000000,,3686,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,536870911,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.125000000000,,3925,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,536870911,914,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,536870911,4109408323401,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,536870911,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.685000000000,,829,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,536870911,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.915000000000,,1211,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,536870911,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.975000000000,,1615,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,536870911,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,539.275000000000,,2035,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,536870911,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,654.285000000000,,2469,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,536870911,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,772.475000000000,,2915,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,536870911,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,893.315000000000,,3371,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,536870911,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1016.540000000000,,3836,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,536870911,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1142.150000000000,,4310,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,536870911,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1269.615000000000,,4791,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,536870911,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:551539.897159133339,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,536870911,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:638221.478198333876,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,536870911,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:726404.750060723280,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,536870911,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:815994.088483695406,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,536870911,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:906809.015193100786,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,536870911,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:998785.463791608927,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,536870911,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1091816.981113279937,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,536870911,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1185814.868198995013,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,1073741823,4,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,191.786220834548,10.600000000000,256,0,40,0,Exact +Quantum128BitADPS16,q128,64,2,1073741823,8,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060968396230,56.975000000000,512,0,215,0,Exact +Quantum128BitADPS16,q128,64,3,1073741823,12,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,564.181002427652,123.490000000000,768,0,466,0,Exact +Quantum128BitADPS16,q128,64,4,1073741823,18,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,106.000000000000,514,0,400,0,Exact +Quantum128BitADPS16,q128,64,5,1073741823,24,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.150000000000,118.720000000000,510,0,448,0,Exact +Quantum128BitADPS16,q128,64,6,1073741823,32,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,122.695000000000,489,0,463,0,Exact +Quantum128BitADPS16,q128,64,7,1073741823,45,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,126.935000000000,484,0,479,0,Exact +Quantum128BitADPS16,q128,64,8,1073741823,1443,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,1073741823,48305,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,1073741823,1159777,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,1073741823,22354617,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,1073741823,364198542,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,1073741823,5172029255,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,1073741823,65383664132,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,1073741823,747301545771,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,1073741823,6400000000000,1024,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.055000000000,,487,0,,,AtLeast +Quantum128BitADPS16,q128,64,17,1073741823,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,1073741823,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,152.110000000000,,574,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,1073741823,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,164.035000000000,,619,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,1073741823,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.960000000000,,664,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,1073741823,4,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,378.060968396230,32.330000000000,512,0,122,0,Exact +Quantum128BitADPS16,q128,128,2,1073741823,9,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,136.210000000000,88.775000000000,514,0,335,0,Exact +Quantum128BitADPS16,q128,128,3,1073741823,16,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,117.395000000000,489,0,443,0,Exact +Quantum128BitADPS16,q128,128,4,1073741823,721,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,1073741823,579888,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,1073741823,182099271,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,1073741823,32691832066,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,1073741823,3907651976721,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,1073741823,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,148.400000000000,,560,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,1073741823,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.455000000000,,647,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,1073741823,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,195.040000000000,,736,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,1073741823,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,219.420000000000,,828,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,1073741823,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,244.065000000000,,921,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,1073741823,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,268.975000000000,,1015,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,1073741823,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,294.680000000000,,1112,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,1073741823,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,320.385000000000,,1209,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,1073741823,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.620000000000,,1308,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,373.120000000000,,1408,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,1073741823,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,400.150000000000,,1510,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.180000000000,,1612,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,1073741823,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,750.237353352976,88.775000000000,1024,0,335,0,Exact +Quantum128BitADPS16,q128,256,2,1073741823,360,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,1073741823,91049635,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,1073741823,1953825988360,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,1073741823,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.215000000000,,631,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,1073741823,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,213.855000000000,,807,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,1073741823,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,262.615000000000,,991,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,1073741823,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,312.700000000000,,1180,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,1073741823,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,364.375000000000,,1375,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,417.110000000000,,1574,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,1073741823,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,471.170000000000,,1778,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,1073741823,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,525.760000000000,,1984,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,1073741823,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,581.675000000000,,2195,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,1073741823,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,638.120000000000,,2408,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,1073741823,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,695.625000000000,,2625,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,1073741823,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,753.660000000000,,2844,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,1073741823,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,812.225000000000,,3065,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,1073741823,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,871.585000000000,,3289,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,1073741823,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,931.475000000000,,3515,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,1073741823,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,992.160000000000,,3744,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,1073741823,180,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,1073741823,976912994180,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,1073741823,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,208.820000000000,,788,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,1073741823,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,305.280000000000,,1152,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,1073741823,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,407.570000000000,,1538,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,1073741823,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,513.835000000000,,1939,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,1073741823,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,623.810000000000,,2354,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,1073741823,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,736.700000000000,,2780,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,1073741823,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,852.240000000000,,3216,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,1073741823,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,969.900000000000,,3660,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,1073741823,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1089.945000000000,,4113,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,1073741823,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1211.845000000000,,4573,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,1073741823,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:519479.897117671906,,4934,3276799999967940,,,AtLeast +Quantum128BitADPS16,q128,512,14,1073741823,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:604950.478153738077,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,1073741823,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:691966.750014451798,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,1073741823,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:780426.088435905753,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,1073741823,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:870147.015143841272,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,1073741823,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:961060.463740921114,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,1073741823,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1053057.981061202940,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,1073741823,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1146048.868145564804,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,2147483647,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1967.206414040663,59.360000000000,192,0,224,0,Exact +Quantum128BitADPS16,q128,64,2,2147483647,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1851.597615245684,121.900000000000,448,0,460,0,Exact +Quantum128BitADPS16,q128,64,3,2147483647,12,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,184.705000000000,93.810000000000,697,0,354,0,Exact +Quantum128BitADPS16,q128,64,4,2147483647,17,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,150.255000000000,109.445000000000,567,0,413,0,Exact +Quantum128BitADPS16,q128,64,5,2147483647,23,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.970000000000,113.950000000000,498,0,430,0,Exact +Quantum128BitADPS16,q128,64,6,2147483647,30,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,120.575000000000,488,0,455,0,Exact +Quantum128BitADPS16,q128,64,7,2147483647,39,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,127.465000000000,495,0,481,0,Exact +Quantum128BitADPS16,q128,64,8,2147483647,261,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,2147483647,10079,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,2147483647,254850,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,2147483647,5047855,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,2147483647,83644853,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,2147483647,1201738254,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,2147483647,15321734332,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,2147483647,176261032586,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,2147483647,1852865978304,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,17,2147483647,6400000000000,1088,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.030000000000,,502,0,,,AtLeast +Quantum128BitADPS16,q128,64,18,2147483647,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,144.160000000000,,544,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,2147483647,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,155.555000000000,,587,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,2147483647,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.685000000000,,629,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,2147483647,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3928.091345914765,121.900000000000,384,0,460,0,Exact +Quantum128BitADPS16,q128,128,2,2147483647,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.040000000000,109.445000000000,936,0,413,0,Exact +Quantum128BitADPS16,q128,128,3,2147483647,15,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.320000000000,113.950000000000,488,0,430,0,Exact +Quantum128BitADPS16,q128,128,4,2147483647,130,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,2147483647,127425,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,2147483647,41822426,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,2147483647,7660867166,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,2147483647,926432989152,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,2147483647,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,140.450000000000,,530,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,2147483647,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,162.710000000000,,614,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,2147483647,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,185.235000000000,,699,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,2147483647,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,208.290000000000,,786,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,2147483647,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.875000000000,,875,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,2147483647,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,255.725000000000,,965,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,2147483647,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,280.105000000000,,1057,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,2147483647,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,304.750000000000,,1150,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,2147483647,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.925000000000,,1245,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,2147483647,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,355.100000000000,,1340,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,2147483647,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,380.805000000000,,1437,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,2147483647,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,406.775000000000,,1535,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,2147483647,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,248.040000000000,75.260000000000,936,0,284,0,Exact +Quantum128BitADPS16,q128,256,2,2147483647,65,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,2147483647,20911213,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,2147483647,463216494576,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,2147483647,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.735000000000,,599,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,2147483647,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,203.255000000000,,767,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,2147483647,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,249.630000000000,,942,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,2147483647,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,297.595000000000,,1123,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,2147483647,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,346.885000000000,,1309,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,2147483647,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,397.500000000000,,1500,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,2147483647,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,448.910000000000,,1694,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,2147483647,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,501.380000000000,,1892,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,2147483647,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,554.645000000000,,2093,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,2147483647,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,608.705000000000,,2297,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,2147483647,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,663.295000000000,,2503,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,2147483647,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,718.945000000000,,2713,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,2147483647,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,775.125000000000,,2925,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,2147483647,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,831.835000000000,,3139,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,2147483647,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,889.075000000000,,3355,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,2147483647,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,946.845000000000,,3573,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,2147483647,32,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,2,2147483647,231608247288,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,2147483647,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,198.485000000000,,749,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,2147483647,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.705000000000,,1097,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,2147483647,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,388.225000000000,,1465,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,2147483647,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,489.985000000000,,1849,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,2147483647,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,594.925000000000,,2245,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,2147483647,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,703.045000000000,,2653,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,2147483647,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,813.550000000000,,3070,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,2147483647,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,926.175000000000,,3495,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,2147483647,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1040.920000000000,,3928,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,2147483647,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1157.520000000000,,4368,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,2147483647,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1275.975000000000,,4815,0,,,AtLeast +Quantum128BitADPS16,q128,512,14,2147483647,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:571679.478131817537,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,2147483647,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:657528.749991358141,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,2147483647,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:744858.088412010926,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,2147483647,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:833485.015119211399,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,2147483647,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:923335.463715577149,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,2147483647,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1014298.981035164092,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,2147483647,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1106282.868118849583,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,4294967295,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1775.206576331468,34.980000000000,192,0,132,0,Exact +Quantum128BitADPS16,q128,64,2,4294967295,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1405.395612712946,81.885000000000,448,0,309,0,Exact +Quantum128BitADPS16,q128,64,3,4294967295,12,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,73.405000000000,491,0,277,0,Exact +Quantum128BitADPS16,q128,64,4,4294967295,16,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,117.925000000000,677,0,445,0,Exact +Quantum128BitADPS16,q128,64,5,4294967295,22,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,110.770000000000,495,0,418,0,Exact +Quantum128BitADPS16,q128,64,6,4294967295,28,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,121.635000000000,505,0,459,0,Exact +Quantum128BitADPS16,q128,64,7,4294967295,36,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,131.175000000000,125.875000000000,495,0,475,0,Exact +Quantum128BitADPS16,q128,64,8,4294967295,51,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.790000000000,127.995000000000,486,0,483,0,Exact +Quantum128BitADPS16,q128,64,9,4294967295,2011,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,4294967295,54869,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,4294967295,1126134,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,4294967295,19054247,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,4294967295,277565675,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,4294967295,3573943745,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,4294967295,41420574937,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,4294967295,437943940282,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,17,4294967295,4268819373105,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,18,4294967295,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.740000000000,,516,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,4294967295,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,147.605000000000,,557,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,4294967295,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,158.205000000000,,597,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,4294967295,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3544.091675360038,81.885000000000,384,0,309,0,Exact +Quantum128BitADPS16,q128,128,2,4294967295,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,89.835000000000,677,0,339,0,Exact +Quantum128BitADPS16,q128,128,3,4294967295,14,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.825000000000,112.890000000000,505,0,426,0,Exact +Quantum128BitADPS16,q128,128,4,4294967295,25,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,127.995000000000,489,0,483,0,Exact +Quantum128BitADPS16,q128,128,5,4294967295,27434,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,4294967295,9527123,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,4294967295,1786971872,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,4294967295,218971970141,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,4294967295,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.295000000000,,503,0,,,AtLeast +Quantum128BitADPS16,q128,128,10,4294967295,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,154.495000000000,,583,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,4294967295,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.960000000000,,664,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,4294967295,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,197.955000000000,,747,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,4294967295,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,220.480000000000,,832,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,4294967295,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,243.535000000000,,919,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,4294967295,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,266.590000000000,,1006,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,4294967295,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,290.175000000000,,1095,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,4294967295,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,314.025000000000,,1185,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,4294967295,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,338.405000000000,,1277,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,4294967295,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,362.785000000000,,1369,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,4294967295,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,387.695000000000,,1463,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,4294967295,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,179.405000000000,64.660000000000,677,0,244,0,Exact +Quantum128BitADPS16,q128,256,2,4294967295,12,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,127.995000000000,500,0,483,0,Exact +Quantum128BitADPS16,q128,256,3,4294967295,4763561,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,4294967295,109485985070,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,4294967295,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.785000000000,,569,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,4294967295,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,193.450000000000,,730,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,4294967295,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,237.705000000000,,897,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,4294967295,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,283.550000000000,,1070,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,4294967295,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,330.720000000000,,1248,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,4294967295,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,378.685000000000,,1429,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,4294967295,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,427.975000000000,,1615,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,4294967295,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,478.060000000000,,1804,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,4294967295,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,529.205000000000,,1997,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,4294967295,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,580.880000000000,,2192,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,4294967295,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,633.350000000000,,2390,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,4294967295,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,686.350000000000,,2590,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,4294967295,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,740.145000000000,,2793,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,4294967295,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,794.470000000000,,2998,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,4294967295,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,849.325000000000,,3205,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,4294967295,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,904.710000000000,,3414,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,4294967295,6,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.500000000000,126.405000000000,500,0,477,0,Exact +Quantum128BitADPS16,q128,512,2,4294967295,54742992535,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,4294967295,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.680000000000,,712,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,4294967295,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.925000000000,,1045,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,4294967295,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,370.205000000000,,1397,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,4294967295,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,467.460000000000,,1764,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,4294967295,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,568.160000000000,,2144,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,4294967295,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,671.510000000000,,2534,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,4294967295,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,777.245000000000,,2933,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,4294967295,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,885.100000000000,,3340,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,4294967295,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,995.075000000000,,3755,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,4294967295,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1106.640000000000,,4176,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,4294967295,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1220.060000000000,,4604,0,,,AtLeast +Quantum128BitADPS16,q128,512,14,4294967295,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:538408.478122365777,,4934,3276799999966729,,,AtLeast +Quantum128BitADPS16,q128,512,15,4294967295,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:623090.749979916378,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,4294967295,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:709290.088400063454,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,4294967295,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:796823.015106896404,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,4294967295,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:885610.463702905108,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,4294967295,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:975539.981022144784,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,4294967295,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1066516.868105492089,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,8589934591,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1583.207225719656,20.935000000000,192,0,79,0,Exact +Quantum128BitADPS16,q128,64,2,8589934591,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,964.547589718675,57.770000000000,448,0,218,0,Exact +Quantum128BitADPS16,q128,64,3,8589934591,11,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,469.720266532623,96.195000000000,704,0,363,0,Exact +Quantum128BitADPS16,q128,64,4,8589934591,16,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,95.135000000000,512,0,359,0,Exact +Quantum128BitADPS16,q128,64,5,8589934591,21,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,133.295000000000,109.445000000000,503,0,413,0,Exact +Quantum128BitADPS16,q128,64,6,8589934591,26,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.015000000000,127.995000000000,551,0,483,0,Exact +Quantum128BitADPS16,q128,64,7,8589934591,34,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,122.165000000000,487,0,461,0,Exact +Quantum128BitADPS16,q128,64,8,8589934591,44,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,126.405000000000,487,0,477,0,Exact +Quantum128BitADPS16,q128,64,9,8589934591,372,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,8589934591,11481,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,8589934591,247372,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,8589934591,4297549,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,8589934591,63658864,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,8589934591,829234533,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,8589934591,9692927298,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,8589934591,103159542061,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,17,8589934591,1010798671748,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,18,8589934591,6400000000000,1152,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.850000000000,,490,0,,,AtLeast +Quantum128BitADPS16,q128,64,19,8589934591,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.920000000000,,528,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,8589934591,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,150.255000000000,,567,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,8589934591,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,3160.092993591019,57.770000000000,384,0,218,0,Exact +Quantum128BitADPS16,q128,128,2,8589934591,8,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,74.995000000000,512,0,283,0,Exact +Quantum128BitADPS16,q128,128,3,8589934591,13,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,146.015000000000,115.540000000000,551,0,436,0,Exact +Quantum128BitADPS16,q128,128,4,8589934591,22,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,124.285000000000,487,0,469,0,Exact +Quantum128BitADPS16,q128,128,5,8589934591,5740,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,8589934591,2148774,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,8589934591,414617266,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,8589934591,51579771030,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,8589934591,4599670747534,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,10,8589934591,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,146.810000000000,,554,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,8589934591,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,167.215000000000,,631,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,8589934591,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,188.415000000000,,711,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,8589934591,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,209.880000000000,,792,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,8589934591,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,231.875000000000,,875,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,8589934591,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,253.870000000000,,958,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,8589934591,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,276.395000000000,,1043,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,8589934591,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,299.450000000000,,1130,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,8589934591,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.505000000000,,1217,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,8589934591,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.825000000000,,1305,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,8589934591,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,369.675000000000,,1395,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,8589934591,4,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,135.680000000000,56.180000000000,512,0,212,0,Exact +Quantum128BitADPS16,q128,256,2,8589934591,11,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.055000000000,121.105000000000,487,0,457,0,Exact +Quantum128BitADPS16,q128,256,3,8589934591,1074387,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,8589934591,25789885515,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,8589934591,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,143.100000000000,,540,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,8589934591,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,183.910000000000,,694,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,8589934591,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,226.310000000000,,854,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,8589934591,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,270.300000000000,,1020,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,8589934591,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,315.350000000000,,1190,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,8589934591,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,361.460000000000,,1364,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,8589934591,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,408.365000000000,,1541,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,8589934591,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,456.330000000000,,1722,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,8589934591,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,505.090000000000,,1906,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,8589934591,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,554.645000000000,,2093,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,8589934591,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,604.995000000000,,2283,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,8589934591,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,655.875000000000,,2475,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,8589934591,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,707.285000000000,,2669,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,8589934591,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,759.225000000000,,2865,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,8589934591,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,811.695000000000,,3063,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,8589934591,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,864.695000000000,,3263,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,8589934591,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,145.485000000000,121.105000000000,549,0,457,0,Exact +Quantum128BitADPS16,q128,512,2,8589934591,12894942757,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,8589934591,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.670000000000,,678,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,8589934591,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,264.205000000000,,997,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,8589934591,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,353.245000000000,,1333,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,8589934591,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,446.525000000000,,1685,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,8589934591,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,542.720000000000,,2048,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,8589934591,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,641.565000000000,,2421,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,8589934591,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,743.060000000000,,2804,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,8589934591,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,846.410000000000,,3194,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,8589934591,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,951.880000000000,,3592,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,8589934591,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1058.675000000000,,3995,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,8589934591,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1167.325000000000,,4405,0,,,AtLeast +Quantum128BitADPS16,q128,512,14,8589934591,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1277.300000000000,,4820,0,,,AtLeast +Quantum128BitADPS16,q128,512,15,8589934591,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:588652.749974637292,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,8589934591,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:673722.088394143269,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,8589934591,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:760161.015100739081,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,8589934591,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:847885.463696569088,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,8589934591,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:936780.981015635189,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,8589934591,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:1026750.868098813226,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,17179869183,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1391.209823373090,10.865000000000,192,0,41,0,Exact +Quantum128BitADPS16,q128,64,2,17179869183,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,544.522609604290,42.400000000000,448,0,160,0,Exact +Quantum128BitADPS16,q128,64,3,17179869183,11,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,163.240000000000,73.935000000000,616,0,279,0,Exact +Quantum128BitADPS16,q128,64,4,17179869183,15,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,173.840000000000,106.530000000000,656,0,402,0,Exact +Quantum128BitADPS16,q128,64,5,17179869183,20,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.185000000000,110.240000000000,529,0,416,0,Exact +Quantum128BitADPS16,q128,64,6,17179869183,25,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,123.755000000000,542,0,467,0,Exact +Quantum128BitADPS16,q128,64,7,17179869183,32,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,129.585000000000,120.840000000000,489,0,456,0,Exact +Quantum128BitADPS16,q128,64,8,17179869183,40,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,125.875000000000,491,0,475,0,Exact +Quantum128BitADPS16,q128,64,9,17179869183,58,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,10,17179869183,2302,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,17179869183,53234,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,17179869183,957327,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,17179869183,14476947,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,17179869183,191207892,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,17179869183,2257377058,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,17179869183,24206000354,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,17,17179869183,238581085699,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,18,17179869183,2181641924866,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,19,17179869183,6400000000000,1216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,133.030000000000,,502,0,,,AtLeast +Quantum128BitADPS16,q128,64,20,17179869183,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,142.835000000000,,539,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,17179869183,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2776.098266715574,42.400000000000,384,0,160,0,Exact +Quantum128BitADPS16,q128,128,2,17179869183,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1082.650518503063,106.530000000000,896,0,402,0,Exact +Quantum128BitADPS16,q128,128,3,17179869183,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,174.635000000000,123.755000000000,659,0,467,0,Exact +Quantum128BitADPS16,q128,128,4,17179869183,20,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,122.430000000000,491,0,462,0,Exact +Quantum128BitADPS16,q128,128,5,17179869183,1151,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,17179869183,478663,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,17179869183,95603946,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,17179869183,12103000177,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,17179869183,1090820962433,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,10,17179869183,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,139.390000000000,,526,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,17179869183,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,159.265000000000,,601,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,17179869183,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,179.405000000000,,677,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,17179869183,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,199.810000000000,,754,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,17179869183,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,220.745000000000,,833,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,17179869183,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,241.945000000000,,913,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,17179869183,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,263.675000000000,,995,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,17179869183,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,285.405000000000,,1077,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,17179869183,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,307.665000000000,,1161,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,17179869183,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,330.190000000000,,1246,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,17179869183,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,352.715000000000,,1331,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,17179869183,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,5545.375167354872,106.530000000000,768,0,402,0,Exact +Quantum128BitADPS16,q128,256,2,17179869183,10,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,117.130000000000,491,0,442,0,Exact +Quantum128BitADPS16,q128,256,3,17179869183,239331,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,17179869183,6051500088,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,17179869183,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,136.210000000000,,514,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,17179869183,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,175.165000000000,,661,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,17179869183,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,215.710000000000,,814,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,17179869183,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,257.580000000000,,972,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,17179869183,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,300.775000000000,,1135,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,17179869183,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,345.030000000000,,1302,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,17179869183,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,390.080000000000,,1472,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,17179869183,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,435.925000000000,,1645,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,17179869183,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,482.830000000000,,1822,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,17179869183,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,530.265000000000,,2001,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,17179869183,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,578.230000000000,,2182,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,17179869183,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,626.990000000000,,2366,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,17179869183,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,676.280000000000,,2552,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,17179869183,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,726.100000000000,,2740,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,17179869183,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,776.450000000000,,2930,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,17179869183,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,827.330000000000,,3122,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,17179869183,5,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.115000000000,111.300000000000,491,0,420,0,Exact +Quantum128BitADPS16,q128,512,2,17179869183,3025750044,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,17179869183,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,171.190000000000,,646,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,17179869183,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,252.015000000000,,951,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,17179869183,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,337.345000000000,,1273,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,17179869183,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,426.650000000000,,1610,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,17179869183,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,518.870000000000,,1958,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,17179869183,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,613.740000000000,,2316,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,17179869183,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,710.995000000000,,2683,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,17179869183,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,810.105000000000,,3057,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,17179869183,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,911.070000000000,,3438,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,17179869183,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1013.625000000000,,3825,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,17179869183,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1117.770000000000,,4218,0,,,AtLeast +Quantum128BitADPS16,q128,512,14,17179869183,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1223.240000000000,,4616,0,,,AtLeast +Quantum128BitADPS16,q128,512,15,17179869183,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:554214.749973764992,,4934,3276799999965562,,,AtLeast +Quantum128BitADPS16,q128,512,16,17179869183,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:638154.088391317287,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,17179869183,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:723499.015097678872,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,17179869183,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:810160.463693401311,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,17179869183,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:898021.981012380449,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,17179869183,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:986984.868095473968,,4934,3276799999960234,,,AtLeast +Quantum128BitADPS16,q128,64,1,34359738367,3,64,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1199.220213848369,10.600000000000,192,0,40,0,Exact +Quantum128BitADPS16,q128,64,2,34359738367,7,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,198.790570362133,31.800000000000,448,0,120,0,Exact +Quantum128BitADPS16,q128,64,3,34359738367,10,192,6400000000000,false,local-minimum+proven-pruned-certification,128.0,1268.988933263443,114.480000000000,640,0,432,0,Exact +Quantum128BitADPS16,q128,64,4,34359738367,15,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,130.380000000000,85.860000000000,492,0,324,0,Exact +Quantum128BitADPS16,q128,64,5,34359738367,19,320,6400000000000,false,local-minimum+proven-pruned-certification,128.0,153.965000000000,114.215000000000,581,0,431,0,Exact +Quantum128BitADPS16,q128,64,6,34359738367,24,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,121.105000000000,542,0,457,0,Exact +Quantum128BitADPS16,q128,64,7,34359738367,30,448,6400000000000,false,local-minimum+proven-pruned-certification,128.0,134.355000000000,122.695000000000,507,0,463,0,Exact +Quantum128BitADPS16,q128,64,8,34359738367,37,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,132.765000000000,126.405000000000,501,0,477,0,Exact +Quantum128BitADPS16,q128,64,9,34359738367,48,576,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.525000000000,126.670000000000,485,0,478,0,Exact +Quantum128BitADPS16,q128,64,10,34359738367,429,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,11,34359738367,11132,704,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,12,34359738367,209886,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,13,34359738367,3258368,832,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,14,34359738367,43765490,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,15,34359738367,522793016,960,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,16,34359738367,5654869688,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,17,34359738367,56110981244,1088,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,18,34359738367,515841069085,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,19,34359738367,4428487982062,1216,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,64,20,34359738367,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,135.945000000000,,513,0,,,AtLeast +Quantum128BitADPS16,q128,128,1,34359738367,3,128,6400000000000,false,local-minimum+proven-pruned-certification,128.0,2392.119358925115,31.800000000000,384,0,120,0,Exact +Quantum128BitADPS16,q128,128,2,34359738367,7,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,392.506742326610,85.860000000000,896,0,324,0,Exact +Quantum128BitADPS16,q128,128,3,34359738367,12,384,6400000000000,false,local-minimum+proven-pruned-certification,128.0,143.630000000000,106.265000000000,542,0,401,0,Exact +Quantum128BitADPS16,q128,128,4,34359738367,18,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,126.405000000000,530,0,477,0,Exact +Quantum128BitADPS16,q128,128,5,34359738367,214,640,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,6,34359738367,104943,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,7,34359738367,21882745,896,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,8,34359738367,2827434844,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,9,34359738367,257920534542,1152,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,128,10,34359738367,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,132.765000000000,,501,0,,,AtLeast +Quantum128BitADPS16,q128,128,11,34359738367,6400000000000,1408,6400000000000,true,local-minimum+proven-pruned-certification,128.0,151.580000000000,,572,0,,,AtLeast +Quantum128BitADPS16,q128,128,12,34359738367,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,170.925000000000,,645,0,,,AtLeast +Quantum128BitADPS16,q128,128,13,34359738367,6400000000000,1664,6400000000000,true,local-minimum+proven-pruned-certification,128.0,190.535000000000,,719,0,,,AtLeast +Quantum128BitADPS16,q128,128,14,34359738367,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,210.410000000000,,794,0,,,AtLeast +Quantum128BitADPS16,q128,128,15,34359738367,6400000000000,1920,6400000000000,true,local-minimum+proven-pruned-certification,128.0,230.815000000000,,871,0,,,AtLeast +Quantum128BitADPS16,q128,128,16,34359738367,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,251.485000000000,,949,0,,,AtLeast +Quantum128BitADPS16,q128,128,17,34359738367,6400000000000,2176,6400000000000,true,local-minimum+proven-pruned-certification,128.0,272.420000000000,,1028,0,,,AtLeast +Quantum128BitADPS16,q128,128,18,34359738367,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,293.620000000000,,1108,0,,,AtLeast +Quantum128BitADPS16,q128,128,19,34359738367,6400000000000,2432,6400000000000,true,local-minimum+proven-pruned-certification,128.0,315.085000000000,,1189,0,,,AtLeast +Quantum128BitADPS16,q128,128,20,34359738367,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,336.815000000000,,1271,0,,,AtLeast +Quantum128BitADPS16,q128,256,1,34359738367,3,256,6400000000000,false,local-minimum+proven-pruned-certification,128.0,4777.417704894076,85.860000000000,768,0,324,0,Exact +Quantum128BitADPS16,q128,256,2,34359738367,9,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,140.450000000000,117.395000000000,530,0,443,0,Exact +Quantum128BitADPS16,q128,256,3,34359738367,52471,768,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,4,34359738367,1413717422,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,256,5,34359738367,6400000000000,1280,6400000000000,true,local-minimum+proven-pruned-certification,128.0,129.585000000000,,489,0,,,AtLeast +Quantum128BitADPS16,q128,256,6,34359738367,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,166.950000000000,,630,0,,,AtLeast +Quantum128BitADPS16,q128,256,7,34359738367,6400000000000,1792,6400000000000,true,local-minimum+proven-pruned-certification,128.0,205.905000000000,,777,0,,,AtLeast +Quantum128BitADPS16,q128,256,8,34359738367,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,245.920000000000,,928,0,,,AtLeast +Quantum128BitADPS16,q128,256,9,34359738367,6400000000000,2304,6400000000000,true,local-minimum+proven-pruned-certification,128.0,287.260000000000,,1084,0,,,AtLeast +Quantum128BitADPS16,q128,256,10,34359738367,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,329.660000000000,,1244,0,,,AtLeast +Quantum128BitADPS16,q128,256,11,34359738367,6400000000000,2816,6400000000000,true,local-minimum+proven-pruned-certification,128.0,372.855000000000,,1407,0,,,AtLeast +Quantum128BitADPS16,q128,256,12,34359738367,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,416.845000000000,,1573,0,,,AtLeast +Quantum128BitADPS16,q128,256,13,34359738367,6400000000000,3328,6400000000000,true,local-minimum+proven-pruned-certification,128.0,461.630000000000,,1742,0,,,AtLeast +Quantum128BitADPS16,q128,256,14,34359738367,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,506.945000000000,,1913,0,,,AtLeast +Quantum128BitADPS16,q128,256,15,34359738367,6400000000000,3840,6400000000000,true,local-minimum+proven-pruned-certification,128.0,553.055000000000,,2087,0,,,AtLeast +Quantum128BitADPS16,q128,256,16,34359738367,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,599.960000000000,,2264,0,,,AtLeast +Quantum128BitADPS16,q128,256,17,34359738367,6400000000000,4352,6400000000000,true,local-minimum+proven-pruned-certification,128.0,647.130000000000,,2442,0,,,AtLeast +Quantum128BitADPS16,q128,256,18,34359738367,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,695.095000000000,,2623,0,,,AtLeast +Quantum128BitADPS16,q128,256,19,34359738367,6400000000000,4864,6400000000000,true,local-minimum+proven-pruned-certification,128.0,743.325000000000,,2805,0,,,AtLeast +Quantum128BitADPS16,q128,256,20,34359738367,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,792.085000000000,,2989,0,,,AtLeast +Quantum128BitADPS16,q128,512,1,34359738367,4,512,6400000000000,false,local-minimum+proven-pruned-certification,128.0,204.050000000000,117.395000000000,770,0,443,0,Exact +Quantum128BitADPS16,q128,512,2,34359738367,706858711,1024,6400000000000,false,local-minimum+proven-pruned-certification,128.0,128.260000000000,127.995000000000,484,0,483,0,Exact +Quantum128BitADPS16,q128,512,3,34359738367,6400000000000,1536,6400000000000,true,local-minimum+proven-pruned-certification,128.0,163.240000000000,,616,0,,,AtLeast +Quantum128BitADPS16,q128,512,4,34359738367,6400000000000,2048,6400000000000,true,local-minimum+proven-pruned-certification,128.0,240.620000000000,,908,0,,,AtLeast +Quantum128BitADPS16,q128,512,5,34359738367,6400000000000,2560,6400000000000,true,local-minimum+proven-pruned-certification,128.0,322.505000000000,,1217,0,,,AtLeast +Quantum128BitADPS16,q128,512,6,34359738367,6400000000000,3072,6400000000000,true,local-minimum+proven-pruned-certification,128.0,407.835000000000,,1539,0,,,AtLeast +Quantum128BitADPS16,q128,512,7,34359738367,6400000000000,3584,6400000000000,true,local-minimum+proven-pruned-certification,128.0,496.345000000000,,1873,0,,,AtLeast +Quantum128BitADPS16,q128,512,8,34359738367,6400000000000,4096,6400000000000,true,local-minimum+proven-pruned-certification,128.0,587.505000000000,,2217,0,,,AtLeast +Quantum128BitADPS16,q128,512,9,34359738367,6400000000000,4608,6400000000000,true,local-minimum+proven-pruned-certification,128.0,680.520000000000,,2568,0,,,AtLeast +Quantum128BitADPS16,q128,512,10,34359738367,6400000000000,5120,6400000000000,true,local-minimum+proven-pruned-certification,128.0,775.655000000000,,2927,0,,,AtLeast +Quantum128BitADPS16,q128,512,11,34359738367,6400000000000,5632,6400000000000,true,local-minimum+proven-pruned-certification,128.0,872.645000000000,,3293,0,,,AtLeast +Quantum128BitADPS16,q128,512,12,34359738367,6400000000000,6144,6400000000000,true,local-minimum+proven-pruned-certification,128.0,971.225000000000,,3665,0,,,AtLeast +Quantum128BitADPS16,q128,512,13,34359738367,6400000000000,6656,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1071.130000000000,,4042,0,,,AtLeast +Quantum128BitADPS16,q128,512,14,34359738367,6400000000000,7168,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1172.360000000000,,4424,0,,,AtLeast +Quantum128BitADPS16,q128,512,15,34359738367,6400000000000,7680,6400000000000,true,local-minimum+proven-pruned-certification,128.0,1274.915000000000,,4811,0,,,AtLeast +Quantum128BitADPS16,q128,512,16,34359738367,6400000000000,8192,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:602586.088390466524,,4934,3276799999964432,,,AtLeast +Quantum128BitADPS16,q128,512,17,34359738367,6400000000000,8704,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:686837.015096194460,,4934,3276799999963338,,,AtLeast +Quantum128BitADPS16,q128,512,18,34359738367,6400000000000,9216,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:772435.463691817131,,4934,3276799999962275,,,AtLeast +Quantum128BitADPS16,q128,512,19,34359738367,6400000000000,9728,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:859262.981010752846,,4934,3276799999961241,,,AtLeast +Quantum128BitADPS16,q128,512,20,34359738367,6400000000000,10240,6400000000000,true,local-minimum+proven-pruned-certification,128.0,above-target:947218.868093804107,,4934,3276799999960234,,,AtLeast diff --git a/crates/akita-types/src/sis/generated_sis_table/policy_review.txt b/crates/akita-types/src/sis/generated_sis_table/policy_review.txt new file mode 100644 index 000000000..6faa428ea --- /dev/null +++ b/crates/akita-types/src/sis/generated_sis_table/policy_review.txt @@ -0,0 +1,479 @@ +Akita SIS generated-table policy review +policy=Quantum128BitADPS16 +estimator_revision=akita-sis-estimator-adps16-quantum-lgsa-v1 +optimizer_profile=local-minimum+proven-pruned-certification +certificate_domain=proven-pruned beta from 40 to the capped Euclidean baseline, with ADPS16 lower-bound early stop; for each visited beta, LGSA complete-profile transition and predecessor plus zeta 0 and 1 +modulus_profiles=q32:2^32-99,q64:2^64-59,q128:2^128-(2^32-22537) +norm=coefficient-l-infinity +shape=LGSA +adps16_quantum_exponent=0.2650 +target_log2_rop=128.0 +max_module_rank=20 +search_cap=6400000000000 +generated_ring_origin_rows=6700 +exact_boundaries=2637 +cap_hits=4063 +monotonicity=validated across rank and coefficient-bound axes +structured_attack_review=The scalarized estimate does not model ring/module structure, CRT splitting, subfield projection, or role-specific matrix structure. No extra numerical adjustment is applied; public claims remain explicitly limited to the scalarized ADPS16 quantum LGSA attack model. +role_coverage_columns=role,modulus_profile,d,coeff_linf_bound,max_module_rank,required_max_width +role_coverage=Inner,Q32Offset99,64,2,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,3,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,7,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,15,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,31,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,63,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,127,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,255,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,511,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,1023,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,2047,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,4095,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,8191,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,16383,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,32767,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,65535,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,131071,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,262143,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,524287,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,1048575,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,2097151,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,4194303,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,8388607,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,16777215,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,33554431,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,67108863,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,134217727,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,268435455,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,536870911,20,6400000000000 +role_coverage=Inner,Q32Offset99,64,1073741823,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,2,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,3,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,7,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,15,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,31,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,63,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,127,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,255,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,511,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,1023,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,2047,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,4095,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,8191,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,16383,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,32767,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,65535,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,131071,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,262143,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,524287,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,1048575,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,2097151,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,4194303,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,8388607,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,16777215,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,33554431,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,67108863,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,134217727,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,268435455,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,536870911,20,6400000000000 +role_coverage=Inner,Q32Offset99,128,1073741823,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,2,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,3,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,7,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,15,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,31,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,63,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,127,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,255,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,511,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,1023,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,2047,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,4095,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,8191,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,16383,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,32767,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,65535,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,131071,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,262143,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,524287,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,1048575,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,2097151,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,4194303,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,8388607,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,16777215,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,33554431,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,67108863,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,134217727,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,268435455,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,536870911,20,6400000000000 +role_coverage=Inner,Q32Offset99,256,1073741823,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,3,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,7,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,15,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,31,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,63,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,127,20,6400000000000 +role_coverage=Outer,Q32Offset99,64,255,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,3,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,7,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,15,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,31,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,63,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,127,20,6400000000000 +role_coverage=Outer,Q32Offset99,128,255,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,3,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,7,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,15,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,31,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,63,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,127,20,6400000000000 +role_coverage=Outer,Q32Offset99,256,255,20,6400000000000 +role_coverage=Open,Q32Offset99,64,3,20,6400000000000 +role_coverage=Open,Q32Offset99,64,7,20,6400000000000 +role_coverage=Open,Q32Offset99,64,15,20,6400000000000 +role_coverage=Open,Q32Offset99,64,31,20,6400000000000 +role_coverage=Open,Q32Offset99,64,63,20,6400000000000 +role_coverage=Open,Q32Offset99,64,127,20,6400000000000 +role_coverage=Open,Q32Offset99,64,255,20,6400000000000 +role_coverage=Open,Q32Offset99,128,3,20,6400000000000 +role_coverage=Open,Q32Offset99,128,7,20,6400000000000 +role_coverage=Open,Q32Offset99,128,15,20,6400000000000 +role_coverage=Open,Q32Offset99,128,31,20,6400000000000 +role_coverage=Open,Q32Offset99,128,63,20,6400000000000 +role_coverage=Open,Q32Offset99,128,127,20,6400000000000 +role_coverage=Open,Q32Offset99,128,255,20,6400000000000 +role_coverage=Open,Q32Offset99,256,3,20,6400000000000 +role_coverage=Open,Q32Offset99,256,7,20,6400000000000 +role_coverage=Open,Q32Offset99,256,15,20,6400000000000 +role_coverage=Open,Q32Offset99,256,31,20,6400000000000 +role_coverage=Open,Q32Offset99,256,63,20,6400000000000 +role_coverage=Open,Q32Offset99,256,127,20,6400000000000 +role_coverage=Open,Q32Offset99,256,255,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,2,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,3,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,7,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,15,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,31,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,63,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,127,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,255,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,511,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,1023,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,2047,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,4095,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,8191,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,16383,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,32767,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,65535,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,131071,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,262143,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,524287,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,1048575,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,2097151,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,4194303,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,8388607,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,16777215,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,33554431,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,67108863,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,134217727,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,268435455,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,536870911,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,1073741823,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,2147483647,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,4294967295,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,8589934591,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,17179869183,20,6400000000000 +role_coverage=Inner,Q64Offset59,64,34359738367,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,2,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,3,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,7,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,15,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,31,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,63,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,127,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,255,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,511,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,1023,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,2047,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,4095,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,8191,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,16383,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,32767,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,65535,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,131071,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,262143,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,524287,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,1048575,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,2097151,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,4194303,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,8388607,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,16777215,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,33554431,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,67108863,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,134217727,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,268435455,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,536870911,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,1073741823,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,2147483647,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,4294967295,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,8589934591,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,17179869183,20,6400000000000 +role_coverage=Inner,Q64Offset59,128,34359738367,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,2,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,3,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,7,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,15,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,31,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,63,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,127,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,255,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,511,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,1023,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,2047,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,4095,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,8191,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,16383,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,32767,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,65535,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,131071,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,262143,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,524287,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,1048575,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,2097151,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,4194303,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,8388607,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,16777215,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,33554431,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,67108863,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,134217727,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,268435455,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,536870911,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,1073741823,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,2147483647,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,4294967295,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,8589934591,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,17179869183,20,6400000000000 +role_coverage=Inner,Q64Offset59,256,34359738367,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,3,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,7,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,15,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,31,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,63,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,127,20,6400000000000 +role_coverage=Outer,Q64Offset59,64,255,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,3,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,7,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,15,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,31,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,63,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,127,20,6400000000000 +role_coverage=Outer,Q64Offset59,128,255,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,3,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,7,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,15,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,31,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,63,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,127,20,6400000000000 +role_coverage=Outer,Q64Offset59,256,255,20,6400000000000 +role_coverage=Open,Q64Offset59,64,3,20,6400000000000 +role_coverage=Open,Q64Offset59,64,7,20,6400000000000 +role_coverage=Open,Q64Offset59,64,15,20,6400000000000 +role_coverage=Open,Q64Offset59,64,31,20,6400000000000 +role_coverage=Open,Q64Offset59,64,63,20,6400000000000 +role_coverage=Open,Q64Offset59,64,127,20,6400000000000 +role_coverage=Open,Q64Offset59,64,255,20,6400000000000 +role_coverage=Open,Q64Offset59,128,3,20,6400000000000 +role_coverage=Open,Q64Offset59,128,7,20,6400000000000 +role_coverage=Open,Q64Offset59,128,15,20,6400000000000 +role_coverage=Open,Q64Offset59,128,31,20,6400000000000 +role_coverage=Open,Q64Offset59,128,63,20,6400000000000 +role_coverage=Open,Q64Offset59,128,127,20,6400000000000 +role_coverage=Open,Q64Offset59,128,255,20,6400000000000 +role_coverage=Open,Q64Offset59,256,3,20,6400000000000 +role_coverage=Open,Q64Offset59,256,7,20,6400000000000 +role_coverage=Open,Q64Offset59,256,15,20,6400000000000 +role_coverage=Open,Q64Offset59,256,31,20,6400000000000 +role_coverage=Open,Q64Offset59,256,63,20,6400000000000 +role_coverage=Open,Q64Offset59,256,127,20,6400000000000 +role_coverage=Open,Q64Offset59,256,255,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,2,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,3,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,7,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,15,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,31,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,63,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,127,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,255,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,511,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,1023,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,2047,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,4095,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,8191,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,16383,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,32767,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,65535,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,131071,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,262143,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,524287,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,1048575,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,2097151,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,4194303,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,8388607,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,16777215,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,33554431,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,67108863,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,134217727,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,268435455,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,536870911,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,1073741823,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,2147483647,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,4294967295,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,8589934591,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,17179869183,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,64,34359738367,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,2,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,3,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,7,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,15,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,31,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,63,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,127,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,255,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,511,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,1023,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,2047,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,4095,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,8191,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,16383,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,32767,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,65535,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,131071,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,262143,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,524287,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,1048575,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,2097151,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,4194303,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,8388607,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,16777215,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,33554431,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,67108863,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,134217727,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,268435455,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,536870911,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,1073741823,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,2147483647,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,4294967295,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,8589934591,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,17179869183,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,128,34359738367,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,2,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,3,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,7,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,15,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,31,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,63,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,127,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,255,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,511,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,1023,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,2047,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,4095,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,8191,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,16383,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,32767,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,65535,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,131071,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,262143,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,524287,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,1048575,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,2097151,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,4194303,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,8388607,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,16777215,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,33554431,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,67108863,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,134217727,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,268435455,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,536870911,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,1073741823,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,2147483647,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,4294967295,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,8589934591,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,17179869183,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,256,34359738367,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,2,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,3,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,7,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,15,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,31,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,63,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,127,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,255,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,511,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,1023,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,2047,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,4095,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,8191,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,16383,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,32767,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,65535,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,131071,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,262143,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,524287,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,1048575,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,2097151,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,4194303,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,8388607,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,16777215,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,33554431,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,67108863,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,134217727,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,268435455,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,536870911,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,1073741823,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,2147483647,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,4294967295,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,8589934591,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,17179869183,20,6400000000000 +role_coverage=Inner,Q128OffsetA7F7,512,34359738367,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,3,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,7,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,15,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,31,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,63,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,127,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,64,255,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,3,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,7,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,15,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,31,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,63,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,127,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,128,255,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,3,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,7,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,15,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,31,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,63,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,127,20,6400000000000 +role_coverage=Outer,Q128OffsetA7F7,256,255,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,3,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,7,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,15,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,31,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,63,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,127,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,64,255,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,3,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,7,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,15,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,31,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,63,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,127,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,128,255,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,3,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,7,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,15,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,31,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,63,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,127,20,6400000000000 +role_coverage=Open,Q128OffsetA7F7,256,255,20,6400000000000 diff --git a/crates/akita-types/src/sis/generated_sis_table/q128.rs b/crates/akita-types/src/sis/generated_sis_table/q128.rs index 0d8321f69..92195c3ef 100644 --- a/crates/akita-types/src/sis/generated_sis_table/q128.rs +++ b/crates/akita-types/src/sis/generated_sis_table/q128.rs @@ -1,126 +1,159 @@ -// AUTO-GENERATED from scalar ADPS16 quantum cutoffs. -// Sole hard gate: ADPS16 quantum LGSA at 128 bits. -// Runtime artifact: (d, B) -> max secure ring widths by module rank. -// Entries are scalar cutoffs projected as width[r-1] = cutoff_m(B, n=r*d) / d. -// D512 entries were estimated directly at D512 with the pinned -// lattice-estimator-compatible local-minimum profile and a 6.4e12 width cap. +// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand. +// +// SIS max-width tables for Quantum128BitADPS16. +// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits. +// Each row records the selected optimizer's accepted cutoff and rejected successor. +// Shape and norm: LGSA, coefficient L-infinity. +// Rust estimator path: akita-sis-estimator::width_table. +// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank. +// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d. +// Optimizer profile: local-minimum+proven-pruned-certification. // Profile: q128 #[rustfmt::skip] pub(super) fn sis_max_widths(d: u32, coeff_linf_bound: u128) -> Option<&'static [u64]> { match (d, coeff_linf_bound) { - (32, 3) => Some(&[19979, 6348636, 456127923, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 7) => Some(&[2761, 1006990, 75217545, 2682165204, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 15) => Some(&[416, 187886, 14696975, 535507948, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 31) => Some(&[52, 36910, 3063764, 114507756, 2662705393, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 63) => Some(&[19, 7236, 652064, 25145292, 594776687, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 127) => Some(&[15, 1356, 138456, 5557476, 134181294, 2306897754, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 255) => Some(&[13, 226, 28858, 1222248, 30268878, 528309868, 7153815406, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2) => Some(&[7606285, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 3) => Some(&[3174318, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 7) => Some(&[503495, 1341082602, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 15) => Some(&[93943, 267753974, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 31) => Some(&[18455, 57253878, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 63) => Some(&[3618, 12572646, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 127) => Some(&[678, 2778738, 1153448877, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 255) => Some(&[113, 611124, 264154934, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 511) => Some(&[17, 132654, 60315145, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 1023) => Some(&[13, 28188, 13683132, 2156497684, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2047) => Some(&[11, 5798, 3075102, 498819752, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 4095) => Some(&[10, 1132, 682455, 114683020, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 8191) => Some(&[9, 200, 148954, 26167092, 2245870358, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 16383) => Some(&[8, 26, 31782, 5914664, 520050025, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 32767) => Some(&[7, 20, 6565, 1321300, 119642672, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 65535) => Some(&[7, 18, 1289, 290768, 27311705, 1532463092, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 131071) => Some(&[7, 16, 231, 62728, 6175972, 354323146, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 262143) => Some(&[6, 14, 33, 13164, 1380285, 81364768, 3265730731, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 524287) => Some(&[6, 12, 26, 2648, 303909, 18531648, 757449250, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 1048575) => Some(&[5, 12, 23, 496, 65608, 4178804, 174581777, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2097151) => Some(&[5, 12, 21, 80, 13782, 930630, 39939876, 1252920728, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 4194303) => Some(&[5, 10, 19, 32, 2780, 203962, 9055397, 289440404, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 8388607) => Some(&[5, 10, 18, 28, 524, 43756, 2030468, 66396808, 1681984520, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 16777215) => Some(&[5, 10, 17, 24, 86, 9108, 448956, 15103592, 389055569, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 33554431) => Some(&[4, 10, 16, 20, 36, 1810, 97469, 3400520, 89383516, 1896641848, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 67108863) => Some(&[4, 8, 15, 20, 32, 332, 20639, 755820, 20369698, 438930606, 7920650689, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (128, 2) => Some(&[2500000000, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 3) => Some(&[2500000000, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 7) => Some(&[670541301, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 15) => Some(&[133876987, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 31) => Some(&[28626939, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 63) => Some(&[6286323, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 127) => Some(&[1389369, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 255) => Some(&[305562, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 511) => Some(&[66327, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1023) => Some(&[14094, 1078248842, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2047) => Some(&[2899, 249409876, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4095) => Some(&[566, 57341510, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8191) => Some(&[100, 13083546, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16383) => Some(&[13, 2957332, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 32767) => Some(&[10, 660650, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 65535) => Some(&[9, 145384, 766231546, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 131071) => Some(&[8, 31364, 177161573, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 262143) => Some(&[7, 6582, 40682384, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 524287) => Some(&[6, 1324, 9265824, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1048575) => Some(&[6, 248, 2089402, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2097151) => Some(&[6, 40, 465315, 626460364, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4194303) => Some(&[5, 16, 101981, 144720202, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8388607) => Some(&[5, 14, 21878, 33198404, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16777215) => Some(&[5, 12, 4554, 7551796, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 33554431) => Some(&[5, 10, 905, 1700260, 948320924, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 67108863) => Some(&[4, 10, 166, 377910, 219465303, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (256, 2) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 3) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 7) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 15) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 31) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 63) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 127) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 255) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 511) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1023) => Some(&[539124421, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2047) => Some(&[124704938, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4095) => Some(&[28670755, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8191) => Some(&[6541773, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16383) => Some(&[1478666, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 32767) => Some(&[330325, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 65535) => Some(&[72692, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 131071) => Some(&[15682, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 262143) => Some(&[3291, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 524287) => Some(&[662, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1048575) => Some(&[124, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2097151) => Some(&[20, 313230182, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4194303) => Some(&[8, 72360101, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8388607) => Some(&[7, 16599202, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16777215) => Some(&[6, 3775898, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 33554431) => Some(&[5, 850130, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 67108863) => Some(&[5, 188955, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (512, 2) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 3) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 7) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 15) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 31) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 63) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 127) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 255) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 511) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 1023) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 2047) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 4095) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 8191) => Some(&[6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 16383) => Some(&[3921318963744, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 32767) => Some(&[932039593399, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 65535) => Some(&[220939910338, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 131071) => Some(&[52215140679, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 262143) => Some(&[12297940616, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 524287) => Some(&[2885263533, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 1048575) => Some(&[673933377, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 2097151) => Some(&[156615091, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 4194303) => Some(&[36180050, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 8388607) => Some(&[8299601, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 16777215) => Some(&[1887949, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 33554431) => Some(&[425065, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), - (512, 67108863) => Some(&[94477, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 2) => Some(&[7606285, 18668388992, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 3) => Some(&[3174318, 7975201094, 2914178382100, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 7) => Some(&[503495, 1341082602, 500169842353, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 15) => Some(&[93943, 267753974, 102042220193, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 31) => Some(&[18455, 57253878, 22353782153, 3218053350580, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 63) => Some(&[3618, 12572646, 5048157684, 736589990868, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 127) => Some(&[678, 2778738, 1153448877, 170886860492, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 255) => Some(&[113, 611124, 264154934, 39825501708, 3166993892249, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 511) => Some(&[17, 132654, 60315145, 9280294264, 746377056676, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 1023) => Some(&[13, 28188, 13683132, 2156497684, 175684048442, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 2047) => Some(&[11, 5798, 3075102, 498819752, 41242425485, 2157683633816, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 4095) => Some(&[10, 1132, 682455, 114683020, 9646164350, 509901833600, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 8191) => Some(&[9, 200, 148954, 26167092, 2245870358, 120124466820, 4546980936192, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 16383) => Some(&[8, 26, 31782, 5914664, 520050025, 28195272262, 1076667159828, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 32767) => Some(&[7, 20, 6565, 1321300, 119642672, 6589641646, 254150464784, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 65535) => Some(&[7, 18, 1289, 290768, 27311705, 1532463092, 59780727921, 1767519282704, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 131071) => Some(&[7, 16, 231, 62728, 6175972, 354323146, 14004808455, 417721125432, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 262143) => Some(&[6, 14, 33, 13164, 1380285, 81364768, 3265730731, 98383524928, 2362764747955, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 524287) => Some(&[6, 12, 26, 2648, 303909, 18531648, 757449250, 23082108264, 558761681338, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 1048575) => Some(&[5, 12, 23, 496, 65608, 4178804, 174581777, 5391467016, 131698080202, 2659786302828, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 2097151) => Some(&[5, 12, 21, 80, 13782, 930630, 39939876, 1252920728, 30923658615, 629168057406, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 4194303) => Some(&[5, 10, 19, 32, 2780, 203962, 9055397, 289440400, 7229893703, 148336022082, 2586004514748, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 8388607) => Some(&[5, 10, 18, 28, 524, 43756, 2030468, 66396808, 1681984520, 34841860442, 611677877400, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 16777215) => Some(&[5, 10, 17, 24, 86, 9108, 448956, 15103592, 389055569, 8149034922, 144202758661, 2214477687732, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 33554431) => Some(&[4, 10, 16, 20, 36, 1810, 97469, 3400520, 89383516, 1896641848, 33868402171, 523620112376, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 67108863) => Some(&[4, 8, 15, 20, 32, 332, 20639, 755816, 20369698, 438930606, 7920650689, 123395926896, 1696295570804, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 134217727) => Some(&[4, 8, 14, 20, 29, 50, 4214, 165224, 4596512, 100902828, 1843297138, 28969024188, 400857097548, 4968968476794, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 268435455) => Some(&[4, 8, 14, 20, 27, 38, 811, 35320, 1024564, 23011534, 426534044, 6771499148, 94402607101, 1176946964642, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 536870911) => Some(&[4, 8, 13, 16, 25, 34, 139, 7312, 224810, 5197284, 98039111, 1574963932, 22145601942, 277896887978, 3158016421435, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 1073741823) => Some(&[4, 8, 12, 16, 24, 32, 45, 1440, 48305, 1159776, 22354617, 364198540, 5172029255, 65383664132, 747301545771, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 2147483647) => Some(&[3, 6, 12, 16, 23, 30, 39, 256, 10079, 254850, 5047855, 83644852, 1201738254, 15321734332, 176261032586, 1852865978304, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 4294967295) => Some(&[3, 6, 12, 16, 22, 28, 36, 48, 2011, 54868, 1126134, 19054244, 277565675, 3573943744, 41420574937, 437943940280, 4268819373105, 6400000000000, 6400000000000, 6400000000000]), + (64, 8589934591) => Some(&[3, 6, 11, 16, 21, 26, 34, 40, 372, 11480, 247372, 4297548, 63658864, 829234532, 9692927298, 103159542056, 1010798671748, 6400000000000, 6400000000000, 6400000000000]), + (64, 17179869183) => Some(&[3, 6, 11, 12, 20, 24, 32, 40, 58, 2302, 53234, 957324, 14476947, 191207892, 2257377058, 24206000352, 238581085699, 2181641924866, 6400000000000, 6400000000000]), + (64, 34359738367) => Some(&[3, 6, 10, 12, 19, 24, 30, 32, 48, 428, 11132, 209884, 3258368, 43765490, 522793016, 5654869688, 56110981244, 515841069084, 4428487982062, 6400000000000]), + (128, 2) => Some(&[9334194496, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 3) => Some(&[3987600547, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 7) => Some(&[670541301, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 15) => Some(&[133876987, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 31) => Some(&[28626939, 1609026675290, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 63) => Some(&[6286323, 368294995434, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 127) => Some(&[1389369, 85443430246, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 255) => Some(&[305562, 19912750854, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 511) => Some(&[66327, 4640147132, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1023) => Some(&[14094, 1078248842, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2047) => Some(&[2899, 249409876, 1078841816908, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4095) => Some(&[566, 57341510, 254950916800, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8191) => Some(&[100, 13083546, 60062233410, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16383) => Some(&[13, 2957332, 14097636131, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 32767) => Some(&[10, 660650, 3294820823, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 65535) => Some(&[9, 145384, 766231546, 883759641352, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 131071) => Some(&[8, 31364, 177161573, 208860562716, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 262143) => Some(&[7, 6582, 40682384, 49191762464, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 524287) => Some(&[6, 1324, 9265824, 11541054132, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1048575) => Some(&[6, 248, 2089402, 2695733508, 1329893151414, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2097151) => Some(&[6, 40, 465315, 626460364, 314584028703, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4194303) => Some(&[5, 16, 101981, 144720200, 74168011041, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8388607) => Some(&[5, 14, 21878, 33198404, 17420930221, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16777215) => Some(&[5, 12, 4554, 7551796, 4074517461, 1107238843866, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 33554431) => Some(&[5, 10, 905, 1700260, 948320924, 261810056188, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 67108863) => Some(&[4, 10, 166, 377908, 219465303, 61697963448, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 134217727) => Some(&[4, 10, 25, 82612, 50451414, 14484512094, 2484484238397, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 268435455) => Some(&[4, 10, 19, 17660, 11505767, 3385749574, 588473482321, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 536870911) => Some(&[4, 8, 17, 3656, 2598642, 787481966, 138948443989, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1073741823) => Some(&[4, 8, 16, 720, 579888, 182099270, 32691832066, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2147483647) => Some(&[3, 8, 15, 128, 127425, 41822426, 7660867166, 926432989152, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4294967295) => Some(&[3, 8, 14, 24, 27434, 9527122, 1786971872, 218971970140, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8589934591) => Some(&[3, 8, 13, 20, 5740, 2148774, 414617266, 51579771028, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 17179869183) => Some(&[3, 6, 12, 20, 1151, 478662, 95603946, 12103000176, 1090820962433, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 34359738367) => Some(&[3, 6, 12, 16, 214, 104942, 21882745, 2827434844, 257920534542, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2) => Some(&[1600000000000, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 3) => Some(&[1600000000000, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 7) => Some(&[1600000000000, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 15) => Some(&[1600000000000, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 31) => Some(&[804513337645, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 63) => Some(&[184147497717, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 127) => Some(&[42721715123, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 255) => Some(&[9956375427, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 511) => Some(&[2320073566, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1023) => Some(&[539124421, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2047) => Some(&[124704938, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4095) => Some(&[28670755, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8191) => Some(&[6541773, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16383) => Some(&[1478666, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 32767) => Some(&[330325, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 65535) => Some(&[72692, 441879820676, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 131071) => Some(&[15682, 104430281358, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 262143) => Some(&[3291, 24595881232, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 524287) => Some(&[662, 5770527066, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1048575) => Some(&[124, 1347866754, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2097151) => Some(&[20, 313230182, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4194303) => Some(&[8, 72360100, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8388607) => Some(&[7, 16599202, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16777215) => Some(&[6, 3775898, 553619421933, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 33554431) => Some(&[5, 850130, 130905028094, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 67108863) => Some(&[5, 188954, 30848981724, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 134217727) => Some(&[5, 41306, 7242256047, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 268435455) => Some(&[5, 8830, 1692874787, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 536870911) => Some(&[4, 1828, 393740983, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1073741823) => Some(&[4, 360, 91049635, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2147483647) => Some(&[4, 64, 20911213, 463216494576, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4294967295) => Some(&[4, 12, 4763561, 109485985070, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8589934591) => Some(&[4, 10, 1074387, 25789885514, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 17179869183) => Some(&[3, 10, 239331, 6051500088, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 34359738367) => Some(&[3, 8, 52471, 1413717422, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 2) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 3) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 7) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 15) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 31) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 63) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 127) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 255) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 511) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 1023) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 2047) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 4095) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 8191) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 16383) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 32767) => Some(&[800000000000, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 65535) => Some(&[220939910338, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 131071) => Some(&[52215140679, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 262143) => Some(&[12297940616, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 524287) => Some(&[2885263533, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 1048575) => Some(&[673933377, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 2097151) => Some(&[156615091, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 4194303) => Some(&[36180050, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 8388607) => Some(&[8299601, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 16777215) => Some(&[1887949, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 33554431) => Some(&[425065, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 67108863) => Some(&[94477, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 134217727) => Some(&[20653, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 268435455) => Some(&[4415, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 536870911) => Some(&[914, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 1073741823) => Some(&[180, 800000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 2147483647) => Some(&[32, 231608247288, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 4294967295) => Some(&[6, 54742992535, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 8589934591) => Some(&[5, 12894942757, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 17179869183) => Some(&[5, 3025750044, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (512, 34359738367) => Some(&[4, 706858711, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), _ => None, } } diff --git a/crates/akita-types/src/sis/generated_sis_table/q32.rs b/crates/akita-types/src/sis/generated_sis_table/q32.rs index 831adf760..5f3275772 100644 --- a/crates/akita-types/src/sis/generated_sis_table/q32.rs +++ b/crates/akita-types/src/sis/generated_sis_table/q32.rs @@ -1,31 +1,30 @@ -// AUTO-GENERATED by projection from scalar ADPS16 quantum cutoffs. -// Sole hard gate: ADPS16 quantum LGSA at 128 bits. -// Runtime artifact: (d, B) -> max secure ring widths by module rank. -// Entries are scalar cutoffs projected as width[r-1] = cutoff_m(B, n=r*d) / d. +// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand. +// +// SIS max-width tables for Quantum128BitADPS16. +// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits. +// Each row records the selected optimizer's accepted cutoff and rejected successor. +// Shape and norm: LGSA, coefficient L-infinity. +// Rust estimator path: akita-sis-estimator::width_table. +// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank. +// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d. +// Optimizer profile: local-minimum+proven-pruned-certification. // Profile: q32 #[rustfmt::skip] pub(super) fn sis_max_widths(d: u32, coeff_linf_bound: u128) -> Option<&'static [u64]> { match (d, coeff_linf_bound) { - (32, 3) => Some(&[10, 224, 2793, 19976, 106895, 473176, 1826618, 6348632, 20290318, 60522888, 170339484, 456127916, 1169656025, 2887277122, 6889994501, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 7) => Some(&[7, 16, 337, 2760, 15704, 72040, 284796, 1006984, 3260724, 9827418, 27893087, 75217544, 194035028, 481438884, 1154030771, 2682165168, 6062688471, 10000000000, 10000000000, 10000000000]), - (32, 15) => Some(&[5, 12, 34, 416, 2633, 12734, 51986, 187880, 618224, 1886322, 5406631, 14696972, 38167676, 95241956, 229422746, 535507936, 1215031353, 2686921760, 5804336356, 10000000000]), - (32, 31) => Some(&[4, 8, 15, 52, 434, 2308, 9901, 36904, 124085, 384656, 1116099, 3063764, 8020667, 20149456, 48815555, 114507752, 260935071, 579235954, 1255529007, 2662705352]), - (32, 63) => Some(&[3, 8, 13, 16, 58, 392, 1848, 7232, 25103, 79538, 234565, 652064, 1724376, 4368066, 10656276, 25145288, 57594131, 128423554, 279467298, 594776676]), - (32, 127) => Some(&[3, 6, 11, 12, 22, 52, 315, 1352, 4955, 16224, 48960, 138456, 371048, 949986, 2337965, 5557472, 12809008, 28716222, 62785901, 134181292]), - (32, 255) => Some(&[3, 6, 10, 12, 18, 24, 40, 224, 919, 3182, 9954, 28856, 78782, 204614, 509373, 1222248, 2839333, 6408202, 14092199, 30268876]), - (64, 2) => Some(&[324, 25090, 575569, 7606284, 71853765, 538172268, 3391152362, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 3) => Some(&[112, 9988, 236588, 3174316, 30261444, 228063958, 1443638561, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 7) => Some(&[8, 1380, 36020, 503492, 4913709, 37608772, 240719442, 1341082584, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 15) => Some(&[6, 208, 6367, 93940, 943161, 7348486, 47620978, 267753968, 1343460880, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 31) => Some(&[4, 26, 1154, 18452, 192328, 1531882, 10074728, 57253876, 289617977, 1331352676, 5646769108, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 63) => Some(&[4, 8, 196, 3616, 39769, 326032, 2184033, 12572644, 64211777, 297388338, 1268924053, 5048157600, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 127) => Some(&[3, 6, 26, 676, 8112, 69228, 474993, 2778736, 14358111, 67090646, 288284835, 1153448856, 4338808205, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 255) => Some(&[3, 6, 12, 112, 1591, 14428, 102307, 611124, 3204101, 15134438, 65579247, 264154928, 999139380, 3576907640, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 511) => Some(&[2, 6, 10, 16, 288, 2900, 21587, 132652, 708715, 3393134, 14853966, 60315144, 229625398, 826498656, 2831227863, 9280294092, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 1023) => Some(&[2, 4, 8, 12, 43, 546, 4403, 28188, 154468, 752556, 3336833, 13683132, 52501461, 190179112, 654943907, 2156497644, 6820473765, 10000000000, 10000000000, 10000000000]), - (64, 2047) => Some(&[2, 4, 7, 8, 16, 90, 849, 5796, 32948, 164324, 740738, 3075100, 11912412, 43483374, 150696519, 498819744, 1584763597, 4852018848, 10000000000, 10000000000]), + (64, 2) => Some(&[324, 25090, 575569, 7606284, 71853765, 538172268, 3391152362, 18668388748, 92125536693, 415144913962, 1732070632527, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 3) => Some(&[112, 9988, 236588, 3174316, 30261444, 228063958, 1443638561, 7975200988, 39466941674, 178260238176, 745181491885, 2914178335456, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 7) => Some(&[8, 1380, 36020, 503492, 4913709, 37608772, 240719442, 1341082584, 6681003244, 30340334350, 127407183430, 500169834348, 1851532056946, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 15) => Some(&[6, 208, 6367, 93940, 943161, 7348486, 47620978, 267753968, 1343460880, 6136166874, 25889677714, 102042218560, 379031410507, 1336211803866, 4496517693285, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 31) => Some(&[4, 26, 1154, 18452, 192328, 1531882, 10074728, 57253876, 289617977, 1331352676, 5646769108, 22353781792, 83340596623, 294742214500, 994608356897, 3218053291096, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 63) => Some(&[4, 8, 196, 3616, 39769, 326032, 2184033, 12572644, 64211777, 297388338, 1268924053, 5048157600, 18899175964, 67076469344, 227047034226, 736589977256, 2299848224005, 6400000000000, 6400000000000, 6400000000000]), + (64, 127) => Some(&[3, 6, 26, 676, 8112, 69228, 474993, 2778736, 14358111, 67090646, 288284835, 1153448856, 4338808205, 15461239324, 52515965714, 170886857332, 534970437834, 1616981204822, 4733284551884, 6400000000000]), + (64, 255) => Some(&[3, 6, 12, 112, 1591, 14428, 102307, 611124, 3204101, 15134438, 65579247, 264154928, 999139380, 3576907640, 12197358320, 39825500972, 125047463693, 378957707294, 1111886036117, 3166993826792]), + (64, 511) => Some(&[2, 6, 10, 16, 288, 2900, 21587, 132652, 708715, 3393134, 14853966, 60315144, 229625398, 826498656, 2831227863, 9280294092, 29237679207, 88868171090, 261429915996, 746377041248]), + (64, 1023) => Some(&[2, 4, 8, 12, 43, 546, 4403, 28188, 154468, 752556, 3336833, 13683132, 52501461, 190179112, 654943907, 2156497644, 6820473765, 20801013426, 61373915251, 175684044808]), + (64, 2047) => Some(&[2, 4, 7, 8, 16, 90, 849, 5796, 32948, 164324, 740738, 3075100, 11912412, 43483374, 150696519, 498819744, 1584763597, 4852018848, 14364677294, 41242424632]), (64, 4095) => Some(&[2, 4, 7, 8, 14, 20, 146, 1132, 6808, 35106, 161800, 682452, 2675642, 9859226, 34429252, 114683016, 366284951, 1126528700, 3348243889, 9646164148]), (64, 8191) => Some(&[2, 4, 6, 8, 12, 16, 23, 200, 1338, 7268, 34568, 148952, 593138, 2211676, 7796099, 26167092, 84104618, 260052596, 776466932, 2245870308]), (64, 16383) => Some(&[1, 4, 6, 8, 11, 14, 18, 24, 240, 1432, 7155, 31780, 129241, 489396, 1745670, 5914664, 19157117, 59614104, 178962912, 520050012]), @@ -41,58 +40,70 @@ pub(super) fn sis_max_widths(d: u32, coeff_linf_bound: u128) -> Option<&'static (64, 16777215) => Some(&[1, 2, 3, 4, 6, 6, 9, 8, 12, 12, 15, 16, 19, 20, 23, 24, 28, 32, 37, 84]), (64, 33554431) => Some(&[1, 2, 3, 4, 6, 6, 8, 8, 11, 12, 14, 16, 17, 18, 21, 20, 26, 28, 32, 36]), (64, 67108863) => Some(&[1, 2, 3, 4, 5, 6, 8, 8, 10, 12, 13, 12, 16, 18, 20, 20, 24, 26, 29, 32]), - (128, 2) => Some(&[12545, 3803142, 269086134, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 3) => Some(&[4994, 1587158, 114031979, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 7) => Some(&[690, 251746, 18804386, 670541292, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 15) => Some(&[104, 46970, 3674243, 133876984, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 31) => Some(&[13, 9226, 765941, 28626938, 665676338, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 63) => Some(&[4, 1808, 163016, 6286322, 148694169, 2524078800, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 127) => Some(&[3, 338, 34614, 1389368, 33545323, 576724428, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 255) => Some(&[3, 56, 7214, 305562, 7567219, 132077464, 1788453820, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 511) => Some(&[3, 8, 1450, 66326, 1696567, 30157572, 413249328, 4640147046, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1023) => Some(&[2, 6, 273, 14094, 376278, 6841566, 95089556, 1078248822, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2047) => Some(&[2, 4, 45, 2898, 82162, 1537550, 21741687, 249409872, 2426009424, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4095) => Some(&[2, 4, 10, 566, 17553, 341226, 4929613, 57341508, 563264350, 4823082074, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8191) => Some(&[2, 4, 8, 100, 3634, 74476, 1105838, 13083546, 130026298, 1122935154, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16383) => Some(&[2, 4, 7, 12, 716, 15890, 244698, 2957332, 29807052, 260025006, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 32767) => Some(&[1, 2, 6, 10, 129, 3282, 53184, 660650, 6775294, 59821334, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 65535) => Some(&[1, 2, 6, 8, 19, 644, 11280, 145384, 1524099, 13655852, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 131071) => Some(&[1, 2, 5, 8, 11, 114, 2309, 31364, 338387, 3087986, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 262143) => Some(&[1, 2, 5, 6, 10, 16, 446, 6582, 73868, 690142, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 524287) => Some(&[1, 2, 4, 6, 9, 12, 77, 1324, 15761, 151954, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1048575) => Some(&[1, 2, 4, 6, 8, 10, 16, 248, 3255, 32804, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2097151) => Some(&[1, 2, 4, 6, 8, 10, 13, 40, 639, 6890, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4194303) => Some(&[1, 2, 4, 4, 7, 8, 12, 16, 114, 1390, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8388607) => Some(&[1, 2, 3, 4, 7, 8, 11, 14, 19, 262, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16777215) => Some(&[1, 2, 3, 4, 6, 8, 10, 12, 16, 42, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 33554431) => Some(&[1, 2, 3, 4, 6, 8, 9, 10, 14, 18, 91, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 67108863) => Some(&[1, 2, 3, 4, 6, 6, 9, 10, 13, 16, 20, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (256, 2) => Some(&[1901571, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 3) => Some(&[793579, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 7) => Some(&[125873, 335270646, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 15) => Some(&[23485, 66938492, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 31) => Some(&[4613, 14313469, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 63) => Some(&[904, 3143161, 1262039400, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 127) => Some(&[169, 694684, 288362214, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 255) => Some(&[28, 152781, 66038732, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 511) => Some(&[4, 33163, 15078786, 2320073523, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1023) => Some(&[3, 7047, 3420783, 539124411, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2047) => Some(&[2, 1449, 768775, 124704936, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4095) => Some(&[2, 283, 170613, 28670754, 2411541037, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8191) => Some(&[2, 50, 37238, 6541773, 561467577, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16383) => Some(&[2, 6, 7945, 1478666, 130012503, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 32767) => Some(&[1, 5, 1641, 330325, 29910667, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 65535) => Some(&[1, 4, 322, 72692, 6827926, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 131071) => Some(&[1, 4, 57, 15682, 1543993, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 262143) => Some(&[1, 3, 8, 3291, 345071, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 524287) => Some(&[1, 3, 6, 662, 75977, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1048575) => Some(&[1, 3, 5, 124, 16402, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2097151) => Some(&[1, 3, 5, 20, 3445, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4194303) => Some(&[1, 2, 4, 8, 695, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8388607) => Some(&[1, 2, 4, 7, 131, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16777215) => Some(&[1, 2, 4, 6, 21, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 33554431) => Some(&[1, 2, 4, 5, 9, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 67108863) => Some(&[1, 2, 3, 5, 8, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), + (64, 134217727) => Some(&[1, 2, 3, 4, 5, 6, 7, 8, 10, 10, 13, 12, 16, 16, 19, 20, 22, 24, 26, 28]), + (64, 268435455) => Some(&[1, 2, 3, 4, 5, 6, 7, 8, 10, 10, 12, 12, 15, 16, 18, 16, 21, 22, 25, 24]), + (64, 536870911) => Some(&[0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 12, 14, 16, 17, 16, 20, 22, 23, 24]), + (64, 1073741823) => Some(&[0, 0, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 14, 16, 16, 19, 20, 22, 24]), + (128, 2) => Some(&[12545, 3803142, 269086134, 9334194374, 207572456981, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 3) => Some(&[4994, 1587158, 114031979, 3987600494, 89130119088, 1457089167728, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 7) => Some(&[690, 251746, 18804386, 670541292, 15170167175, 250084917174, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 15) => Some(&[104, 46970, 3674243, 133876984, 3068083437, 51021109280, 668105901933, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 31) => Some(&[13, 9226, 765941, 28626938, 665676338, 11176890896, 147371107250, 1609026645548, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 63) => Some(&[4, 1808, 163016, 6286322, 148694169, 2524078800, 33538234672, 368294988628, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 127) => Some(&[3, 338, 34614, 1389368, 33545323, 576724428, 7730619662, 85443428666, 808490602411, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 255) => Some(&[3, 56, 7214, 305562, 7567219, 132077464, 1788453820, 19912750486, 189478853647, 1583496913396, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 511) => Some(&[3, 8, 1450, 66326, 1696567, 30157572, 413249328, 4640147046, 44434085545, 373188520624, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1023) => Some(&[2, 6, 273, 14094, 376278, 6841566, 95089556, 1078248822, 10400506713, 87842022404, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2047) => Some(&[2, 4, 45, 2898, 82162, 1537550, 21741687, 249409872, 2426009424, 20621212316, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4095) => Some(&[2, 4, 10, 566, 17553, 341226, 4929613, 57341508, 563264350, 4823082074, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8191) => Some(&[2, 4, 8, 100, 3634, 74476, 1105838, 13083546, 130026298, 1122935154, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16383) => Some(&[2, 4, 7, 12, 716, 15890, 244698, 2957332, 29807052, 260025006, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 32767) => Some(&[1, 2, 6, 10, 129, 3282, 53184, 660650, 6775294, 59821334, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 65535) => Some(&[1, 2, 6, 8, 19, 644, 11280, 145384, 1524099, 13655852, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 131071) => Some(&[1, 2, 5, 8, 11, 114, 2309, 31364, 338387, 3087986, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 262143) => Some(&[1, 2, 5, 6, 10, 16, 446, 6582, 73868, 690142, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 524287) => Some(&[1, 2, 4, 6, 9, 12, 77, 1324, 15761, 151954, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1048575) => Some(&[1, 2, 4, 6, 8, 10, 16, 248, 3255, 32804, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2097151) => Some(&[1, 2, 4, 6, 8, 10, 13, 40, 639, 6890, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4194303) => Some(&[1, 2, 4, 4, 7, 8, 12, 16, 114, 1390, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8388607) => Some(&[1, 2, 3, 4, 7, 8, 11, 14, 19, 262, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16777215) => Some(&[1, 2, 3, 4, 6, 8, 10, 12, 16, 42, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 33554431) => Some(&[1, 2, 3, 4, 6, 8, 9, 10, 14, 18, 91, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 67108863) => Some(&[1, 2, 3, 4, 6, 6, 9, 10, 13, 16, 20, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 134217727) => Some(&[1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 17, 22, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 268435455) => Some(&[1, 2, 3, 4, 5, 6, 8, 8, 11, 12, 15, 18, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 536870911) => Some(&[1, 2, 3, 4, 5, 6, 8, 8, 11, 12, 14, 16, 20, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1073741823) => Some(&[0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 18, 20, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2) => Some(&[1901571, 4667097187, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 3) => Some(&[793579, 1993800247, 728544583864, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 7) => Some(&[125873, 335270646, 125042458587, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 15) => Some(&[23485, 66938492, 25510554640, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 31) => Some(&[4613, 14313469, 5588445448, 804513322774, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 63) => Some(&[904, 3143161, 1262039400, 184147494314, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 127) => Some(&[169, 694684, 288362214, 42721714333, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 255) => Some(&[28, 152781, 66038732, 9956375243, 791748456698, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 511) => Some(&[4, 33163, 15078786, 2320073523, 186594260312, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1023) => Some(&[3, 7047, 3420783, 539124411, 43921011202, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2047) => Some(&[2, 1449, 768775, 124704936, 10310606158, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4095) => Some(&[2, 283, 170613, 28670754, 2411541037, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8191) => Some(&[2, 50, 37238, 6541773, 561467577, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16383) => Some(&[2, 6, 7945, 1478666, 130012503, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 32767) => Some(&[1, 5, 1641, 330325, 29910667, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 65535) => Some(&[1, 4, 322, 72692, 6827926, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 131071) => Some(&[1, 4, 57, 15682, 1543993, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 262143) => Some(&[1, 3, 8, 3291, 345071, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 524287) => Some(&[1, 3, 6, 662, 75977, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1048575) => Some(&[1, 3, 5, 124, 16402, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2097151) => Some(&[1, 3, 5, 20, 3445, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4194303) => Some(&[1, 2, 4, 8, 695, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8388607) => Some(&[1, 2, 4, 7, 131, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16777215) => Some(&[1, 2, 4, 6, 21, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 33554431) => Some(&[1, 2, 4, 5, 9, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 67108863) => Some(&[1, 2, 3, 5, 8, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 134217727) => Some(&[1, 2, 3, 5, 7, 11, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 268435455) => Some(&[1, 2, 3, 4, 6, 9, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 536870911) => Some(&[1, 2, 3, 4, 6, 8, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1073741823) => Some(&[1, 2, 3, 4, 6, 7, 10, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), _ => None, } } diff --git a/crates/akita-types/src/sis/generated_sis_table/q64.rs b/crates/akita-types/src/sis/generated_sis_table/q64.rs index 09393b133..a7b4f33e9 100644 --- a/crates/akita-types/src/sis/generated_sis_table/q64.rs +++ b/crates/akita-types/src/sis/generated_sis_table/q64.rs @@ -1,98 +1,124 @@ -// AUTO-GENERATED by projection from scalar ADPS16 quantum cutoffs. -// Sole hard gate: ADPS16 quantum LGSA at 128 bits. -// Runtime artifact: (d, B) -> max secure ring widths by module rank. -// Entries are scalar cutoffs projected as width[r-1] = cutoff_m(B, n=r*d) / d. +// AUTO-GENERATED by crates/akita-sis-estimator/examples/infinity_width_table.rs -- do not edit by hand. +// +// SIS max-width tables for Quantum128BitADPS16. +// Sole hard gate: ADPS16 quantum LGSA model >= 128 bits. +// Each row records the selected optimizer's accepted cutoff and rejected successor. +// Shape and norm: LGSA, coefficient L-infinity. +// Rust estimator path: akita-sis-estimator::width_table. +// Runtime keys are (d, coefficient-L-infinity bound) -> widths by module rank. +// Values are projected from scalar cutoffs: width[r-1] = cutoff_m(B, n=r*d) / d. +// Optimizer profile: local-minimum+proven-pruned-certification. // Profile: q64 #[rustfmt::skip] pub(super) fn sis_max_widths(d: u32, coeff_linf_bound: u128) -> Option<&'static [u64]> { match (d, coeff_linf_bound) { - (32, 3) => Some(&[224, 19978, 473177, 6348636, 60522889, 456127922, 2887277159, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 7) => Some(&[16, 2760, 72040, 1006988, 9827418, 75217544, 481438891, 2682165200, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 15) => Some(&[12, 416, 12734, 187884, 1886323, 14696974, 95241958, 535507944, 2686921797, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 31) => Some(&[9, 52, 2308, 36908, 384656, 3063764, 20149457, 114507752, 579235962, 2662705392, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 63) => Some(&[8, 18, 393, 7236, 79538, 652064, 4368066, 25145288, 128423556, 594776686, 2537848145, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 127) => Some(&[7, 14, 52, 1356, 16224, 138456, 949987, 5557472, 28716223, 134181294, 576569680, 2306897752, 8677616556, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (32, 255) => Some(&[6, 12, 24, 224, 3183, 28858, 204614, 1222248, 6408202, 30268878, 131158497, 528309868, 1998278794, 7153815406, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2) => Some(&[25091, 7606284, 538172276, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 3) => Some(&[9989, 3174318, 228063961, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 7) => Some(&[1380, 503494, 37608772, 1341082600, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 15) => Some(&[208, 93942, 7348487, 267753972, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 31) => Some(&[26, 18454, 1531882, 57253876, 1331352696, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 63) => Some(&[9, 3618, 326032, 12572644, 297388343, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 127) => Some(&[7, 678, 69228, 2778736, 67090647, 1153448876, 5000000000, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 255) => Some(&[6, 112, 14429, 611124, 15134439, 264154934, 3576907703, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 511) => Some(&[6, 16, 2901, 132652, 3393135, 60315144, 826498675, 5000000000, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 1023) => Some(&[5, 12, 547, 28188, 752556, 13683132, 190179116, 2156497684, 5000000000, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2047) => Some(&[5, 10, 90, 5796, 164325, 3075102, 43483374, 498819752, 4852018945, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 4095) => Some(&[4, 10, 20, 1132, 35107, 682454, 9859226, 114683020, 1126528723, 5000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 8191) => Some(&[4, 8, 16, 200, 7268, 148954, 2211676, 26167092, 260052602, 2245870358, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 16383) => Some(&[4, 8, 14, 24, 1433, 31782, 489396, 5914664, 59614105, 520050024, 4027147432, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 32767) => Some(&[3, 6, 13, 20, 259, 6564, 106368, 1321300, 13550589, 119642672, 934763722, 6589641644, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 65535) => Some(&[3, 6, 12, 16, 38, 1288, 22560, 290768, 3048200, 27311704, 215652456, 1532463092, 9952916780, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 131071) => Some(&[3, 6, 11, 16, 23, 230, 4618, 62728, 676775, 6175972, 49392108, 354323144, 2318106192, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 262143) => Some(&[3, 6, 10, 12, 20, 32, 893, 13164, 147737, 1380284, 11214125, 81364768, 536911890, 3265730730, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 524287) => Some(&[3, 6, 9, 12, 18, 26, 155, 2648, 31522, 303908, 2518902, 18531648, 123548554, 757449250, 4317685660, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 1048575) => Some(&[2, 4, 9, 12, 17, 22, 32, 496, 6510, 65608, 558198, 4178804, 28209447, 174581776, 1002534960, 5391467020, 10000000000, 10000000000, 10000000000, 10000000000]), - (64, 2097151) => Some(&[2, 4, 8, 12, 16, 20, 27, 80, 1278, 13782, 121546, 930628, 6380532, 39939876, 231368053, 1252920728, 6392542592, 10000000000, 10000000000, 10000000000]), - (64, 4194303) => Some(&[2, 4, 8, 8, 15, 18, 24, 32, 229, 2780, 25843, 203960, 1426422, 9055396, 53012422, 289440404, 1486506569, 7229893702, 10000000000, 10000000000]), - (64, 8388607) => Some(&[2, 4, 7, 8, 14, 18, 22, 28, 39, 524, 5310, 43756, 314185, 2030468, 12041715, 66396808, 343657812, 1681984520, 7830403715, 10000000000]), + (64, 2) => Some(&[25091, 7606284, 538172276, 18668388992, 415144920028, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 3) => Some(&[9989, 3174318, 228063961, 7975201092, 178260240781, 2914178382100, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 7) => Some(&[1380, 503494, 37608772, 1341082600, 30340334794, 500169842352, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 15) => Some(&[208, 93942, 7348487, 267753972, 6136166965, 102042220192, 1336211826970, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 31) => Some(&[26, 18454, 1531882, 57253876, 1331352696, 22353782152, 294742219596, 3218053350580, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 63) => Some(&[9, 3618, 326032, 12572644, 297388343, 5048157684, 67076470503, 736589990868, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 127) => Some(&[7, 678, 69228, 2778736, 67090647, 1153448876, 15461239592, 170886860492, 1616981236522, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 255) => Some(&[6, 112, 14429, 611124, 15134439, 264154934, 3576907703, 39825501708, 378957714723, 3166993892248, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 511) => Some(&[6, 16, 2901, 132652, 3393135, 60315144, 826498675, 9280294264, 88868172833, 746377056676, 5612227639746, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 1023) => Some(&[5, 12, 547, 28188, 752556, 13683132, 190179116, 2156497684, 20801013835, 175684048442, 1326960347925, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 2047) => Some(&[5, 10, 90, 5796, 164325, 3075102, 43483374, 498819752, 4852018945, 41242425484, 313083645419, 2157683633816, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 4095) => Some(&[4, 10, 20, 1132, 35107, 682454, 9859226, 114683020, 1126528723, 9646164350, 73647657283, 509901833600, 3243403127356, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 8191) => Some(&[4, 8, 16, 200, 7268, 148954, 2211676, 26167092, 260052602, 2245870358, 17259921251, 120124466820, 767351480181, 4546980936192, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 16383) => Some(&[4, 8, 14, 24, 1433, 31782, 489396, 5914664, 59614105, 520050024, 4027147432, 28195272260, 180978445025, 1076667159828, 5988853766979, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 32767) => Some(&[3, 6, 13, 20, 259, 6564, 106368, 1321300, 13550589, 119642672, 934763722, 6589641644, 42529474129, 254150464784, 1418971239841, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 65535) => Some(&[3, 6, 12, 16, 38, 1288, 22560, 290768, 3048200, 27311704, 215652456, 1532463092, 9952916780, 59780727920, 335176344165, 1767519282704, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (64, 131071) => Some(&[3, 6, 11, 16, 23, 230, 4618, 62728, 676775, 6175972, 49392108, 354323144, 2318106192, 14004808454, 78897412324, 417721125436, 2091855127594, 6400000000000, 6400000000000, 6400000000000]), + (64, 262143) => Some(&[3, 6, 10, 12, 20, 32, 893, 13164, 147737, 1380284, 11214125, 81364768, 536911890, 3265730730, 18498546337, 98383524932, 494560561252, 2362764747954, 6400000000000, 6400000000000]), + (64, 524287) => Some(&[3, 6, 9, 12, 18, 26, 155, 2648, 31522, 303908, 2518902, 18531648, 123548554, 757449250, 4317685660, 23082108268, 116530778571, 558761681338, 2556857440277, 6400000000000]), + (64, 1048575) => Some(&[2, 4, 9, 12, 17, 22, 32, 496, 6510, 65608, 558198, 4178804, 28209447, 174581776, 1002534960, 5391467020, 27352873508, 131698080202, 604767988583, 2659786302828]), + (64, 2097151) => Some(&[2, 4, 8, 12, 16, 20, 27, 80, 1278, 13782, 121546, 930628, 6380532, 39939876, 231368053, 1252920728, 6392542592, 30923658614, 142569423671, 629168057404]), + (64, 4194303) => Some(&[2, 4, 8, 8, 15, 18, 24, 32, 229, 2780, 25843, 203960, 1426422, 9055396, 53012422, 289440404, 1486506569, 7229893702, 33483720963, 148336022080]), + (64, 8388607) => Some(&[2, 4, 7, 8, 14, 18, 22, 28, 39, 524, 5310, 43756, 314185, 2030468, 12041715, 66396808, 343657812, 1681984520, 7830403715, 34841860440]), (64, 16777215) => Some(&[2, 4, 7, 8, 13, 16, 21, 24, 32, 86, 1033, 9108, 67860, 448956, 2706346, 15103592, 78903982, 389055568, 1822218883, 8149034920]), (64, 33554431) => Some(&[2, 4, 7, 8, 12, 16, 19, 20, 29, 36, 182, 1808, 14265, 97468, 600174, 3400520, 17967875, 89383516, 421636093, 1896641848]), (64, 67108863) => Some(&[2, 4, 7, 8, 12, 14, 18, 20, 26, 32, 41, 332, 2880, 20638, 130812, 755820, 4050748, 20369698, 96907738, 438930604]), - (128, 2) => Some(&[3803142, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 3) => Some(&[1587159, 2500000000, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 7) => Some(&[251747, 670541300, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 15) => Some(&[46971, 133876986, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 31) => Some(&[9227, 28626938, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 63) => Some(&[1809, 6286322, 2500000000, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 127) => Some(&[339, 1389368, 576724438, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 255) => Some(&[56, 305562, 132077467, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 511) => Some(&[8, 66326, 30157572, 2500000000, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1023) => Some(&[6, 14094, 6841566, 1078248842, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2047) => Some(&[5, 2898, 1537551, 249409876, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4095) => Some(&[5, 566, 341227, 57341510, 2500000000, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8191) => Some(&[4, 100, 74477, 13083546, 1122935179, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16383) => Some(&[4, 12, 15891, 2957332, 260025012, 5000000000, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 32767) => Some(&[3, 10, 3282, 660650, 59821336, 3294820822, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 65535) => Some(&[3, 8, 644, 145384, 13655852, 766231546, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 131071) => Some(&[3, 8, 115, 31364, 3087986, 177161572, 5000000000, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 262143) => Some(&[3, 6, 16, 6582, 690142, 40682384, 1632865365, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 524287) => Some(&[3, 6, 13, 1324, 151954, 9265824, 378724625, 5000000000, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 1048575) => Some(&[2, 6, 11, 248, 32804, 2089402, 87290888, 2695733510, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 2097151) => Some(&[2, 6, 10, 40, 6891, 465314, 19969938, 626460364, 5000000000, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 4194303) => Some(&[2, 4, 9, 16, 1390, 101980, 4527698, 144720202, 3614946851, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 8388607) => Some(&[2, 4, 9, 14, 262, 21878, 1015234, 33198404, 840992260, 5000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 16777215) => Some(&[2, 4, 8, 12, 43, 4554, 224478, 7551796, 194527784, 4074517460, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 33554431) => Some(&[2, 4, 8, 10, 18, 904, 48734, 1700260, 44691758, 948320924, 16934201085, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (128, 67108863) => Some(&[2, 4, 7, 10, 16, 166, 10319, 377910, 10184849, 219465302, 3960325344, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000, 50000000000, 20000000000]), - (256, 2) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 3) => Some(&[1250000000, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 7) => Some(&[335270650, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 15) => Some(&[66938493, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 31) => Some(&[14313469, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 63) => Some(&[3143161, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 127) => Some(&[694684, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 255) => Some(&[152781, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 511) => Some(&[33163, 1250000000, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1023) => Some(&[7047, 539124421, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2047) => Some(&[1449, 124704938, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4095) => Some(&[283, 28670755, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8191) => Some(&[50, 6541773, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16383) => Some(&[6, 1478666, 2500000000, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 32767) => Some(&[5, 330325, 1647410411, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 65535) => Some(&[4, 72692, 383115773, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 131071) => Some(&[4, 15682, 88580786, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 262143) => Some(&[3, 3291, 20341192, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 524287) => Some(&[3, 662, 4632912, 2500000000, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 1048575) => Some(&[3, 124, 1044701, 1347866755, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 2097151) => Some(&[3, 20, 232657, 313230182, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 4194303) => Some(&[2, 8, 50990, 72360101, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 8388607) => Some(&[2, 7, 10939, 16599202, 2500000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 16777215) => Some(&[2, 6, 2277, 3775898, 2037258730, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 33554431) => Some(&[2, 5, 452, 850130, 474160462, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), - (256, 67108863) => Some(&[2, 5, 83, 188955, 109732651, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000, 10000000000]), + (64, 134217727) => Some(&[2, 4, 6, 8, 11, 14, 17, 20, 24, 28, 35, 48, 544, 4214, 27851, 165224, 901849, 4596512, 22095114, 100902828]), + (64, 268435455) => Some(&[2, 4, 6, 8, 11, 14, 16, 20, 23, 26, 32, 36, 89, 810, 5733, 35320, 197580, 1024564, 4988833, 23011532]), + (64, 536870911) => Some(&[2, 4, 6, 8, 10, 12, 16, 16, 22, 24, 29, 32, 41, 138, 1119, 7316, 42366, 224810, 1112847, 5197284]), + (64, 1073741823) => Some(&[1, 4, 6, 8, 10, 12, 15, 16, 21, 24, 27, 32, 37, 44, 198, 1440, 8813, 48304, 244420, 1159776]), + (64, 2147483647) => Some(&[1, 2, 5, 4, 10, 12, 14, 16, 20, 22, 26, 28, 34, 38, 48, 260, 1750, 10078, 52589, 254848]), + (64, 4294967295) => Some(&[1, 2, 5, 4, 9, 12, 14, 16, 19, 22, 25, 28, 32, 36, 42, 48, 321, 2010, 10994, 54868]), + (64, 8589934591) => Some(&[1, 2, 5, 4, 9, 10, 13, 16, 18, 20, 23, 24, 30, 34, 38, 44, 55, 372, 2201, 11480]), + (64, 17179869183) => Some(&[1, 2, 5, 4, 9, 10, 13, 12, 17, 20, 22, 24, 28, 32, 35, 40, 46, 58, 409, 2300]), + (64, 34359738367) => Some(&[1, 2, 5, 4, 8, 10, 12, 12, 17, 18, 22, 24, 27, 30, 33, 36, 42, 48, 65, 428]), + (128, 2) => Some(&[3803142, 9334194496, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 3) => Some(&[1587159, 3987600546, 1457089191050, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 7) => Some(&[251747, 670541300, 250084921176, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 15) => Some(&[46971, 133876986, 51021110096, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 31) => Some(&[9227, 28626938, 11176891076, 1609026675290, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 63) => Some(&[1809, 6286322, 2524078842, 368294995434, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 127) => Some(&[339, 1389368, 576724438, 85443430246, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 255) => Some(&[56, 305562, 132077467, 19912750854, 1583496946124, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 511) => Some(&[8, 66326, 30157572, 4640147132, 373188528338, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1023) => Some(&[6, 14094, 6841566, 1078248842, 87842024221, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2047) => Some(&[5, 2898, 1537551, 249409876, 20621212742, 1078841816908, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4095) => Some(&[5, 566, 341227, 57341510, 4823082175, 254950916800, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8191) => Some(&[4, 100, 74477, 13083546, 1122935179, 60062233410, 2273490468096, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16383) => Some(&[4, 12, 15891, 2957332, 260025012, 14097636130, 538333579914, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 32767) => Some(&[3, 10, 3282, 660650, 59821336, 3294820822, 127075232392, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 65535) => Some(&[3, 8, 644, 145384, 13655852, 766231546, 29890363960, 883759641352, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 131071) => Some(&[3, 8, 115, 31364, 3087986, 177161572, 7002404227, 208860562718, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 262143) => Some(&[3, 6, 16, 6582, 690142, 40682384, 1632865365, 49191762466, 1181382373977, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 524287) => Some(&[3, 6, 13, 1324, 151954, 9265824, 378724625, 11541054134, 279380840669, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1048575) => Some(&[2, 6, 11, 248, 32804, 2089402, 87290888, 2695733510, 65849040101, 1329893151414, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2097151) => Some(&[2, 6, 10, 40, 6891, 465314, 19969938, 626460364, 15461829307, 314584028702, 5450210649572, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4194303) => Some(&[2, 4, 9, 16, 1390, 101980, 4527698, 144720202, 3614946851, 74168011040, 1293002257374, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 8388607) => Some(&[2, 4, 9, 14, 262, 21878, 1015234, 33198404, 840992260, 17420930220, 305838938700, 4668626844064, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 16777215) => Some(&[2, 4, 8, 12, 43, 4554, 224478, 7551796, 194527784, 4074517460, 72101379330, 1107238843866, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 33554431) => Some(&[2, 4, 8, 10, 18, 904, 48734, 1700260, 44691758, 948320924, 16934201085, 261810056188, 3578103614057, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 67108863) => Some(&[2, 4, 7, 10, 16, 166, 10319, 377910, 10184849, 219465302, 3960325344, 61697963448, 848147785402, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 134217727) => Some(&[2, 4, 7, 10, 14, 24, 2107, 82612, 2298256, 50451414, 921648569, 14484512094, 200428548774, 2484484238396, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 268435455) => Some(&[2, 4, 7, 10, 13, 18, 405, 17660, 512282, 11505766, 213267022, 3385749574, 47201303550, 588473482320, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 536870911) => Some(&[2, 4, 6, 8, 12, 16, 69, 3658, 112405, 2598642, 49019555, 787481966, 11072800971, 138948443988, 1579008210717, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 1073741823) => Some(&[2, 4, 6, 8, 12, 16, 22, 720, 24152, 579888, 11177308, 182099270, 2586014627, 32691832066, 373650772885, 3907651976720, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 2147483647) => Some(&[1, 2, 6, 8, 11, 14, 19, 130, 5039, 127424, 2523927, 41822426, 600869127, 7660867166, 88130516293, 926432989152, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (128, 4294967295) => Some(&[1, 2, 6, 8, 11, 14, 18, 24, 1005, 27434, 563067, 9527122, 138782837, 1786971872, 20710287468, 218971970140, 2134409686552, 6400000000000, 6400000000000, 6400000000000]), + (128, 8589934591) => Some(&[1, 2, 5, 8, 10, 12, 17, 22, 186, 5740, 123686, 2148774, 31829432, 414617266, 4846463649, 51579771030, 505399335874, 4599670747534, 6400000000000, 6400000000000]), + (128, 17179869183) => Some(&[1, 2, 5, 6, 10, 12, 16, 20, 29, 1150, 26617, 478662, 7238473, 95603946, 1128688529, 12103000176, 119290542849, 1090820962432, 6400000000000, 6400000000000]), + (128, 34359738367) => Some(&[1, 2, 5, 6, 9, 12, 15, 18, 24, 214, 5566, 104942, 1629184, 21882744, 261396508, 2827434844, 28055490622, 257920534542, 2214243991031, 6400000000000]), + (256, 2) => Some(&[4667097248, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 3) => Some(&[1993800273, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 7) => Some(&[335270650, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 15) => Some(&[66938493, 1600000000000, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 31) => Some(&[14313469, 804513337645, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 63) => Some(&[3143161, 184147497717, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 127) => Some(&[694684, 42721715123, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 255) => Some(&[152781, 9956375427, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 511) => Some(&[33163, 2320073566, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1023) => Some(&[7047, 539124421, 1600000000000, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2047) => Some(&[1449, 124704938, 539420908454, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4095) => Some(&[283, 28670755, 127475458400, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8191) => Some(&[50, 6541773, 30031116705, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16383) => Some(&[6, 1478666, 7048818065, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 32767) => Some(&[5, 330325, 1647410411, 1600000000000, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 65535) => Some(&[4, 72692, 383115773, 441879820676, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 131071) => Some(&[4, 15682, 88580786, 104430281359, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 262143) => Some(&[3, 3291, 20341192, 24595881233, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 524287) => Some(&[3, 662, 4632912, 5770527067, 1600000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1048575) => Some(&[3, 124, 1044701, 1347866755, 664946575707, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2097151) => Some(&[3, 20, 232657, 313230182, 157292014351, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4194303) => Some(&[2, 8, 50990, 72360101, 37084005520, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8388607) => Some(&[2, 7, 10939, 16599202, 8710465110, 2334313422032, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 16777215) => Some(&[2, 6, 2277, 3775898, 2037258730, 553619421933, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 33554431) => Some(&[2, 5, 452, 850130, 474160462, 130905028094, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 67108863) => Some(&[2, 5, 83, 188955, 109732651, 30848981724, 3200000000000, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 134217727) => Some(&[2, 5, 12, 41306, 25225707, 7242256047, 1242242119198, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 268435455) => Some(&[2, 5, 9, 8830, 5752883, 1692874787, 294236741160, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 536870911) => Some(&[2, 4, 8, 1829, 1299321, 393740983, 69474221994, 3200000000000, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 1073741823) => Some(&[2, 4, 8, 360, 289944, 91049635, 16345916033, 1953825988360, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 2147483647) => Some(&[1, 4, 7, 65, 63712, 20911213, 3830433583, 463216494576, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 4294967295) => Some(&[1, 4, 7, 12, 13717, 4763561, 893485936, 109485985070, 3200000000000, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 8589934591) => Some(&[1, 4, 6, 11, 2870, 1074387, 207308633, 25789885515, 2299835373767, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 17179869183) => Some(&[1, 3, 6, 10, 575, 239331, 47801973, 6051500088, 545410481216, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), + (256, 34359738367) => Some(&[1, 3, 6, 9, 107, 52471, 10941372, 1413717422, 128960267271, 3200000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000, 6400000000000]), _ => None, } } diff --git a/crates/akita-types/src/sis/honest_fold_policy.rs b/crates/akita-types/src/sis/honest_fold_policy.rs index fa22c4fbd..f00ab2c2a 100644 --- a/crates/akita-types/src/sis/honest_fold_policy.rs +++ b/crates/akita-types/src/sis/honest_fold_policy.rs @@ -23,7 +23,10 @@ pub struct HonestFoldSizingQuery<'a> { pub num_chunks: usize, /// Total coefficients emitted across all physical response windows. pub num_fold_coeffs: usize, - pub log_basis: u32, + /// Exact source-plane norms after the selected inner decomposition. + pub witness_norms: FoldWitnessNorms, + /// Basis used to decompose the emitted folded response. + pub log_basis_response: u32, pub challenge_config: &'a SparseChallengeConfig, } @@ -110,7 +113,7 @@ impl BalancedSignedDigitFoldPolicy { query.num_live_blocks, query.num_claims, FoldChallengeNorms::new(query.challenge_config), - self.witness, + query.witness_norms, &cap_config, )?; Ok((cap, tail_cap)) @@ -125,11 +128,11 @@ impl BalancedSignedDigitFoldPolicy { impl HonestFoldPolicy for BalancedSignedDigitFoldPolicy { fn num_digits_fold(&self, query: HonestFoldSizingQuery<'_>) -> Result { let (cap, tail_cap) = self.unsnapped_cap(query)?; - let mut digits = self.digit_depth_for_cap(cap, query.log_basis); + let mut digits = self.digit_depth_for_cap(cap, query.log_basis_response); let floor = tail_cap.saturating_mul(u128::from(self.snap.retain_num)) / u128::from(self.snap.retain_den); let floor = floor.max(1); - while digits > 1 && balanced_digit_max(query.log_basis, digits - 1) >= floor { + while digits > 1 && balanced_digit_max(query.log_basis_response, digits - 1) >= floor { digits -= 1; } Ok(digits) @@ -245,10 +248,11 @@ impl HonestFoldPolicy for UnitOneHotFoldPolicy { AkitaError::InvalidSetup("unit one-hot worst-case cap overflow".into()) })?; cap = cap.min(worst_case).max(1); - let mut digits = self.digit_depth_for_cap(cap, query.log_basis); + let mut digits = self.digit_depth_for_cap(cap, query.log_basis_response); let floor = cap.saturating_mul(u128::from(self.snap.retain_num)) / u128::from(self.snap.retain_den); - while digits > 1 && balanced_digit_max(query.log_basis, digits - 1) >= floor.max(1) { + while digits > 1 && balanced_digit_max(query.log_basis_response, digits - 1) >= floor.max(1) + { digits -= 1; } Ok(digits.min(legacy)) @@ -262,6 +266,27 @@ pub enum HonestFoldPolicySpec { UnitOneHot(UnitOneHotFoldPolicy), } +impl HonestFoldPolicySpec { + /// Source-plane norms for one selected A decomposition basis. + /// + /// Balanced sources follow the candidate basis. Unit one-hot sources keep + /// their profile-owned sparse norm; the planner canonicalizes their + /// already-single-digit representation without a basis sweep. + #[must_use] + pub fn witness_norms_for_inner_basis( + self, + log_basis_inner: u32, + ring_dimension: usize, + ) -> FoldWitnessNorms { + match self { + Self::BalancedSignedDigit(_) => { + FoldWitnessNorms::bounded(log_basis_inner, ring_dimension) + } + Self::UnitOneHot(policy) => policy.legacy_fallback.witness, + } + } +} + impl HonestFoldPolicy for HonestFoldPolicySpec { fn num_digits_fold(&self, query: HonestFoldSizingQuery<'_>) -> Result { match self { @@ -277,12 +302,13 @@ fn validate_query(query: HonestFoldSizingQuery<'_>) -> Result<(), AkitaError> { || query.num_live_blocks == 0 || query.num_chunks == 0 || query.num_fold_coeffs == 0 - || query.log_basis == 0 + || query.log_basis_response == 0 { return Err(AkitaError::InvalidSetup( "honest fold sizing requires positive geometry and basis".to_string(), )); } + query.witness_norms.validate()?; if !query.num_fold_coeffs.is_multiple_of(query.num_chunks) { return Err(AkitaError::InvalidSetup( "honest fold coefficient count must cover equally sized chunk responses".to_string(), @@ -350,7 +376,8 @@ mod tests { num_live_blocks: 16, num_chunks: 1, num_fold_coeffs: 4_096, - log_basis: 3, + witness_norms: FoldWitnessNorms::bounded(3, 64), + log_basis_response: 3, challenge_config: challenge, } } @@ -420,7 +447,7 @@ mod tests { query.num_live_blocks, query.num_claims, 128, - query.log_basis, + query.log_basis_response, FoldChallengeNorms::new(&challenge), witness, &cap_config, @@ -469,7 +496,8 @@ mod tests { num_live_blocks, num_chunks: 1, num_fold_coeffs, - log_basis, + witness_norms: legacy_witness, + log_basis_response: log_basis, challenge_config: &challenge, }; let exact_digits = one_hot.num_digits_fold(query).unwrap(); @@ -512,7 +540,8 @@ mod tests { num_live_blocks: logical_num_live_blocks, num_chunks, num_fold_coeffs: physical_num_fold_coeffs, - log_basis: 3, + witness_norms: FoldWitnessNorms::new(1, 4), + log_basis_response: 3, challenge_config: &challenge, }; assert_eq!( @@ -532,7 +561,8 @@ mod tests { num_live_blocks: 64, num_chunks: 1, num_fold_coeffs: 512, - log_basis: 3, + witness_norms: FoldWitnessNorms::new(1, 4), + log_basis_response: 3, challenge_config: &challenge, }; assert_eq!( @@ -560,7 +590,8 @@ mod tests { num_live_blocks: 10, num_chunks: 4, num_fold_coeffs: 512, - log_basis: 3, + witness_norms: FoldWitnessNorms::new(1, 4), + log_basis_response: 3, challenge_config: &challenge, }; let largest_window = HonestFoldSizingQuery { @@ -586,7 +617,8 @@ mod tests { num_live_blocks: 4, num_chunks: 8, num_fold_coeffs: 4_096, - log_basis: 3, + witness_norms: FoldWitnessNorms::new(1, 4), + log_basis_response: 3, challenge_config: &challenge, }; diff --git a/crates/akita-types/src/sis/mod.rs b/crates/akita-types/src/sis/mod.rs index 48c8b7695..4292e3562 100644 --- a/crates/akita-types/src/sis/mod.rs +++ b/crates/akita-types/src/sis/mod.rs @@ -24,6 +24,7 @@ pub mod ajtai_key; pub mod compression; +mod coverage; pub mod decomposition_digits; pub mod fold_linf_cap; mod generated_sis_table; @@ -32,17 +33,21 @@ pub mod norm_bound; pub use ajtai_key::{ ceil_coeff_linf_bucket, ceil_supported_linf_bound, min_secure_rank, - sis_role_dimension_supported, sis_table_key_for_linf_bound, InnerCommitMatrixParams, - OpenCommitMatrixParams, OuterCommitMatrixParams, ScalarCutoff, SisMatrixRole, - SisModulusProfileId, SisRoleCell, SisSecurityPolicyId, SisTableDigest, SisTableKey, - A_ROLE_RING_DIMS, BD_ROLE_RING_DIMS, COEFF_LINF_BUCKETS, DEFAULT_SIS_SECURITY_POLICY, - GADGET_COEFF_LINF_ANCHORS, SIS_MATRIX_ROLES, SUPPORTED_SIS_SECURITY_POLICIES, + sis_table_key_for_linf_bound, InnerCommitMatrixParams, OpenCommitMatrixParams, + OuterCommitMatrixParams, ScalarCutoff, SisMatrixRole, SisModulusProfileId, SisSecurityPolicyId, + SisTableDigest, SisTableKey, COEFF_LINF_BUCKETS, DEFAULT_SIS_SECURITY_POLICY, + SUPPORTED_SIS_SECURITY_POLICIES, +}; +pub use coverage::{ + sis_role_cell, sis_role_cells, sis_role_dimension_supported, SisRoleCell, A_ROLE_RING_DIMS, + BD_ROLE_RING_DIMS, GADGET_COEFF_LINF_ANCHORS, SIS_MATRIX_ROLES, SIS_MAX_MODULE_RANK, + SIS_REQUIRED_MAX_WIDTH, }; pub use decomposition_digits::{ balanced_digit_abs_max, compute_num_digits_field_width, decomposed_s_block_ring_count, decomposed_t_ring_count, decomposed_w_ring_count, fold_witness_representable_linf_bounds, - num_digits_for_bound, num_digits_inner, num_digits_open, num_digits_setup_prefix_commit, - projected_role_ring_count, + num_digits_for_bound, num_digits_inner, num_digits_inner_for_bound, num_digits_open, + num_digits_setup_prefix_commit, projected_role_ring_count, }; pub use honest_fold_policy::{ BalancedSignedDigitFoldPolicy, DigitSnapCalibration, HonestFoldPolicy, HonestFoldPolicySpec, diff --git a/crates/akita-types/src/witness.rs b/crates/akita-types/src/witness.rs index 151667eb7..54ae39414 100644 --- a/crates/akita-types/src/witness.rs +++ b/crates/akita-types/src/witness.rs @@ -9,12 +9,14 @@ use std::ops::Range; use akita_field::AkitaError; +use crate::proof::relation::relation_rhs_layout_for; use crate::{ - relation_rhs_layout_for, CommittedGroupParams, CompressionMapPlan, OpeningClaimsLayout, - RelationRowFamily, COMPRESSION_MAP_COUNT, + CommitmentRingDims, CommittedGroupParams, CompressionMapPlan, LevelParamsLike, + OpeningClaimsLayout, RelationRowFamily, COMPRESSION_MAP_COUNT, }; mod chunk_partition; +mod scalar_len; pub use chunk_partition::dyadic_block_ranges; @@ -435,10 +437,6 @@ impl WitnessLayout { params, role_dims, num_claims, - depth_witness, - depth_commit, - depth_open, - depth_fold, chunk_block_ranges, )) }) @@ -447,17 +445,8 @@ impl WitnessLayout { // Chunk is the outer physical key. Within each chunk, groups are laid // out in relation order, and each unit is `[Z | E | T]`. for chunk_index in 0..num_chunks { - for &( - group_index, - params, - role_dims, - num_claims, - depth_witness, - depth_commit, - depth_open, - depth_fold, - ref chunk_block_ranges, - ) in &group_geometry + for &(group_index, params, role_dims, num_claims, ref chunk_block_ranges) in + &group_geometry { let global_block_range = chunk_block_ranges .get(chunk_index) @@ -465,28 +454,8 @@ impl WitnessLayout { .clone(); let global_block_start = global_block_range.start; let chunk_num_live_blocks = global_block_range.len(); - let z_len = checked_mul3( - params.num_positions_per_block(), - depth_witness, - depth_fold, - "witness Z width overflow", - )? - .checked_mul(role_dims.d_a()) - .ok_or_else(|| AkitaError::InvalidSetup("witness Z width overflow".into()))?; - let e_len = checked_mul3( - num_claims, - chunk_num_live_blocks, - depth_open, - "witness E width overflow", - )? - .checked_mul(role_dims.d_a()) - .ok_or_else(|| AkitaError::InvalidSetup("witness E width overflow".into()))?; - let t_len = num_claims - .checked_mul(chunk_num_live_blocks) - .and_then(|n| n.checked_mul(params.a_rows_len())) - .and_then(|n| n.checked_mul(depth_commit)) - .and_then(|n| n.checked_mul(role_dims.d_a())) - .ok_or_else(|| AkitaError::InvalidSetup("witness T width overflow".into()))?; + let (z_len, e_len, t_len) = + witness_unit_lengths(params, role_dims, num_claims, chunk_num_live_blocks)?; let z_range = checked_range(cursor, z_len, "witness Z range overflow")?; let e_range = checked_range(z_range.end, e_len, "witness E range overflow")?; let t_range = checked_range(e_range.end, t_len, "witness T range overflow")?; @@ -921,6 +890,37 @@ fn checked_align_up(value: usize, alignment: usize, context: &str) -> Result Result<(usize, usize, usize), AkitaError> { + let z_len = checked_mul3( + params.num_positions_per_block(), + params.num_digits_inner(), + params.num_digits_fold(), + "witness Z width overflow", + )? + .checked_mul(role_dims.d_a()) + .ok_or_else(|| AkitaError::InvalidSetup("witness Z width overflow".into()))?; + let e_len = checked_mul3( + num_claims, + chunk_num_live_blocks, + params.num_digits_open(), + "witness E width overflow", + )? + .checked_mul(role_dims.d_a()) + .ok_or_else(|| AkitaError::InvalidSetup("witness E width overflow".into()))?; + let t_len = num_claims + .checked_mul(chunk_num_live_blocks) + .and_then(|n| n.checked_mul(params.a_rows_len())) + .and_then(|n| n.checked_mul(params.num_digits_outer())) + .and_then(|n| n.checked_mul(role_dims.d_a())) + .ok_or_else(|| AkitaError::InvalidSetup("witness T width overflow".into()))?; + Ok((z_len, e_len, t_len)) +} + #[allow(clippy::too_many_arguments)] fn projected_coefficient_index( range: &Range, diff --git a/crates/akita-types/src/witness/scalar_len.rs b/crates/akita-types/src/witness/scalar_len.rs new file mode 100644 index 000000000..1db827bd1 --- /dev/null +++ b/crates/akita-types/src/witness/scalar_len.rs @@ -0,0 +1,252 @@ +use akita_field::AkitaError; + +use super::{ + checked_align_up, dyadic_block_ranges, witness_unit_lengths, WitnessLayout, MAX_WITNESS_CHUNKS, +}; +use crate::{ + relation_rhs_layout_for, CommittedGroupParams, CompressionChainPlan, OpeningClaimsLayout, + RelationRowFamily, COMPRESSION_MAP_COUNT, +}; + +impl WitnessLayout { + /// Compute the exact live length of a scalar witness without materializing + /// its address ranges. + /// + /// This is the candidate-aware counterpart of [`Self::new`] for planner + /// hot paths. `None` means that a compressed B or D source exceeds the + /// protocol compression cap. All other malformed geometry remains an + /// error. + pub fn try_scalar_live_coeff_len( + lp: &CommittedGroupParams, + opening_batch: &OpeningClaimsLayout, + num_chunks: usize, + quotient_depth: usize, + ) -> Result, AkitaError> { + if opening_batch.num_groups() != 1 { + return Err(AkitaError::InvalidSetup( + "scalar witness sizing requires exactly one opening group".into(), + )); + } + if lp.has_precommitted_groups() { + return Err(AkitaError::InvalidSetup( + "scalar witness sizing does not accept precommitted groups".into(), + )); + } + if num_chunks == 0 || quotient_depth == 0 { + return Err(AkitaError::InvalidSetup( + "witness layout requires non-empty groups, chunks, and quotient depth".into(), + )); + } + if num_chunks > MAX_WITNESS_CHUNKS { + return Err(AkitaError::InvalidSetup( + "witness chunk count exceeds verifier cap".into(), + )); + } + lp.validate_opening_batch(opening_batch)?; + let relation_group_order = opening_batch.root_group_order()?; + let group_index = *relation_group_order.first().ok_or_else(|| { + AkitaError::InvalidSetup("scalar witness relation group is missing".into()) + })?; + let params = lp.group_params(opening_batch, group_index)?; + let group = opening_batch.group_layout(group_index)?; + let role_dims = lp.group_role_dims(opening_batch, group_index)?; + let num_claims = group.num_polynomials(); + if num_claims == 0 + || params.num_live_blocks() == 0 + || params.num_positions_per_block() == 0 + || params.num_digits_open() == 0 + || params.num_digits_inner() == 0 + || params.num_digits_outer() == 0 + || params.num_digits_fold() == 0 + || params.a_rows_len() == 0 + { + return Err(AkitaError::InvalidSetup( + "witness group has malformed dimensions".into(), + )); + } + + let mut cursor = 0usize; + for block_range in dyadic_block_ranges(params.num_live_blocks(), num_chunks)? { + let (z_len, e_len, t_len) = + witness_unit_lengths(params, role_dims, num_claims, block_range.len())?; + cursor = cursor + .checked_add(z_len) + .and_then(|n| n.checked_add(e_len)) + .and_then(|n| n.checked_add(t_len)) + .ok_or_else(|| AkitaError::InvalidSetup("witness unit range overflow".into()))?; + } + + let relation_layout = relation_rhs_layout_for(lp, opening_batch)?; + let row_families = relation_layout.row_families()?; + let first_compression_row = row_families + .iter() + .position(|row| { + matches!( + row, + RelationRowFamily::CompressionF { .. } | RelationRowFamily::CompressionH { .. } + ) + }) + .unwrap_or(row_families.len()); + for row in &row_families[..first_compression_row] { + let len = quotient_depth + .checked_mul(row.ring_dim()) + .ok_or_else(|| AkitaError::InvalidSetup("witness R width overflow".into()))?; + cursor = cursor + .checked_add(len) + .ok_or_else(|| AkitaError::InvalidSetup("witness R range overflow".into()))?; + } + if !lp.payload_mode.is_compressed() { + return Ok(Some(cursor)); + } + + let b_source_coefficients = params + .b_rows_len() + .checked_mul(role_dims.d_b()) + .ok_or_else(|| { + AkitaError::InvalidSetup("relation B compression shape overflow".into()) + })?; + let Some(b_plan) = CompressionChainPlan::try_for_complete_source( + lp.outer_commit_matrix.sis_modulus_profile(), + b_source_coefficients, + )? + else { + return Ok(None); + }; + let d_source_coefficients = lp + .open_commit_matrix + .output_rank() + .checked_mul(role_dims.d_d()) + .ok_or_else(|| { + AkitaError::InvalidSetup("relation D compression shape overflow".into()) + })?; + let Some(d_plan) = CompressionChainPlan::try_for_complete_source( + lp.open_commit_matrix.sis_modulus_profile(), + d_source_coefficients, + )? + else { + return Ok(None); + }; + + let relation_coefficient_block = role_dims.common_relation_coeff_count(); + cursor = checked_align_up( + cursor, + relation_coefficient_block, + "compression witness alignment overflow", + )?; + for map_index in 0..COMPRESSION_MAP_COUNT { + let b_map = *b_plan + .maps() + .get(map_index) + .ok_or_else(|| AkitaError::InvalidSetup("compression B map is missing".into()))?; + let d_map = *d_plan + .maps() + .get(map_index) + .ok_or_else(|| AkitaError::InvalidSetup("compression D map is missing".into()))?; + cursor = checked_align_up( + cursor, + b_map.ring_dimension().max(d_map.ring_dimension()), + "compression layer alignment overflow", + )?; + cursor = cursor + .checked_add(b_map.padded_digit_count()) + .and_then(|n| n.checked_add(d_map.padded_digit_count())) + .ok_or_else(|| { + AkitaError::InvalidSetup("compression witness range overflow".into()) + })?; + for ring_dim in [b_map.ring_dimension(), d_map.ring_dimension()] { + let len = quotient_depth.checked_mul(ring_dim).ok_or_else(|| { + AkitaError::InvalidSetup("compression quotient width overflow".into()) + })?; + cursor = cursor.checked_add(len).ok_or_else(|| { + AkitaError::InvalidSetup("compression quotient range overflow".into()) + })?; + } + } + Ok(Some(checked_align_up( + cursor, + relation_coefficient_block, + "compression witness suffix alignment overflow", + )?)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::SisModulusProfileId; + + fn base_params(mixed_dimensions: bool) -> CommittedGroupParams { + let profile = if mixed_dimensions { + SisModulusProfileId::Q128OffsetA7F7 + } else { + SisModulusProfileId::Q32Offset99 + }; + let ring_dimension = if mixed_dimensions { 64 } else { 32 }; + let mut params = CommittedGroupParams::params_only( + profile, + ring_dimension, + 2, + 3, + 2, + 3, + akita_challenges::SparseChallengeConfig::pm1_only(1), + ) + .with_decomp(4, 32, 2, 2, 2) + .expect("scalar test params"); + if mixed_dimensions { + let outer = params.outer_commit_matrix; + params.outer_commit_matrix = crate::OuterCommitMatrixParams::new_unchecked( + outer.security_policy(), + outer.sis_table_key().table_digest, + outer.sis_modulus_profile(), + outer.output_rank(), + outer.input_width() * 2, + outer.coeff_linf_bound(), + 32, + ); + let open = params.open_commit_matrix; + params.open_commit_matrix = crate::OpenCommitMatrixParams::new_unchecked( + open.security_policy(), + open.sis_table_key().table_digest, + open.sis_modulus_profile(), + open.output_rank(), + open.input_width() * 4, + open.coeff_linf_bound(), + 16, + ); + } + params + } + + #[test] + fn scalar_live_length_matches_materialized_layout() { + for base in [base_params(false), base_params(true)] { + for payload_mode in [ + crate::CommitmentPayloadMode::Raw, + crate::CommitmentPayloadMode::Compressed, + ] { + for num_polynomials in [1, 2, 5] { + for num_chunks in [1, 2, 4] { + let mut params = base.clone(); + params.payload_mode = payload_mode; + let opening_batch = OpeningClaimsLayout::new(0, num_polynomials) + .expect("scalar opening batch"); + let materialized = + WitnessLayout::new(¶ms, &opening_batch, num_chunks, 2) + .expect("materialized witness layout") + .live_coeff_len(); + let scalar = WitnessLayout::try_scalar_live_coeff_len( + ¶ms, + &opening_batch, + num_chunks, + 2, + ) + .expect("scalar witness sizing") + .expect("compression source is supported"); + assert_eq!(scalar, materialized); + } + } + } + } + } +} diff --git a/crates/akita-verifier/src/stages/stage3.rs b/crates/akita-verifier/src/stages/stage3.rs index 2d70c29f8..433b72e03 100644 --- a/crates/akita-verifier/src/stages/stage3.rs +++ b/crates/akita-verifier/src/stages/stage3.rs @@ -311,13 +311,14 @@ where #[cfg(test)] mod tests { use super::*; - use akita_config::{committed_group_params, proof_optimized::fp128::Dense}; + use akita_config::{proof_optimized::fp128::Dense, CommitmentConfig}; use akita_field::Prime128OffsetA7F7; use akita_transcript::AkitaTranscript; use akita_types::{ derive_public_matrix_prefix, padded_setup_prefix_len, setup_prefix_precommitted_params, - setup_prefix_slot_id, AkitaSetupDescriptor, CommittedGroupParams, PolynomialGroupLayout, - RingVec, SetupPrefixPublicCommitment, SetupPrefixVerifierRegistry, SetupPrefixVerifierSlot, + setup_prefix_slot_id, AkitaScheduleLookupKey, AkitaSetupDescriptor, CommittedGroupParams, + PolynomialGroupLayout, RingVec, SetupPrefixPublicCommitment, SetupPrefixVerifierRegistry, + SetupPrefixVerifierSlot, }; use std::sync::Arc; @@ -366,8 +367,14 @@ mod tests { #[test] fn offloaded_setup_ignores_shared_matrix_divisibility() { - let level_params = committed_group_params::(&PolynomialGroupLayout::singleton(16)) - .expect("level parameters"); + let level_params = Dense::runtime_schedule(AkitaScheduleLookupKey::single( + PolynomialGroupLayout::singleton(16), + )) + .expect("scalar schedule") + .root + .params + .final_group + .commitment; let natural_field_len = level_params .inner_commit_matrix .ring_dimension() diff --git a/scripts/check_profile_ci_features.sh b/scripts/check_profile_ci_features.sh index c5babde82..ece59d8da 100755 --- a/scripts/check_profile_ci_features.sh +++ b/scripts/check_profile_ci_features.sh @@ -23,10 +23,13 @@ repo = Path(".") workflow = repo / ".github/workflows/profile-bench.yml" profile_main = repo / "crates/akita-pcs/examples/profile/main.rs" profile_modes = repo / "crates/akita-pcs/examples/profile/modes.rs" +modes_rs = profile_modes MODE_FEATURE = { "onehot_fp32_d128": "schedules-fp32-d128-onehot", + "dense_fp32_d128": "schedules-fp32-d128-dense", "onehot_fp64_d128": "schedules-fp64-d128-onehot", + "dense_fp64_d128": "schedules-fp64-d128-dense", "dense_fp128": "schedules-fp128-dense", "onehot_fp128": "schedules-fp128-onehot", "onehot_fp128_multi_group": "schedules-fp128-onehot", @@ -38,7 +41,9 @@ MODE_FEATURE = { } MODE_NUM_POLYS = { "onehot_fp32_d128": {1}, + "dense_fp32_d128": {1}, "onehot_fp64_d128": {1}, + "dense_fp64_d128": {1}, "dense_fp128": {1}, "onehot_fp128": {1}, "onehot_fp128_multi_group": {4}, @@ -50,8 +55,10 @@ MODE_NUM_POLYS = { } MODE_NUM_VARS = { "onehot_fp32_d128": {28}, + "dense_fp32_d128": {26}, "onehot_fp64_d128": {28}, - "dense_fp128": {24}, + "dense_fp64_d128": {26}, + "dense_fp128": {26}, "onehot_fp128": {32}, "onehot_fp128_multi_group": {32}, "onehot_fp128_multi_group_recursive": {32}, @@ -68,6 +75,17 @@ PROFILE_BENCH_MARKER = "profile-bench-selected" feature_graph = load_feature_graph(repo) profile_ci_schedules = schedule_features(feature_graph, "akita-pcs", "profile-ci") +modes_text = modes_rs.read_text(encoding="utf-8") +selected_match = re.search( + r"const PROFILE_SELECTED_MODES:.*?=\s*&\[(.*?)\n\];", + modes_text, + flags=re.DOTALL, +) +if not selected_match: + print("PROFILE_SELECTED_MODES not found in profile example", file=sys.stderr) + raise SystemExit(1) +selected_modes = set(re.findall(r'name:\s*"([^"]+)"', selected_match.group(1))) + wf = workflow.read_text(encoding="utf-8") case_line = re.compile(r"^([^:]+:\d+:\d+(?::[^:\s]+)?)\s*$") @@ -130,6 +148,12 @@ for group_name, profile_feature, case_spec in bench_cases: failed = True continue required = MODE_FEATURE[mode] + if mode not in selected_modes: + print( + f"bench case mode '{mode}' is not registered in PROFILE_SELECTED_MODES", + file=sys.stderr, + ) + failed = True if profile_feature not in matrix_features: matrix_features[profile_feature] = schedule_features( feature_graph, "akita-pcs", profile_feature diff --git a/scripts/gen_sis_table.py b/scripts/gen_sis_table.py index c54651804..3891c4ec4 100644 --- a/scripts/gen_sis_table.py +++ b/scripts/gen_sis_table.py @@ -56,6 +56,7 @@ import argparse import os +import re import signal import subprocess import sys @@ -83,36 +84,22 @@ MAX_LOG_BUCKET = 84 SQUARED_BUCKETS = [1 << k for k in range(MIN_LOG_BUCKET, MAX_LOG_BUCKET + 1)] -# Coefficient-L∞ buckets for derived L2 keys K = d · B². Keep in lockstep with -# `COEFF_LINF_BUCKETS` in `crates/akita-types/src/sis/ajtai_key.rs`. -COEFF_LINF_BUCKETS = [ - 2, - 3, - 7, - 15, - 31, - 63, - 127, - 255, - 511, - 1023, - 2047, - 4095, - 8191, - 16383, - 32767, - 65535, - 131071, - 262143, - 524287, - 1048575, - 2097151, - 4194303, - 8388607, - 16777215, - 33554431, - 67108863, -] +def canonical_coeff_linf_buckets() -> list[int]: + source = ( + repo_root() + / "crates/akita-types/src/sis/ajtai_key.rs" + ).read_text(encoding="utf-8") + match = re.search( + r"pub const COEFF_LINF_BUCKETS: &\[u128\] = &\[(.*?)\];", + source, + flags=re.DOTALL, + ) + if match is None: + raise RuntimeError("could not read canonical COEFF_LINF_BUCKETS") + return [int(value.replace("_", "")) for value in re.findall(r"[\d_]+", match.group(1))] + + +COEFF_LINF_BUCKETS = canonical_coeff_linf_buckets() RING_DIMS = [32, 64, 128, 256] diff --git a/scripts/profile_bench_report.py b/scripts/profile_bench_report.py index 617067aed..68ae68171 100644 --- a/scripts/profile_bench_report.py +++ b/scripts/profile_bench_report.py @@ -2064,6 +2064,26 @@ def render_profile_definitions(cases: list[dict[str, object]]) -> None: ) +def fold_dimension_schedule(summary: dict[str, object]) -> str: + """Render consecutive distinct A/B/D tuples from the resolved fold plan.""" + levels = summary.get("planned_levels") + if not isinstance(levels, list): + return "—" + tuples: list[tuple[int, int, int]] = [] + for level in levels: + if not isinstance(level, dict): + continue + try: + dims = (int(level["d_a"]), int(level["d_b"]), int(level["d_d"])) + except (KeyError, TypeError, ValueError): + continue + if not tuples or tuples[-1] != dims: + tuples.append(dims) + if not tuples: + return "—" + return " → ".join(f"{d_a}/{d_b}/{d_d}" for d_a, d_b, d_d in tuples) + + def render_matrix_summary( current_cases: list[dict[str, object]], main_baseline: dict[str, dict[str, object]] | None, @@ -2088,6 +2108,7 @@ def render_matrix_summary( fmt_milliseconds, ), ], + False, ), ( "Memory and setup size", @@ -2107,6 +2128,7 @@ def render_matrix_summary( ), Metric("max_rss_kib", "Peak RSS", " MiB", fmt_mib), ], + False, ), ( "Proof size and protocol shape", @@ -2116,21 +2138,31 @@ def render_matrix_summary( Metric("tail_bytes", "Terminal response", " bytes", fmt_bytes), Metric("akita_levels", "Fold levels", "", fmt_count), ], + True, ), ] - for table_index, (title, metrics) in enumerate(tables): + for table_index, (title, metrics, include_fold_schedule) in enumerate(tables): if table_index: print() print(f"### {title}") print() - headers = ["Profile", *(metric.name for metric in metrics)] + shape_headers = ["Fold A/B/D schedule"] if include_fold_schedule else [] + headers = ["Profile", *shape_headers, *(metric.name for metric in metrics)] print("| " + " | ".join(headers) + " |") - print("| " + " | ".join(["---", *("---:" for _ in metrics)]) + " |") + print( + "| " + + " | ".join( + ["---", *("---" for _ in shape_headers), *("---:" for _ in metrics)] + ) + + " |" + ) for current in current_cases: baseline = main_baseline.get(str(current["case_id"])) if main_baseline else None row = [md_text(human_case_label(current))] + if include_fold_schedule: + row.append(fold_dimension_schedule(current)) for metric in metrics: row.append( optional_value_with_baseline_delta( diff --git a/scripts/sis_golden/README.md b/scripts/sis_golden/README.md index 80bf6c575..cb7ea9b8c 100644 --- a/scripts/sis_golden/README.md +++ b/scripts/sis_golden/README.md @@ -201,11 +201,11 @@ cargo run -p akita-sis-estimator --example infinity_width_table -- \ --profiles q32,q64,q128 --dims 32 --bounds 15,255 --max-rank 3 --search-cap 8 ``` -Run the planner keyspace as a CSV artifact: +Run the full comparison domain as a local CSV artifact: ```bash cargo run -p akita-sis-estimator --example infinity_width_table --release -- \ - --output scripts/sis_golden/infinity_width_table.csv + --format csv --output /tmp/akita-infinity-width-table.csv ``` Regenerate the production Rust split table: @@ -254,15 +254,19 @@ cargo run --release -p akita-planner --features catalog-gen \ The production `rust-split` mode requires the complete production keyspace. Partial jobs must use CSV output. Rows with `hit_cap=true` are lower bounds, not -tight cutoffs. Full `rust-split` generation writes only the compact runtime -modules under `crates/akita-types/src/sis/generated_sis_table/` (`q32.rs`, -`q64.rs`, `q128.rs`, and `mod.rs`). Those modules store the Module-SIS -projection `(d, B) -> widths[rank]`; offline CSV provenance stays in -`scripts/sis_golden/` via `--format csv`. +tight cutoffs. Full `rust-split` generation writes the compact runtime modules +and the canonical policy audit under +`crates/akita-types/src/sis/generated_sis_table/`. The runtime modules store +the Module-SIS projection `(d, B) -> widths[rank]`. `policy_audit.csv` and +`policy_review.txt` record the generation evidence and share the table digest. +Other full CSV jobs are local comparison artifacts and must not be committed. The checked-in policy table may use `--profile local-minimum` for candidate discovery. The accepted width and immediate rejected successor are then -certified by exhaustive search over the configured beta and zeta domain. +certified by proven-pruned ADPS16/LGSA beta and zeta search. For each visited +beta, the search checks the complete-profile transition and the zeta boundary. +Those points cover the full zeta domain without iterating up to +multi-trillion-column widths. Building with `--features parallel` parallelizes independent rows, but does not change the certificate domain or output ordering. diff --git a/scripts/sis_golden/infinity_width_table.csv b/scripts/sis_golden/infinity_width_table.csv deleted file mode 100644 index 51178538a..000000000 --- a/scripts/sis_golden/infinity_width_table.csv +++ /dev/null @@ -1,6241 +0,0 @@ -policy,modulus_profile,ring_dimension,module_rank,coeff_linf_bound,scalar_n,accepted_m,immediate_rejected_m,cutoff_kind,certificate_domain,search_cap,hit_cap,discovery_profile -Quantum128BitADPS16,Q32Offset99,32,1,2,32,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,2,64,20768,20769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,2,96,232896,232897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,2,128,1605856,1605857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,2,160,8425568,8425569,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,2,192,36836448,36836449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,2,224,140971840,140971841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,2,256,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,2,288,1547986432,1547986433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,2,320,4598640992,4598640993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,2,352,12899211072,12899211073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,2,384,34443025184,34443025185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,2,416,88108049600,88108049601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,2,448,217033751200,217033751201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,2,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,2,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,2,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,2,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,2,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,2,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,3,32,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,3,64,7168,7169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,3,96,89376,89377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,3,128,639328,639329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,3,160,3420640,3420641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,3,192,15141664,15141665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,3,224,58451776,58451777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,3,256,203156352,203156353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,3,288,649290176,649290177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,3,320,1936732416,1936732417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,3,352,5450863488,5450863489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,3,384,14596093344,14596093345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,3,416,37428992800,37428992801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,3,448,92392867936,92392867937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,3,480,220479824032,220479824033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,3,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,3,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,3,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,3,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,3,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,7,32,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,7,64,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,7,96,10784,10785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,7,128,88352,88353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,7,160,502528,502529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,7,192,2305280,2305281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,7,224,9113472,9113473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,7,256,32223712,32223713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,7,288,104343168,104343169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,7,320,314477376,314477377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,7,352,892578784,892578785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,7,384,2406961408,2406961409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,7,416,6209120896,6209120897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,7,448,15406044320,15406044321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,7,480,36928984672,36928984673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,7,512,85829285408,85829285409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,7,544,194006031072,194006031073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,7,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,7,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,7,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,15,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,15,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,15,96,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,15,128,13312,13313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,15,160,84256,84257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,15,192,407488,407489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,15,224,1663552,1663553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,15,256,6012384,6012385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,15,288,19783168,19783169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,15,320,60362336,60362337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,15,352,173012192,173012193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,15,384,470303200,470303201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,15,416,1221365632,1221365633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,15,448,3047742624,3047742625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,15,480,7341527872,7341527873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,15,512,17136254144,17136254145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,15,544,38881003296,38881003297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,15,576,85981496320,85981496321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,15,608,185738763392,185738763393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,15,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,31,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,31,64,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,31,96,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,31,128,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,31,160,13888,13889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,31,192,73856,73857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,31,224,316832,316833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,31,256,1181152,1181153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,31,288,3970720,3970721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,31,320,12308992,12308993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,31,352,35715168,35715169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,31,384,98040448,98040449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,31,416,256661344,256661345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,31,448,644782624,644782625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,31,480,1562097760,1562097761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,31,512,3664248160,3664248161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,31,544,8349922272,8349922273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,31,576,18535550528,18535550529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,31,608,40176928224,40176928225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,31,640,85206571328,85206571329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,63,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,63,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,63,96,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,63,128,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,63,160,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,63,192,12576,12577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,63,224,59136,59137,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,63,256,231584,231585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,63,288,803296,803297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,63,320,2545216,2545217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,63,352,7506080,7506081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,63,384,20866048,20866049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,63,416,55180032,55180033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,63,448,139778112,139778113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,63,480,341000832,341000833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,63,512,804649376,804649377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,63,544,1843012192,1843012193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,63,576,4109553728,4109553729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,63,608,8942953536,8942953537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,63,640,19032853664,19032853665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,127,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,127,64,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,127,96,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,127,128,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,127,160,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,127,192,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,127,224,10080,10081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,127,256,43424,43425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,127,288,158560,158561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,127,320,519168,519169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,127,352,1566720,1566721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,127,384,4430592,4430593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,127,416,11873536,11873537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,127,448,30399584,30399585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,127,480,74814880,74814881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,127,512,177839328,177839329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,127,544,409888256,409888257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,127,576,918919104,918919105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,127,608,2009148832,2009148833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,127,640,4293801344,4293801345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,255,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,255,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,255,96,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,255,128,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,255,160,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,255,192,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,255,224,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,255,256,7264,7265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,255,288,29408,29409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,255,320,101856,101857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,255,352,318528,318529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,255,384,923456,923457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,255,416,2521024,2521025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,255,448,6547648,6547649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,255,480,16299936,16299937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,255,512,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,255,544,90858656,90858657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,255,576,205062464,205062465,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,255,608,450950368,450950369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,255,640,968604096,968604097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,511,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,511,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,511,96,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,511,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,511,160,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,511,192,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,511,224,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,511,256,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,511,288,4704,4705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,511,320,18432,18433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,511,352,61536,61537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,511,384,185696,185697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,511,416,521184,521185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,511,448,1381600,1381601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,511,480,3494016,3494017,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,511,512,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,511,544,19925696,19925697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,511,576,45357760,45357761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,511,608,100472960,100472961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,511,640,217160640,217160641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,1023,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,1023,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,1023,96,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,1023,128,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,1023,160,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,1023,192,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,1023,224,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,1023,256,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,1023,288,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,1023,320,2752,2753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,1023,352,10720,10721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,1023,384,35008,35009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,1023,416,102976,102977,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,1023,448,281824,281825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,1023,480,729440,729441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,1023,512,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,1023,544,4293760,4293761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,1023,576,9885952,9885953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,1023,608,22106432,22106433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,1023,640,48163584,48163585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,2047,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,2047,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,2047,96,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,2047,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,2047,160,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,2047,192,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,2047,224,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,2047,256,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,2047,288,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,2047,320,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,2047,352,1440,1441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,2047,384,5760,5761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,2047,416,18720,18721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,2047,448,54336,54337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,2047,480,146048,146049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,2047,512,371104,371105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,2047,544,901376,901377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,2047,576,2108672,2108673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,2047,608,4776224,4776225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,2047,640,10516832,10516833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,4095,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,4095,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,4095,96,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,4095,128,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,4095,160,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,4095,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,4095,224,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,4095,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,4095,288,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,4095,320,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,4095,352,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,4095,384,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,4095,416,2816,2817,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,4095,448,9376,9377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,4095,480,27200,27201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,4095,512,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,4095,544,181824,181825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,4095,576,435744,435745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,4095,608,1005440,1005441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,4095,640,2246880,2246881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,8191,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,8191,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,8191,96,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,8191,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,8191,160,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,8191,192,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,8191,224,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,8191,256,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,8191,288,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,8191,320,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,8191,352,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,8191,384,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,8191,416,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,8191,448,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,8191,480,4320,4321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,8191,512,12832,12833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,8191,544,34304,34305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,8191,576,85664,85665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,8191,608,203584,203585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,8191,640,465152,465153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,16383,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,16383,64,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,16383,96,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,16383,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,16383,160,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,16383,192,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,16383,224,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,16383,256,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,16383,288,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,16383,320,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,16383,352,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,16383,384,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,16383,416,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,16383,448,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,16383,480,1376,1377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,16383,512,1760,1761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,16383,544,5632,5633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,16383,576,15392,15393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,16383,608,38656,38657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,16383,640,91712,91713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,32767,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,32767,64,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,32767,96,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,32767,128,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,32767,160,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,32767,192,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,32767,224,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,32767,256,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,32767,288,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,32767,320,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,32767,352,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,32767,384,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,32767,416,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,32767,448,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,32767,480,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,32767,512,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,32767,544,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,32767,576,2208,2209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,32767,608,6432,6433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,32767,640,16576,16577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,65535,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,65535,64,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,65535,96,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,65535,128,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,65535,160,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,65535,192,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,65535,224,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,65535,256,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,65535,288,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,65535,320,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,65535,352,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,65535,384,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,65535,416,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,65535,448,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,65535,480,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,65535,512,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,65535,544,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,65535,576,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,65535,608,1632,1633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,65535,640,2432,2433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,131071,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,131071,64,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,131071,96,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,131071,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,131071,160,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,131071,192,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,131071,224,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,131071,256,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,131071,288,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,131071,320,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,131071,352,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,131071,384,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,131071,416,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,131071,448,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,131071,480,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,131071,512,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,131071,544,1120,1121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,131071,576,1248,1249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,131071,608,1376,1377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,131071,640,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,262143,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,262143,64,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,262143,96,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,262143,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,262143,160,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,262143,192,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,262143,224,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,262143,256,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,262143,288,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,262143,320,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,262143,352,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,262143,384,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,262143,416,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,262143,448,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,262143,480,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,262143,512,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,262143,544,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,262143,576,1120,1121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,262143,608,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,262143,640,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,524287,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,524287,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,524287,96,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,524287,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,524287,160,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,524287,192,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,524287,224,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,524287,256,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,524287,288,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,524287,320,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,524287,352,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,524287,384,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,524287,416,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,524287,448,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,524287,480,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,524287,512,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,524287,544,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,524287,576,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,524287,608,1120,1121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,524287,640,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,1048575,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,1048575,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,1048575,96,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,1048575,128,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,1048575,160,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,1048575,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,1048575,224,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,1048575,256,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,1048575,288,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,1048575,320,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,1048575,352,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,1048575,384,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,1048575,416,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,1048575,448,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,1048575,480,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,1048575,512,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,1048575,544,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,1048575,576,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,1048575,608,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,1048575,640,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,2097151,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,2097151,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,2097151,96,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,2097151,128,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,2097151,160,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,2097151,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,2097151,224,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,2097151,256,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,2097151,288,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,2097151,320,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,2097151,352,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,2097151,384,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,2097151,416,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,2097151,448,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,2097151,480,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,2097151,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,2097151,544,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,2097151,576,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,2097151,608,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,2097151,640,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,4194303,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,4194303,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,4194303,96,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,4194303,128,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,4194303,160,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,4194303,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,4194303,224,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,4194303,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,4194303,288,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,4194303,320,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,4194303,352,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,4194303,384,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,4194303,416,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,4194303,448,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,4194303,480,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,4194303,512,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,4194303,544,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,4194303,576,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,4194303,608,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,4194303,640,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,8388607,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,8388607,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,8388607,96,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,8388607,128,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,8388607,160,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,8388607,192,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,8388607,224,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,8388607,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,8388607,288,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,8388607,320,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,8388607,352,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,8388607,384,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,8388607,416,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,8388607,448,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,8388607,480,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,8388607,512,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,8388607,544,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,8388607,576,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,8388607,608,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,8388607,640,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,16777215,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,16777215,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,16777215,96,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,16777215,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,16777215,160,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,16777215,192,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,16777215,224,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,16777215,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,16777215,288,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,16777215,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,16777215,352,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,16777215,384,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,16777215,416,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,16777215,448,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,16777215,480,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,16777215,512,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,16777215,544,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,16777215,576,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,16777215,608,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,16777215,640,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,33554431,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,33554431,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,33554431,96,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,33554431,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,33554431,160,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,33554431,192,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,33554431,224,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,33554431,256,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,33554431,288,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,33554431,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,33554431,352,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,33554431,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,33554431,416,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,33554431,448,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,33554431,480,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,33554431,512,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,33554431,544,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,33554431,576,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,33554431,608,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,33554431,640,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,1,67108863,32,32,33,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,2,67108863,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,3,67108863,96,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,4,67108863,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,5,67108863,160,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,6,67108863,192,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,7,67108863,224,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,8,67108863,256,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,9,67108863,288,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,10,67108863,320,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,11,67108863,352,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,12,67108863,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,13,67108863,416,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,14,67108863,448,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,15,67108863,480,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,16,67108863,512,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,17,67108863,544,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,18,67108863,576,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,19,67108863,608,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,32,20,67108863,640,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,2,64,20736,20737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,2,128,1605824,1605825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,2,192,36836416,36836417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,2,256,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,2,320,4598640960,4598640961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,2,384,34443025152,34443025153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,2,448,217033751168,217033751169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,2,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,2,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,2,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,2,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,2,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,2,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,2,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,2,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,2,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,2,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,2,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,2,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,2,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,3,64,7168,7169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,3,128,639296,639297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,3,192,15141632,15141633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,3,256,203156352,203156353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,3,320,1936732416,1936732417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,3,384,14596093312,14596093313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,3,448,92392867904,92392867905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,3,512,510412863424,510412863425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,3,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,3,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,3,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,3,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,3,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,3,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,3,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,3,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,3,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,3,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,3,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,3,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,7,64,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,7,128,88320,88321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,7,192,2305280,2305281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,7,256,32223680,32223681,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,7,320,314477376,314477377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,7,384,2406961408,2406961409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,7,448,15406044288,15406044289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,7,512,85829285376,85829285377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,7,576,427584207616,427584207617,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,7,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,7,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,7,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,7,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,7,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,7,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,7,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,7,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,7,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,7,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,7,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,15,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,15,128,13312,13313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,15,192,407488,407489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,15,256,6012352,6012353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,15,320,60362304,60362305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,15,384,470303168,470303169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,15,448,3047742592,3047742593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,15,512,17136254144,17136254145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,15,576,85981496320,85981496321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,15,640,392714680000,392714680001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,15,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,15,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,15,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,15,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,15,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,15,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,15,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,15,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,15,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,15,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,31,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,31,128,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,31,192,73856,73857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,31,256,1181120,1181121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,31,320,12308992,12308993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,31,384,98040448,98040449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,31,448,644782592,644782593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,31,512,3664248128,3664248129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,31,576,18535550528,18535550529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,31,640,85206571328,85206571329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,31,704,361393222912,361393222913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,31,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,31,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,31,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,31,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,31,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,31,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,31,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,31,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,31,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,63,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,63,128,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,63,192,12544,12545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,63,256,231552,231553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,63,320,2545216,2545217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,63,384,20866048,20866049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,63,448,139778112,139778113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,63,512,804649344,804649345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,63,576,4109553728,4109553729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,63,640,19032853632,19032853633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,63,704,81211139392,81211139393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,63,768,323082086592,323082086593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,63,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,63,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,63,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,63,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,63,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,63,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,63,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,63,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,127,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,127,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,127,192,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,127,256,43392,43393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,127,320,519168,519169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,127,384,4430592,4430593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,127,448,30399552,30399553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,127,512,177839296,177839297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,127,576,918919104,918919105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,127,640,4293801344,4293801345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,127,704,18450229440,18450229441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,127,768,73820726912,73820726913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,127,832,277683725120,277683725121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,127,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,127,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,127,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,127,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,127,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,127,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,127,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,255,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,255,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,255,192,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,255,256,7232,7233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,255,320,101824,101825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,255,384,923456,923457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,255,448,6547648,6547649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,255,512,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,255,576,205062464,205062465,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,255,640,968604096,968604097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,255,704,4197071808,4197071809,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,255,768,16905915456,16905915457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,255,832,63944920320,63944920321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,255,896,228922089024,228922089025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,255,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,255,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,255,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,255,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,255,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,255,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,511,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,511,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,511,192,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,511,256,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,511,320,18432,18433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,511,384,185664,185665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,511,448,1381568,1381569,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,511,512,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,511,576,45357760,45357761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,511,640,217160640,217160641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,511,704,950653824,950653825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,511,768,3860169216,3860169217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,511,832,14696025472,14696025473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,511,896,52895914048,52895914049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,511,960,181198583232,181198583233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,511,1024,593938821952,593938821953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,511,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,511,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,511,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,511,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,1023,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,1023,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,1023,192,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,1023,256,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,1023,320,2752,2753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,1023,384,35008,35009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,1023,448,281792,281793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,1023,512,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,1023,576,9885952,9885953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,1023,640,48163584,48163585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,1023,704,213557312,213557313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,1023,768,875720448,875720449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,1023,832,3360093504,3360093505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,1023,896,12171463168,12171463169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,1023,960,41916410048,41916410049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,1023,1024,138015849216,138015849217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,1023,1088,436510320960,436510320961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,1023,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,1023,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,1023,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,2047,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,2047,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,2047,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,2047,256,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,2047,320,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,2047,384,5760,5761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,2047,448,54336,54337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,2047,512,371072,371073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,2047,576,2108672,2108673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,2047,640,10516800,10516801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,2047,704,47407232,47407233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,2047,768,196806528,196806529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,2047,832,762394368,762394369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,2047,896,2782935936,2782935937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,2047,960,9644577216,9644577217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,2047,1024,31924463616,31924463617,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,2047,1088,101424870208,101424870209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,2047,1152,310529206336,310529206337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,2047,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,2047,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,4095,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,4095,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,4095,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,4095,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,4095,320,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,4095,384,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,4095,448,9344,9345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,4095,512,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,4095,576,435712,435713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,4095,640,2246848,2246849,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,4095,704,10355200,10355201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,4095,768,43677120,43677121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,4095,832,171241088,171241089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,4095,896,630990464,630990465,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,4095,960,2203472128,2203472129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,4095,1024,7339713152,7339713153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,4095,1088,23442236864,23442236865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,4095,1152,72097836864,72097836865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,4095,1216,214287608896,214287608897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,4095,1280,617354505664,617354505665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,8191,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,8191,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,8191,192,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,8191,256,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,8191,320,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,8191,384,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,8191,448,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,8191,512,12800,12801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,8191,576,85632,85633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,8191,640,465152,465153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,8191,704,2212352,2212353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,8191,768,9533056,9533057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,8191,832,37960832,37960833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,8191,896,141547264,141547265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,8191,960,498950336,498950337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,8191,1024,1674694016,1674694017,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,8191,1088,5382695552,5382695553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,8191,1152,16643366208,16643366209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,8191,1216,49693883648,49693883649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,8191,1280,143735699904,143735699905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,16383,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,16383,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,16383,192,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,16383,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,16383,320,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,16383,384,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,16383,448,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,16383,512,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,16383,576,15360,15361,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,16383,640,91712,91713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,16383,704,457920,457921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,16383,768,2034048,2034049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,16383,832,8271424,8271425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,16383,896,31321344,31321345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,16383,960,111722880,111722881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,16383,1024,378538560,378538561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,16383,1088,1226055488,1226055489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,16383,1152,3815302656,3815302657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,16383,1216,11453626368,11453626369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,16383,1280,33283200896,33283200897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,32767,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,32767,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,32767,192,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,32767,256,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,32767,320,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,32767,384,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,32767,448,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,32767,512,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,32767,576,2176,2177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,32767,640,16576,16577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,32767,704,90240,90241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,32767,768,420160,420161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,32767,832,1760512,1760513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,32767,896,6807552,6807553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,32767,960,24661440,24661441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,32767,1024,84563392,84563393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,32767,1088,276520896,276520897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,32767,1152,867237632,867237633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,32767,1216,2620490240,2620490241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,32767,1280,7657130816,7657130817,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,65535,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,65535,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,65535,192,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,65535,256,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,65535,320,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,65535,384,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,65535,448,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,65535,512,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,65535,576,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,65535,640,2432,2433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,65535,704,16256,16257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,65535,768,82496,82497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,65535,832,362304,362305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,65535,896,1443840,1443841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,65535,960,5342336,5342337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,65535,1024,18609280,18609281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,65535,1088,61599168,61599169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,65535,1152,195084736,195084737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,65535,1216,594212288,594212289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,65535,1280,1747949120,1747949121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,131071,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,131071,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,131071,192,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,131071,256,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,131071,320,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,131071,384,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,131071,448,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,131071,512,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,131071,576,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,131071,640,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,131071,704,2368,2369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,131071,768,14784,14785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,131071,832,70720,70721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,131071,896,295552,295553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,131071,960,1127744,1127745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,131071,1024,4014656,4014657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,131071,1088,13505728,13505729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,131071,1152,43313600,43313601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,131071,1216,133264064,133264065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,131071,1280,395262208,395262209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,262143,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,262143,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,262143,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,262143,256,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,262143,320,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,262143,384,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,262143,448,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,262143,512,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,262143,576,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,262143,640,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,262143,704,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,262143,768,2112,2113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,262143,832,12480,12481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,262143,896,57152,57153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,262143,960,229184,229185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,262143,1024,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,262143,1088,2899008,2899009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,262143,1152,9455168,9455169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,262143,1216,29473536,29473537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,262143,1280,88338240,88338241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,524287,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,524287,128,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,524287,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,524287,256,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,524287,320,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,524287,384,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,524287,448,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,524287,512,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,524287,576,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,524287,640,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,524287,704,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,524287,768,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,524287,832,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,524287,896,9920,9921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,524287,960,43776,43777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,524287,1024,169664,169665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,524287,1088,604032,604033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,524287,1152,2017408,2017409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,524287,1216,6401024,6401025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,524287,1280,19450176,19450177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,1048575,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,1048575,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,1048575,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,1048575,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,1048575,320,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,1048575,384,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,1048575,448,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,1048575,512,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,1048575,576,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,1048575,640,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,1048575,704,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,1048575,768,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,1048575,832,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,1048575,896,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,1048575,960,7360,7361,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,1048575,1024,31872,31873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,1048575,1088,120256,120257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,1048575,1152,416640,416641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,1048575,1216,1356032,1356033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,1048575,1280,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,2097151,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,2097151,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,2097151,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,2097151,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,2097151,320,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,2097151,384,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,2097151,448,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,2097151,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,2097151,576,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,2097151,640,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,2097151,704,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,2097151,768,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,2097151,832,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,2097151,896,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,2097151,960,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,2097151,1024,5184,5185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,2097151,1088,22144,22145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,2097151,1152,81792,81793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,2097151,1216,277056,277057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,2097151,1280,882048,882049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,4194303,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,4194303,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,4194303,192,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,4194303,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,4194303,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,4194303,384,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,4194303,448,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,4194303,512,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,4194303,576,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,4194303,640,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,4194303,704,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,4194303,768,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,4194303,832,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,4194303,896,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,4194303,960,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,4194303,1024,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,4194303,1088,3392,3393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,4194303,1152,14656,14657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,4194303,1216,53440,53441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,4194303,1280,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,8388607,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,8388607,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,8388607,192,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,8388607,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,8388607,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,8388607,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,8388607,448,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,8388607,512,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,8388607,576,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,8388607,640,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,8388607,704,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,8388607,768,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,8388607,832,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,8388607,896,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,8388607,960,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,8388607,1024,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,8388607,1088,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,8388607,1152,2496,2497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,8388607,1216,9216,9217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,8388607,1280,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,16777215,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,16777215,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,16777215,192,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,16777215,256,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,16777215,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,16777215,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,16777215,448,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,16777215,512,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,16777215,576,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,16777215,640,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,16777215,704,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,16777215,768,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,16777215,832,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,16777215,896,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,16777215,960,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,16777215,1024,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,16777215,1088,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,16777215,1152,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,16777215,1216,2368,2369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,16777215,1280,5504,5505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,33554431,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,33554431,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,33554431,192,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,33554431,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,33554431,320,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,33554431,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,33554431,448,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,33554431,512,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,33554431,576,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,33554431,640,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,33554431,704,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,33554431,768,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,33554431,832,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,33554431,896,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,33554431,960,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,33554431,1024,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,33554431,1088,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,33554431,1152,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,33554431,1216,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,33554431,1280,2304,2305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,1,67108863,64,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,2,67108863,128,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,3,67108863,192,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,4,67108863,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,5,67108863,320,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,6,67108863,384,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,7,67108863,448,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,8,67108863,512,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,9,67108863,576,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,10,67108863,640,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,11,67108863,704,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,12,67108863,768,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,13,67108863,832,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,14,67108863,896,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,15,67108863,960,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,16,67108863,1024,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,17,67108863,1088,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,18,67108863,1152,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,19,67108863,1216,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,64,20,67108863,1280,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,2,128,1605760,1605761,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,2,256,486802176,486802177,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,2,384,34443025152,34443025153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,2,512,1194776879872,1194776879873,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,2,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,2,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,2,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,2,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,2,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,2,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,2,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,2,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,2,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,2,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,2,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,2,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,2,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,2,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,2,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,2,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,3,128,639232,639233,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,3,256,203156352,203156353,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,3,384,14596093312,14596093313,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,3,512,510412863360,510412863361,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,3,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,3,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,3,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,3,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,3,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,3,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,3,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,3,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,3,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,3,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,3,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,3,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,3,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,3,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,3,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,3,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,7,128,88320,88321,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,7,256,32223616,32223617,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,7,384,2406961408,2406961409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,7,512,85829285376,85829285377,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,7,640,1941781398400,1941781398401,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,7,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,7,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,7,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,7,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,7,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,7,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,7,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,7,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,7,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,7,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,7,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,7,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,7,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,7,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,7,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,15,128,13312,13313,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,15,256,6012288,6012289,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,15,384,470303104,470303105,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,15,512,17136254080,17136254081,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,15,640,392714679936,392714679937,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,15,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,15,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,15,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,15,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,15,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,15,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,15,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,15,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,15,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,15,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,15,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,15,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,15,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,15,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,15,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,31,128,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,31,256,1181056,1181057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,31,384,98040448,98040449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,31,512,3664248064,3664248065,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,31,640,85206571264,85206571265,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,31,768,1430642034816,1430642034817,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,31,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,31,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,31,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,31,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,31,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,31,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,31,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,31,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,31,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,31,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,31,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,31,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,31,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,31,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,63,128,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,63,256,231552,231553,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,63,384,20866048,20866049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,63,512,804649344,804649345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,63,640,19032853632,19032853633,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,63,768,323082086528,323082086529,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,63,896,4292894038016,4292894038017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,63,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,63,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,63,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,63,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,63,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,63,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,63,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,63,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,63,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,63,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,63,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,63,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,63,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,127,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,127,256,43392,43393,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,127,384,4430592,4430593,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,127,512,177839232,177839233,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,127,640,4293801344,4293801345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,127,768,73820726912,73820726913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,127,896,989519316736,989519316737,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,127,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,127,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,127,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,127,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,127,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,127,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,127,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,127,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,127,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,127,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,127,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,127,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,127,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,255,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,255,256,7168,7169,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,255,384,923392,923393,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,255,512,39111936,39111937,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,255,640,968604032,968604033,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,255,768,16905915392,16905915393,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,255,896,228922088960,228922088961,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,255,1024,2548832062336,2548832062337,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,255,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,255,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,255,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,255,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,255,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,255,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,255,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,255,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,255,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,255,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,255,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,255,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,511,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,511,256,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,511,384,185600,185601,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,511,512,8489856,8489857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,511,640,217160576,217160577,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,511,768,3860169216,3860169217,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,511,896,52895913984,52895913985,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,511,1024,593938821888,593938821889,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,511,1152,5687562949760,5687562949761,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,511,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,511,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,511,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,511,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,511,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,511,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,511,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,511,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,511,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,511,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,511,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,1023,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,1023,256,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,1023,384,34944,34945,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,1023,512,1804032,1804033,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,1023,640,48163584,48163585,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,1023,768,875720448,875720449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,1023,896,12171463168,12171463169,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,1023,1024,138015849216,138015849217,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,1023,1152,1331264859264,1331264859265,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,1023,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,1023,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,1023,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,1023,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,1023,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,1023,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,1023,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,1023,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,1023,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,1023,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,1023,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,2047,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,2047,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,2047,384,5760,5761,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,2047,512,371072,371073,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,2047,640,10516736,10516737,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,2047,768,196806528,196806529,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,2047,896,2782935936,2782935937,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,2047,1024,31924463616,31924463617,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,2047,1152,310529206272,310529206273,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,2047,1280,2639515176448,2639515176449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,2047,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,2047,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,2047,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,2047,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,2047,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,2047,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,2047,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,2047,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,2047,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,2047,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,4095,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,4095,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,4095,384,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,4095,512,72448,72449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,4095,640,2246784,2246785,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,4095,768,43677056,43677057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,4095,896,630990464,630990465,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,4095,1024,7339713152,7339713153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,4095,1152,72097836800,72097836801,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,4095,1280,617354505600,617354505601,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,4095,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,4095,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,4095,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,4095,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,4095,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,4095,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,4095,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,4095,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,4095,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,4095,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,8191,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,8191,256,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,8191,384,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,8191,512,12800,12801,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,8191,640,465152,465153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,8191,768,9533056,9533057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,8191,896,141547264,141547265,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,8191,1024,1674694016,1674694017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,8191,1152,16643366144,16643366145,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,8191,1280,143735699840,143735699841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,8191,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,8191,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,8191,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,8191,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,8191,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,8191,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,8191,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,8191,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,8191,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,8191,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,16383,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,16383,256,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,16383,384,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,16383,512,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,16383,640,91648,91649,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,16383,768,2034048,2034049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,16383,896,31321344,31321345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,16383,1024,378538496,378538497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,16383,1152,3815302656,3815302657,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,16383,1280,33283200896,33283200897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,16383,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,16383,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,16383,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,16383,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,16383,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,16383,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,16383,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,16383,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,16383,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,16383,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,32767,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,32767,256,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,32767,384,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,32767,512,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,32767,640,16512,16513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,32767,768,420096,420097,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,32767,896,6807552,6807553,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,32767,1024,84563328,84563329,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,32767,1152,867237632,867237633,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,32767,1280,7657130752,7657130753,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,32767,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,32767,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,32767,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,32767,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,32767,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,32767,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,32767,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,32767,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,32767,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,32767,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,65535,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,65535,256,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,65535,384,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,65535,512,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,65535,640,2432,2433,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,65535,768,82432,82433,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,65535,896,1443840,1443841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,65535,1024,18609280,18609281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,65535,1152,195084672,195084673,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,65535,1280,1747949056,1747949057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,65535,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,65535,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,65535,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,65535,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,65535,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,65535,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,65535,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,65535,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,65535,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,65535,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,131071,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,131071,256,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,131071,384,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,131071,512,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,131071,640,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,131071,768,14720,14721,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,131071,896,295552,295553,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,131071,1024,4014592,4014593,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,131071,1152,43313536,43313537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,131071,1280,395262208,395262209,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,131071,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,131071,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,131071,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,131071,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,131071,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,131071,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,131071,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,131071,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,131071,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,131071,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,262143,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,262143,256,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,262143,384,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,262143,512,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,262143,640,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,262143,768,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,262143,896,57088,57089,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,262143,1024,842496,842497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,262143,1152,9455104,9455105,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,262143,1280,88338176,88338177,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,262143,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,262143,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,262143,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,262143,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,262143,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,262143,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,262143,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,262143,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,262143,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,262143,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,524287,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,524287,256,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,524287,384,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,524287,512,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,524287,640,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,524287,768,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,524287,896,9856,9857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,524287,1024,169600,169601,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,524287,1152,2017408,2017409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,524287,1280,19450112,19450113,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,524287,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,524287,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,524287,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,524287,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,524287,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,524287,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,524287,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,524287,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,524287,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,524287,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,1048575,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,1048575,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,1048575,384,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,1048575,512,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,1048575,640,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,1048575,768,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,1048575,896,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,1048575,1024,31872,31873,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,1048575,1152,416640,416641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,1048575,1280,4198912,4198913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,1048575,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,1048575,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,1048575,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,1048575,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,1048575,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,1048575,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,1048575,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,1048575,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,1048575,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,1048575,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,2097151,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,2097151,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,2097151,384,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,2097151,512,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,2097151,640,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,2097151,768,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,2097151,896,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,2097151,1024,5120,5121,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,2097151,1152,81792,81793,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,2097151,1280,882048,882049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,2097151,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,2097151,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,2097151,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,2097151,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,2097151,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,2097151,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,2097151,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,2097151,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,2097151,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,2097151,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,4194303,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,4194303,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,4194303,384,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,4194303,512,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,4194303,640,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,4194303,768,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,4194303,896,1536,1537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,4194303,1024,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,4194303,1152,14592,14593,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,4194303,1280,177920,177921,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,4194303,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,4194303,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,4194303,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,4194303,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,4194303,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,4194303,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,4194303,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,4194303,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,4194303,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,4194303,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,8388607,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,8388607,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,8388607,384,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,8388607,512,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,8388607,640,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,8388607,768,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,8388607,896,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,8388607,1024,1792,1793,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,8388607,1152,2432,2433,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,8388607,1280,33536,33537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,8388607,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,8388607,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,8388607,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,8388607,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,8388607,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,8388607,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,8388607,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,8388607,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,8388607,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,8388607,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,16777215,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,16777215,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,16777215,384,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,16777215,512,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,16777215,640,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,16777215,768,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,16777215,896,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,16777215,1024,1536,1537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,16777215,1152,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,16777215,1280,5504,5505,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,16777215,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,16777215,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,16777215,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,16777215,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,16777215,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,16777215,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,16777215,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,16777215,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,16777215,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,16777215,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,33554431,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,33554431,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,33554431,384,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,33554431,512,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,33554431,640,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,33554431,768,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,33554431,896,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,33554431,1024,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,33554431,1152,1792,1793,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,33554431,1280,2304,2305,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,33554431,1408,11648,11649,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,33554431,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,33554431,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,33554431,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,33554431,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,33554431,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,33554431,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,33554431,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,33554431,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,33554431,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,1,67108863,128,128,129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,2,67108863,256,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,3,67108863,384,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,4,67108863,512,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,5,67108863,640,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,6,67108863,768,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,7,67108863,896,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,8,67108863,1024,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,9,67108863,1152,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,10,67108863,1280,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,11,67108863,1408,2560,2561,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,128,12,67108863,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,13,67108863,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,14,67108863,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,15,67108863,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,16,67108863,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,17,67108863,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,18,67108863,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,19,67108863,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,128,20,67108863,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,2,256,486802176,486802177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,2,512,1194776879872,1194776879873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,2,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,2,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,2,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,2,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,2,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,2,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,2,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,2,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,2,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,2,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,2,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,2,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,2,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,2,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,2,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,2,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,2,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,2,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,3,256,203156224,203156225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,3,512,510412863232,510412863233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,3,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,3,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,3,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,3,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,3,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,3,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,3,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,3,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,3,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,3,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,3,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,3,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,3,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,3,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,3,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,3,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,3,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,3,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,7,256,32223488,32223489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,7,512,85829285376,85829285377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,7,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,7,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,7,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,7,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,7,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,7,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,7,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,7,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,7,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,7,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,7,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,7,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,7,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,7,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,7,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,7,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,7,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,7,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,15,256,6012160,6012161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,15,512,17136253952,17136253953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,15,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,15,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,15,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,15,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,15,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,15,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,15,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,15,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,15,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,15,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,15,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,15,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,15,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,15,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,15,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,15,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,15,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,15,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,31,256,1180928,1180929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,31,512,3664248064,3664248065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,31,768,1430642034688,1430642034689,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,31,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,31,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,31,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,31,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,31,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,31,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,31,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,31,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,31,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,31,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,31,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,31,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,31,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,31,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,31,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,31,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,31,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,63,256,231424,231425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,63,512,804649216,804649217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,63,768,323082086400,323082086401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,63,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,63,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,63,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,63,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,63,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,63,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,63,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,63,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,63,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,63,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,63,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,63,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,63,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,63,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,63,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,63,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,63,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,127,256,43264,43265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,127,512,177839104,177839105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,127,768,73820726784,73820726785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,127,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,127,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,127,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,127,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,127,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,127,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,127,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,127,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,127,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,127,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,127,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,127,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,127,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,127,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,127,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,127,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,127,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,255,256,7168,7169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,255,512,39111936,39111937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,255,768,16905915392,16905915393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,255,1024,2548832062208,2548832062209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,255,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,255,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,255,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,255,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,255,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,255,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,255,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,255,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,255,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,255,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,255,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,255,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,255,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,255,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,255,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,255,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,511,256,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,511,512,8489728,8489729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,511,768,3860169216,3860169217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,511,1024,593938821888,593938821889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,511,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,511,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,511,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,511,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,511,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,511,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,511,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,511,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,511,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,511,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,511,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,511,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,511,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,511,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,511,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,511,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,1023,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,1023,512,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,1023,768,875720448,875720449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,1023,1024,138015849216,138015849217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,1023,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,1023,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,1023,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,1023,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,1023,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,1023,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,1023,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,1023,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,1023,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,1023,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,1023,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,1023,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,1023,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,1023,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,1023,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,1023,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,2047,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,2047,512,370944,370945,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,2047,768,196806400,196806401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,2047,1024,31924463616,31924463617,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,2047,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,2047,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,2047,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,2047,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,2047,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,2047,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,2047,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,2047,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,2047,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,2047,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,2047,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,2047,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,2047,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,2047,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,2047,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,2047,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,4095,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,4095,512,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,4095,768,43676928,43676929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,4095,1024,7339713024,7339713025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,4095,1280,617354505472,617354505473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,4095,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,4095,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,4095,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,4095,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,4095,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,4095,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,4095,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,4095,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,4095,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,4095,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,4095,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,4095,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,4095,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,4095,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,4095,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,8191,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,8191,512,12800,12801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,8191,768,9532928,9532929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,8191,1024,1674693888,1674693889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,8191,1280,143735699712,143735699713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,8191,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,8191,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,8191,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,8191,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,8191,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,8191,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,8191,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,8191,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,8191,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,8191,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,8191,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,8191,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,8191,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,8191,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,8191,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,16383,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,16383,512,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,16383,768,2033920,2033921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,16383,1024,378538496,378538497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,16383,1280,33283200768,33283200769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,16383,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,16383,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,16383,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,16383,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,16383,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,16383,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,16383,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,16383,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,16383,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,16383,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,16383,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,16383,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,16383,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,16383,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,16383,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,32767,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,32767,512,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,32767,768,420096,420097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,32767,1024,84563200,84563201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,32767,1280,7657130752,7657130753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,32767,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,32767,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,32767,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,32767,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,32767,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,32767,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,32767,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,32767,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,32767,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,32767,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,32767,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,32767,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,32767,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,32767,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,32767,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,65535,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,65535,512,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,65535,768,82432,82433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,65535,1024,18609152,18609153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,65535,1280,1747949056,1747949057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,65535,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,65535,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,65535,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,65535,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,65535,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,65535,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,65535,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,65535,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,65535,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,65535,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,65535,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,65535,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,65535,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,65535,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,65535,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,131071,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,131071,512,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,131071,768,14592,14593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,131071,1024,4014592,4014593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,131071,1280,395262208,395262209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,131071,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,131071,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,131071,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,131071,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,131071,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,131071,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,131071,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,131071,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,131071,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,131071,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,131071,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,131071,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,131071,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,131071,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,131071,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,262143,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,262143,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,262143,768,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,262143,1024,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,262143,1280,88338176,88338177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,262143,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,262143,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,262143,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,262143,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,262143,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,262143,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,262143,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,262143,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,262143,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,262143,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,262143,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,262143,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,262143,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,262143,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,262143,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,524287,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,524287,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,524287,768,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,524287,1024,169472,169473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,524287,1280,19450112,19450113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,524287,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,524287,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,524287,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,524287,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,524287,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,524287,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,524287,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,524287,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,524287,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,524287,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,524287,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,524287,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,524287,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,524287,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,524287,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,1048575,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,1048575,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,1048575,768,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,1048575,1024,31744,31745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,1048575,1280,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,1048575,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,1048575,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,1048575,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,1048575,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,1048575,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,1048575,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,1048575,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,1048575,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,1048575,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,1048575,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,1048575,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,1048575,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,1048575,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,1048575,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,1048575,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,2097151,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,2097151,512,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,2097151,768,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,2097151,1024,5120,5121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,2097151,1280,881920,881921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,2097151,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,2097151,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,2097151,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,2097151,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,2097151,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,2097151,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,2097151,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,2097151,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,2097151,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,2097151,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,2097151,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,2097151,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,2097151,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,2097151,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,2097151,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,4194303,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,4194303,512,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,4194303,768,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,4194303,1024,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,4194303,1280,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,4194303,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,4194303,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,4194303,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,4194303,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,4194303,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,4194303,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,4194303,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,4194303,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,4194303,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,4194303,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,4194303,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,4194303,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,4194303,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,4194303,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,4194303,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,8388607,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,8388607,512,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,8388607,768,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,8388607,1024,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,8388607,1280,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,8388607,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,8388607,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,8388607,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,8388607,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,8388607,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,8388607,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,8388607,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,8388607,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,8388607,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,8388607,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,8388607,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,8388607,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,8388607,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,8388607,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,8388607,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,16777215,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,16777215,512,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,16777215,768,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,16777215,1024,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,16777215,1280,5376,5377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,16777215,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,16777215,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,16777215,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,16777215,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,16777215,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,16777215,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,16777215,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,16777215,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,16777215,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,16777215,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,16777215,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,16777215,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,16777215,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,16777215,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,16777215,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,33554431,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,33554431,512,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,33554431,768,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,33554431,1024,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,33554431,1280,2304,2305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,33554431,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,33554431,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,33554431,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,33554431,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,33554431,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,33554431,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,33554431,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,33554431,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,33554431,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,33554431,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,33554431,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,33554431,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,33554431,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,33554431,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,33554431,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,1,67108863,256,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,2,67108863,512,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,3,67108863,768,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,4,67108863,1024,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,5,67108863,1280,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q32Offset99,256,6,67108863,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,7,67108863,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,8,67108863,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,9,67108863,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,10,67108863,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,11,67108863,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,12,67108863,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,13,67108863,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,14,67108863,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,15,67108863,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,16,67108863,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,17,67108863,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,18,67108863,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,19,67108863,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q32Offset99,256,20,67108863,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,2,32,20768,20769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,2,64,1605856,1605857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,2,96,36836448,36836449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,2,128,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,2,160,4598641056,4598641057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,2,192,34443025696,34443025697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,2,224,217033753824,217033753825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,2,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,2,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,2,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,2,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,2,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,2,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,2,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,2,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,2,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,2,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,2,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,2,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,2,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,3,32,7168,7169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,3,64,639328,639329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,3,96,15141664,15141665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,3,128,203156384,203156385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,3,160,1936732448,1936732449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,3,192,14596093536,14596093537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,3,224,92392869088,92392869089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,3,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,3,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,3,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,3,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,3,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,3,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,3,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,3,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,3,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,3,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,3,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,3,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,3,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,7,32,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,7,64,88352,88353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,7,96,2305280,2305281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,7,128,32223712,32223713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,7,160,314477376,314477377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,7,192,2406961440,2406961441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,7,224,15406044512,15406044513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,7,256,85829286528,85829286529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,7,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,7,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,7,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,7,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,7,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,7,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,7,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,7,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,7,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,7,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,7,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,7,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,15,32,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,15,64,13312,13313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,15,96,407488,407489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,15,128,6012384,6012385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,15,160,60362336,60362337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,15,192,470303200,470303201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,15,224,3047742656,3047742657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,15,256,17136254400,17136254401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,15,288,85981497504,85981497505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,15,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,15,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,15,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,15,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,15,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,15,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,15,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,15,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,15,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,15,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,15,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,31,32,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,31,64,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,31,96,73856,73857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,31,128,1181152,1181153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,31,160,12308992,12308993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,31,192,98040448,98040449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,31,224,644782624,644782625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,31,256,3664248224,3664248225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,31,288,18535550784,18535550785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,31,320,85206572576,85206572577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,31,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,31,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,31,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,31,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,31,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,31,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,31,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,31,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,31,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,31,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,63,32,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,63,64,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,63,96,12576,12577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,63,128,231584,231585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,63,160,2545216,2545217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,63,192,20866048,20866049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,63,224,139778112,139778113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,63,256,804649408,804649409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,63,288,4109553792,4109553793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,63,320,19032853984,19032853985,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,63,352,81211140640,81211140641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,63,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,63,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,63,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,63,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,63,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,63,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,63,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,63,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,63,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,127,32,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,127,64,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,127,96,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,127,128,43424,43425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,127,160,519168,519169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,127,192,4430592,4430593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,127,224,30399584,30399585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,127,256,177839328,177839329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,127,288,918919136,918919137,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,127,320,4293801408,4293801409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,127,352,18450229760,18450229761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,127,384,73820728128,73820728129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,127,416,277683729792,277683729793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,127,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,127,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,127,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,127,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,127,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,127,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,127,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,255,32,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,255,64,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,255,96,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,255,128,7264,7265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,255,160,101856,101857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,255,192,923456,923457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,255,224,6547648,6547649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,255,256,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,255,288,205062464,205062465,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,255,320,968604096,968604097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,255,352,4197071904,4197071905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,255,384,16905915776,16905915777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,255,416,63944921408,63944921409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,255,448,228922092992,228922092993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,255,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,255,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,255,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,255,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,255,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,255,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,511,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,511,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,511,96,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,511,128,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,511,160,18432,18433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,511,192,185696,185697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,511,224,1381600,1381601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,511,256,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,511,288,45357760,45357761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,511,320,217160640,217160641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,511,352,950653888,950653889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,511,384,3860169312,3860169313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,511,416,14696025728,14696025729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,511,448,52895915232,52895915233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,511,480,181198586496,181198586497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,511,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,511,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,511,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,511,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,511,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,1023,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,1023,64,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,1023,96,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,1023,128,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,1023,160,2752,2753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,1023,192,35008,35009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,1023,224,281824,281825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,1023,256,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,1023,288,9885952,9885953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,1023,320,48163584,48163585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,1023,352,213557344,213557345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,1023,384,875720480,875720481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,1023,416,3360093600,3360093601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,1023,448,12171463424,12171463425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,1023,480,41916410816,41916410817,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,1023,512,138015851808,138015851809,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,1023,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,1023,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,1023,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,1023,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,2047,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,2047,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,2047,96,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,2047,128,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,2047,160,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,2047,192,5760,5761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,2047,224,54336,54337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,2047,256,371104,371105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,2047,288,2108672,2108673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,2047,320,10516832,10516833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,2047,352,47407264,47407265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,2047,384,196806560,196806561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,2047,416,762394368,762394369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,2047,448,2782935968,2782935969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,2047,480,9644577408,9644577409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,2047,512,31924464224,31924464225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,2047,544,101424872160,101424872161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,2047,576,310529212480,310529212481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,2047,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,2047,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,4095,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,4095,64,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,4095,96,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,4095,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,4095,160,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,4095,192,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,4095,224,9376,9377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,4095,256,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,4095,288,435744,435745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,4095,320,2246880,2246881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,4095,352,10355200,10355201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,4095,384,43677152,43677153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,4095,416,171241120,171241121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,4095,448,630990496,630990497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,4095,480,2203472160,2203472161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,4095,512,7339713312,7339713313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,4095,544,23442237344,23442237345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,4095,576,72097838272,72097838273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,4095,608,214287613216,214287613217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,4095,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,8191,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,8191,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,8191,96,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,8191,128,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,8191,160,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,8191,192,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,8191,224,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,8191,256,12832,12833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,8191,288,85664,85665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,8191,320,465152,465153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,8191,352,2212352,2212353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,8191,384,9533056,9533057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,8191,416,37960896,37960897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,8191,448,141547296,141547297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,8191,480,498950368,498950369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,8191,512,1674694080,1674694081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,8191,544,5382695680,5382695681,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,8191,576,16643366560,16643366561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,8191,608,49693884896,49693884897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,8191,640,143735702912,143735702913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,16383,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,16383,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,16383,96,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,16383,128,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,16383,160,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,16383,192,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,16383,224,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,16383,256,1760,1761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,16383,288,15392,15393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,16383,320,91712,91713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,16383,352,457920,457921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,16383,384,2034080,2034081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,16383,416,8271424,8271425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,16383,448,31321344,31321345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,16383,480,111722912,111722913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,16383,512,378538560,378538561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,16383,544,1226055520,1226055521,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,16383,576,3815302752,3815302753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,16383,608,11453626624,11453626625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,16383,640,33283201600,33283201601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,32767,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,32767,64,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,32767,96,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,32767,128,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,32767,160,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,32767,192,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,32767,224,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,32767,256,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,32767,288,2208,2209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,32767,320,16576,16577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,32767,352,90240,90241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,32767,384,420160,420161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,32767,416,1760544,1760545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,32767,448,6807584,6807585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,32767,480,24661472,24661473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,32767,512,84563424,84563425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,32767,544,276520928,276520929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,32767,576,867237696,867237697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,32767,608,2620490272,2620490273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,32767,640,7657131008,7657131009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,65535,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,65535,64,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,65535,96,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,65535,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,65535,160,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,65535,192,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,65535,224,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,65535,256,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,65535,288,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,65535,320,2432,2433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,65535,352,16288,16289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,65535,384,82496,82497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,65535,416,362304,362305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,65535,448,1443840,1443841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,65535,480,5342336,5342337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,65535,512,18609312,18609313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,65535,544,61599168,61599169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,65535,576,195084800,195084801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,65535,608,594212352,594212353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,65535,640,1747949152,1747949153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,131071,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,131071,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,131071,96,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,131071,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,131071,160,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,131071,192,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,131071,224,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,131071,256,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,131071,288,1248,1249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,131071,320,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,131071,352,2368,2369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,131071,384,14784,14785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,131071,416,70720,70721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,131071,448,295552,295553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,131071,480,1127776,1127777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,131071,512,4014656,4014657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,131071,544,13505760,13505761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,131071,576,43313632,43313633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,131071,608,133264096,133264097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,131071,640,395262240,395262241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,262143,32,96,97,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,262143,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,262143,96,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,262143,128,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,262143,160,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,262143,192,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,262143,224,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,262143,256,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,262143,288,1120,1121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,262143,320,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,262143,352,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,262143,384,2144,2145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,262143,416,12512,12513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,262143,448,57152,57153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,262143,480,229216,229217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,262143,512,842528,842529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,262143,544,2899040,2899041,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,262143,576,9455168,9455169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,262143,608,29473568,29473569,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,262143,640,88338272,88338273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,524287,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,524287,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,524287,96,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,524287,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,524287,160,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,524287,192,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,524287,224,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,524287,256,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,524287,288,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,524287,320,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,524287,352,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,524287,384,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,524287,416,2080,2081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,524287,448,9920,9921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,524287,480,43808,43809,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,524287,512,169696,169697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,524287,544,604032,604033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,524287,576,2017440,2017441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,524287,608,6401024,6401025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,524287,640,19450208,19450209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,1048575,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,1048575,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,1048575,96,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,1048575,128,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,1048575,160,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,1048575,192,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,1048575,224,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,1048575,256,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,1048575,288,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,1048575,320,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,1048575,352,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,1048575,384,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,1048575,416,1696,1697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,1048575,448,2080,2081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,1048575,480,7392,7393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,1048575,512,31904,31905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,1048575,544,120288,120289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,1048575,576,416640,416641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,1048575,608,1356064,1356065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,1048575,640,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,2097151,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,2097151,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,2097151,96,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,2097151,128,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,2097151,160,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,2097151,192,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,2097151,224,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,2097151,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,2097151,288,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,2097151,320,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,2097151,352,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,2097151,384,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,2097151,416,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,2097151,448,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,2097151,480,2080,2081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,2097151,512,5184,5185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,2097151,544,22144,22145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,2097151,576,81792,81793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,2097151,608,277088,277089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,2097151,640,882048,882049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,4194303,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,4194303,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,4194303,96,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,4194303,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,4194303,160,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,4194303,192,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,4194303,224,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,4194303,256,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,4194303,288,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,4194303,320,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,4194303,352,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,4194303,384,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,4194303,416,1376,1377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,4194303,448,1568,1569,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,4194303,480,1760,1761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,4194303,512,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,4194303,544,3424,3425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,4194303,576,14656,14657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,4194303,608,53440,53441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,4194303,640,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,8388607,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,8388607,64,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,8388607,96,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,8388607,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,8388607,160,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,8388607,192,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,8388607,224,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,8388607,256,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,8388607,288,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,8388607,320,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,8388607,352,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,8388607,384,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,8388607,416,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,8388607,448,1440,1441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,8388607,480,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,8388607,512,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,8388607,544,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,8388607,576,2496,2497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,8388607,608,9216,9217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,8388607,640,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,16777215,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,16777215,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,16777215,96,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,16777215,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,16777215,160,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,16777215,192,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,16777215,224,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,16777215,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,16777215,288,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,16777215,320,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,16777215,352,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,16777215,384,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,16777215,416,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,16777215,448,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,16777215,480,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,16777215,512,1632,1633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,16777215,544,1824,1825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,16777215,576,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,16777215,608,2368,2369,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,16777215,640,5504,5505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,33554431,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,33554431,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,33554431,96,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,33554431,128,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,33554431,160,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,33554431,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,33554431,224,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,33554431,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,33554431,288,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,33554431,320,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,33554431,352,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,33554431,384,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,33554431,416,1120,1121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,33554431,448,1248,1249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,33554431,480,1376,1377,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,33554431,512,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,33554431,544,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,33554431,576,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,33554431,608,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,33554431,640,2336,2337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,1,67108863,32,64,65,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,2,67108863,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,3,67108863,96,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,4,67108863,128,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,5,67108863,160,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,6,67108863,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,7,67108863,224,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,8,67108863,256,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,9,67108863,288,672,673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,10,67108863,320,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,11,67108863,352,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,12,67108863,384,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,13,67108863,416,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,14,67108863,448,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,15,67108863,480,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,16,67108863,512,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,17,67108863,544,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,18,67108863,576,1696,1697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,19,67108863,608,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,32,20,67108863,640,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,2,64,1605824,1605825,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,2,128,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,2,192,34443025664,34443025665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,2,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,2,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,2,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,2,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,2,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,2,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,2,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,2,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,2,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,2,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,2,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,2,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,2,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,2,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,2,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,2,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,2,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,3,64,639296,639297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,3,128,203156352,203156353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,3,192,14596093504,14596093505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,3,256,510412870080,510412870081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,3,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,3,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,3,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,3,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,3,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,3,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,3,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,3,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,3,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,3,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,3,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,3,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,3,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,3,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,3,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,3,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,7,64,88320,88321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,7,128,32223680,32223681,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,7,192,2406961408,2406961409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,7,256,85829286528,85829286529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,7,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,7,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,7,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,7,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,7,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,7,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,7,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,7,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,7,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,7,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,7,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,7,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,7,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,7,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,7,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,7,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,15,64,13312,13313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,15,128,6012352,6012353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,15,192,470303168,470303169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,15,256,17136254400,17136254401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,15,320,392714685760,392714685761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,15,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,15,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,15,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,15,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,15,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,15,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,15,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,15,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,15,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,15,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,15,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,15,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,15,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,15,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,15,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,31,64,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,31,128,1181120,1181121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,31,192,98040448,98040449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,31,256,3664248192,3664248193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,31,320,85206572544,85206572545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,31,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,31,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,31,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,31,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,31,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,31,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,31,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,31,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,31,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,31,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,31,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,31,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,31,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,31,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,31,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,63,64,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,63,128,231552,231553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,63,192,20866048,20866049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,63,256,804649408,804649409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,63,320,19032853952,19032853953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,63,384,323082091776,323082091777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,63,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,63,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,63,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,63,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,63,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,63,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,63,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,63,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,63,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,63,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,63,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,63,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,63,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,63,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,127,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,127,128,43392,43393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,127,192,4430592,4430593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,127,256,177839296,177839297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,127,320,4293801408,4293801409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,127,384,73820728128,73820728129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,127,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,127,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,127,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,127,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,127,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,127,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,127,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,127,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,127,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,127,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,127,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,127,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,127,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,127,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,255,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,255,128,7232,7233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,255,192,923456,923457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,255,256,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,255,320,968604096,968604097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,255,384,16905915776,16905915777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,255,448,228922092992,228922092993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,255,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,255,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,255,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,255,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,255,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,255,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,255,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,255,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,255,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,255,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,255,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,255,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,255,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,511,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,511,128,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,511,192,185664,185665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,511,256,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,511,320,217160640,217160641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,511,384,3860169280,3860169281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,511,448,52895915200,52895915201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,511,512,593938832960,593938832961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,511,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,511,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,511,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,511,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,511,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,511,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,511,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,511,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,511,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,511,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,511,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,511,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,1023,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,1023,128,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,1023,192,35008,35009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,1023,256,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,1023,320,48163584,48163585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,1023,384,875720448,875720449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,1023,448,12171463424,12171463425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,1023,512,138015851776,138015851777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,1023,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,1023,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,1023,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,1023,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,1023,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,1023,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,1023,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,1023,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,1023,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,1023,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,1023,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,1023,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,2047,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,2047,128,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,2047,192,5760,5761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,2047,256,371072,371073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,2047,320,10516800,10516801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,2047,384,196806528,196806529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,2047,448,2782935936,2782935937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,2047,512,31924464192,31924464193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,2047,576,310529212480,310529212481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,2047,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,2047,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,2047,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,2047,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,2047,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,2047,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,2047,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,2047,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,2047,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,2047,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,2047,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,4095,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,4095,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,4095,192,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,4095,256,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,4095,320,2246848,2246849,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,4095,384,43677120,43677121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,4095,448,630990464,630990465,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,4095,512,7339713280,7339713281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,4095,576,72097838272,72097838273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,4095,640,617354518400,617354518401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,4095,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,4095,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,4095,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,4095,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,4095,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,4095,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,4095,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,4095,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,4095,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,4095,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,8191,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,8191,128,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,8191,192,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,8191,256,12800,12801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,8191,320,465152,465153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,8191,384,9533056,9533057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,8191,448,141547264,141547265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,8191,512,1674694080,1674694081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,8191,576,16643366528,16643366529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,8191,640,143735702912,143735702913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,8191,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,8191,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,8191,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,8191,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,8191,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,8191,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,8191,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,8191,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,8191,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,8191,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,16383,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,16383,128,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,16383,192,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,16383,256,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,16383,320,91712,91713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,16383,384,2034048,2034049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,16383,448,31321344,31321345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,16383,512,378538560,378538561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,16383,576,3815302720,3815302721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,16383,640,33283201600,33283201601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,16383,704,257737435648,257737435649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,16383,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,16383,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,16383,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,16383,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,16383,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,16383,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,16383,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,16383,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,16383,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,32767,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,32767,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,32767,192,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,32767,256,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,32767,320,16576,16577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,32767,384,420160,420161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,32767,448,6807552,6807553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,32767,512,84563392,84563393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,32767,576,867237696,867237697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,32767,640,7657131008,7657131009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,32767,704,59824878208,59824878209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,32767,768,421737065408,421737065409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,32767,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,32767,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,32767,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,32767,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,32767,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,32767,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,32767,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,32767,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,65535,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,65535,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,65535,192,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,65535,256,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,65535,320,2432,2433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,65535,384,82496,82497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,65535,448,1443840,1443841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,65535,512,18609280,18609281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,65535,576,195084800,195084801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,65535,640,1747949120,1747949121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,65535,704,13801757184,13801757185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,65535,768,98077637888,98077637889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,65535,832,636986673920,636986673921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,65535,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,65535,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,65535,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,65535,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,65535,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,65535,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,65535,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,131071,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,131071,128,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,131071,192,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,131071,256,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,131071,320,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,131071,384,14784,14785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,131071,448,295552,295553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,131071,512,4014656,4014657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,131071,576,43313600,43313601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,131071,640,395262208,395262209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,131071,704,3161094912,3161094913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,131071,768,22676681408,22676681409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,131071,832,148358796288,148358796289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,131071,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,131071,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,131071,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,131071,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,131071,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,131071,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,131071,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,262143,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,262143,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,262143,192,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,262143,256,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,262143,320,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,262143,384,2112,2113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,262143,448,57152,57153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,262143,512,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,262143,576,9455168,9455169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,262143,640,88338240,88338241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,262143,704,717704000,717704001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,262143,768,5207345216,5207345217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,262143,832,34362360960,34362360961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,262143,896,209006766784,209006766785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,262143,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,262143,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,262143,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,262143,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,262143,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,262143,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,524287,64,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,524287,128,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,524287,192,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,524287,256,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,524287,320,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,524287,384,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,524287,448,9920,9921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,524287,512,169664,169665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,524287,576,2017408,2017409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,524287,640,19450176,19450177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,524287,704,161209728,161209729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,524287,768,1186025472,1186025473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,524287,832,7907107456,7907107457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,524287,896,48476752000,48476752001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,524287,960,276331882240,276331882241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,524287,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,524287,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,524287,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,524287,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,524287,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,1048575,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,1048575,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,1048575,192,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,1048575,256,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,1048575,320,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,1048575,384,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,1048575,448,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,1048575,512,31872,31873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,1048575,576,416640,416641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,1048575,640,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,1048575,704,35724672,35724673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,1048575,768,267443520,267443521,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,1048575,832,1805404608,1805404609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,1048575,896,11173233728,11173233729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,1048575,960,64162237440,64162237441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,1048575,1024,345053889344,345053889345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,1048575,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,1048575,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,1048575,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,1048575,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,2097151,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,2097151,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,2097151,192,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,2097151,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,2097151,320,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,2097151,384,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,2097151,448,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,2097151,512,5184,5185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,2097151,576,81792,81793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,2097151,640,882048,882049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,2097151,704,7778944,7778945,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,2097151,768,59560384,59560385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,2097151,832,408354048,408354049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,2097151,896,2556152064,2556152065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,2097151,960,14807555392,14807555393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,2097151,1024,80186926720,80186926721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,2097151,1088,409122725888,409122725889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,2097151,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,2097151,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,2097151,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,4194303,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,4194303,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,4194303,192,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,4194303,256,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,4194303,320,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,4194303,384,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,4194303,448,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,4194303,512,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,4194303,576,14656,14657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,4194303,640,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,4194303,704,1653952,1653953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,4194303,768,13053632,13053633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,4194303,832,91291008,91291009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,4194303,896,579545408,579545409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,4194303,960,3392795008,3392795009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,4194303,1024,18524185920,18524185921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,4194303,1088,95136420416,95136420417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,4194303,1152,462713196992,462713196993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,4194303,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,4194303,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,8388607,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,8388607,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,8388607,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,8388607,256,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,8388607,320,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,8388607,384,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,8388607,448,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,8388607,512,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,8388607,576,2496,2497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,8388607,640,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,8388607,704,339840,339841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,8388607,768,2800448,2800449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,8388607,832,20107840,20107841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,8388607,896,129949952,129949953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,8388607,960,770669760,770669761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,8388607,1024,4249395840,4249395841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,8388607,1088,21994099968,21994099969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,8388607,1152,107647009280,107647009281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,8388607,1216,501145837760,501145837761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,8388607,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,16777215,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,16777215,128,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,16777215,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,16777215,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,16777215,320,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,16777215,384,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,16777215,448,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,16777215,512,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,16777215,576,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,16777215,640,5504,5505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,16777215,704,66112,66113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,16777215,768,582976,582977,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,16777215,832,4343040,4343041,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,16777215,896,28733184,28733185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,16777215,960,173206144,173206145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,16777215,1024,966629952,966629953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,16777215,1088,5049854848,5049854849,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,16777215,1152,24899556416,24899556417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,16777215,1216,116622008512,116622008513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,16777215,1280,521538235072,521538235073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,33554431,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,33554431,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,33554431,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,33554431,256,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,33554431,320,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,33554431,384,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,33554431,448,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,33554431,512,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,33554431,576,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,33554431,640,2304,2305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,33554431,704,11648,11649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,33554431,768,115904,115905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,33554431,832,912960,912961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,33554431,896,6238016,6238017,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,33554431,960,38411136,38411137,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,33554431,1024,217633344,217633345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,33554431,1088,1149944000,1149944001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,33554431,1152,5720545024,5720545025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,33554431,1216,26984709952,26984709953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,33554431,1280,121385078272,121385078273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,1,67108863,64,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,2,67108863,128,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,3,67108863,192,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,4,67108863,256,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,5,67108863,320,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,6,67108863,384,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,7,67108863,448,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,8,67108863,512,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,9,67108863,576,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,10,67108863,640,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,11,67108863,704,2624,2625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,12,67108863,768,21248,21249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,13,67108863,832,184320,184321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,14,67108863,896,1320896,1320897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,15,67108863,960,8371968,8371969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,16,67108863,1024,48372480,48372481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,17,67108863,1088,259247872,259247873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,18,67108863,1152,1303660672,1303660673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,19,67108863,1216,6202095232,6202095233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,64,20,67108863,1280,28091558848,28091558849,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,2,128,486802176,486802177,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,2,256,1194776895488,1194776895489,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,2,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,2,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,2,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,2,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,2,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,2,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,2,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,2,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,2,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,2,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,2,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,2,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,2,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,2,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,2,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,2,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,2,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,2,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,3,128,203156352,203156353,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,3,256,510412870016,510412870017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,3,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,3,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,3,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,3,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,3,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,3,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,3,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,3,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,3,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,3,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,3,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,3,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,3,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,3,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,3,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,3,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,3,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,3,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,7,128,32223616,32223617,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,7,256,85829286528,85829286529,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,7,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,7,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,7,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,7,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,7,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,7,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,7,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,7,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,7,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,7,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,7,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,7,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,7,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,7,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,7,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,7,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,7,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,7,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,15,128,6012288,6012289,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,15,256,17136254336,17136254337,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,15,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,15,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,15,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,15,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,15,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,15,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,15,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,15,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,15,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,15,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,15,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,15,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,15,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,15,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,15,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,15,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,15,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,15,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,31,128,1181056,1181057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,31,256,3664248192,3664248193,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,31,384,1430642057728,1430642057729,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,31,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,31,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,31,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,31,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,31,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,31,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,31,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,31,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,31,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,31,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,31,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,31,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,31,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,31,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,31,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,31,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,31,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,63,128,231552,231553,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,63,256,804649344,804649345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,63,384,323082091776,323082091777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,63,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,63,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,63,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,63,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,63,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,63,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,63,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,63,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,63,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,63,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,63,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,63,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,63,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,63,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,63,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,63,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,63,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,127,128,43392,43393,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,127,256,177839232,177839233,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,127,384,73820728064,73820728065,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,127,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,127,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,127,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,127,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,127,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,127,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,127,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,127,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,127,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,127,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,127,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,127,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,127,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,127,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,127,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,127,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,127,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,255,128,7168,7169,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,255,256,39111936,39111937,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,255,384,16905915776,16905915777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,255,512,2548832109440,2548832109441,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,255,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,255,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,255,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,255,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,255,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,255,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,255,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,255,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,255,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,255,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,255,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,255,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,255,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,255,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,255,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,255,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,511,128,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,511,256,8489856,8489857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,511,384,3860169216,3860169217,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,511,512,593938832896,593938832897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,511,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,511,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,511,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,511,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,511,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,511,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,511,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,511,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,511,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,511,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,511,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,511,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,511,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,511,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,511,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,511,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,1023,128,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,1023,256,1804032,1804033,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,1023,384,875720448,875720449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,1023,512,138015851776,138015851777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,1023,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,1023,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,1023,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,1023,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,1023,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,1023,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,1023,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,1023,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,1023,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,1023,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,1023,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,1023,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,1023,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,1023,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,1023,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,1023,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,2047,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,2047,256,371072,371073,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,2047,384,196806528,196806529,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,2047,512,31924464128,31924464129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,2047,640,2639515230976,2639515230977,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,2047,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,2047,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,2047,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,2047,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,2047,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,2047,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,2047,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,2047,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,2047,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,2047,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,2047,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,2047,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,2047,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,2047,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,2047,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,4095,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,4095,256,72448,72449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,4095,384,43677056,43677057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,4095,512,7339713280,7339713281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,4095,640,617354518400,617354518401,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,4095,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,4095,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,4095,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,4095,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,4095,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,4095,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,4095,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,4095,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,4095,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,4095,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,4095,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,4095,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,4095,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,4095,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,4095,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,8191,128,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,8191,256,12800,12801,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,8191,384,9533056,9533057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,8191,512,1674694016,1674694017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,8191,640,143735702912,143735702913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,8191,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,8191,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,8191,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,8191,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,8191,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,8191,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,8191,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,8191,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,8191,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,8191,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,8191,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,8191,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,8191,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,8191,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,8191,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,16383,128,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,16383,256,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,16383,384,2034048,2034049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,16383,512,378538496,378538497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,16383,640,33283201536,33283201537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,16383,768,1804497424768,1804497424769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,16383,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,16383,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,16383,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,16383,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,16383,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,16383,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,16383,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,16383,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,16383,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,16383,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,16383,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,16383,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,16383,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,16383,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,32767,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,32767,256,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,32767,384,420096,420097,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,32767,512,84563328,84563329,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,32767,640,7657131008,7657131009,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,32767,768,421737065344,421737065345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,32767,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,32767,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,32767,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,32767,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,32767,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,32767,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,32767,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,32767,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,32767,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,32767,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,32767,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,32767,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,32767,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,32767,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,65535,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,65535,256,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,65535,384,82432,82433,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,65535,512,18609280,18609281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,65535,640,1747949056,1747949057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,65535,768,98077637888,98077637889,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,65535,896,3825966586880,3825966586881,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,65535,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,65535,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,65535,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,65535,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,65535,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,65535,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,65535,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,65535,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,65535,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,65535,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,65535,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,65535,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,65535,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,131071,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,131071,256,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,131071,384,14720,14721,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,131071,512,4014592,4014593,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,131071,640,395262208,395262209,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,131071,768,22676681344,22676681345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,131071,896,896307741056,896307741057,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,131071,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,131071,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,131071,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,131071,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,131071,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,131071,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,131071,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,131071,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,131071,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,131071,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,131071,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,131071,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,131071,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,262143,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,262143,256,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,262143,384,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,262143,512,842496,842497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,262143,640,88338176,88338177,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,262143,768,5207345152,5207345153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,262143,896,209006766720,209006766721,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,262143,1024,6296545595776,6296545595777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,262143,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,262143,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,262143,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,262143,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,262143,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,262143,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,262143,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,262143,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,262143,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,262143,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,262143,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,262143,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,524287,128,384,385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,524287,256,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,524287,384,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,524287,512,169600,169601,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,524287,640,19450112,19450113,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,524287,768,1186025472,1186025473,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,524287,896,48476752000,48476752001,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,524287,1024,1477254929280,1477254929281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,524287,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,524287,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,524287,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,524287,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,524287,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,524287,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,524287,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,524287,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,524287,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,524287,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,524287,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,524287,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,1048575,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,1048575,256,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,1048575,384,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,1048575,512,31872,31873,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,1048575,640,4198912,4198913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,1048575,768,267443456,267443457,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,1048575,896,11173233664,11173233665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,1048575,1024,345053889280,345053889281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,1048575,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,1048575,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,1048575,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,1048575,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,1048575,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,1048575,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,1048575,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,1048575,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,1048575,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,1048575,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,1048575,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,1048575,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,2097151,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,2097151,256,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,2097151,384,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,2097151,512,5120,5121,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,2097151,640,882048,882049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,2097151,768,59560320,59560321,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,2097151,896,2556152064,2556152065,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,2097151,1024,80186926720,80186926721,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,2097151,1152,1979114151296,1979114151297,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,2097151,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,2097151,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,2097151,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,2097151,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,2097151,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,2097151,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,2097151,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,2097151,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,2097151,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,2097151,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,2097151,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,4194303,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,4194303,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,4194303,384,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,4194303,512,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,4194303,640,177920,177921,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,4194303,768,13053568,13053569,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,4194303,896,579545344,579545345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,4194303,1024,18524185856,18524185857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,4194303,1152,462713196928,462713196929,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,4194303,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,4194303,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,4194303,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,4194303,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,4194303,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,4194303,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,4194303,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,4194303,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,4194303,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,4194303,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,4194303,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,8388607,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,8388607,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,8388607,384,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,8388607,512,1792,1793,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,8388607,640,33536,33537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,8388607,768,2800384,2800385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,8388607,896,129949952,129949953,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,8388607,1024,4249395840,4249395841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,8388607,1152,107647009280,107647009281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,8388607,1280,2229879068288,2229879068289,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,8388607,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,8388607,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,8388607,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,8388607,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,8388607,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,8388607,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,8388607,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,8388607,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,8388607,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,8388607,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,16777215,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,16777215,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,16777215,384,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,16777215,512,1536,1537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,16777215,640,5504,5505,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,16777215,768,582912,582913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,16777215,896,28733184,28733185,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,16777215,1024,966629888,966629889,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,16777215,1152,24899556352,24899556353,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,16777215,1280,521538235008,521538235009,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,16777215,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,16777215,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,16777215,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,16777215,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,16777215,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,16777215,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,16777215,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,16777215,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,16777215,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,16777215,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,33554431,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,33554431,256,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,33554431,384,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,33554431,512,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,33554431,640,2304,2305,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,33554431,768,115840,115841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,33554431,896,6237952,6237953,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,33554431,1024,217633280,217633281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,33554431,1152,5720545024,5720545025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,33554431,1280,121385078272,121385078273,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,33554431,1408,2167577738880,2167577738881,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,33554431,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,33554431,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,33554431,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,33554431,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,33554431,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,33554431,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,33554431,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,33554431,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,33554431,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,1,67108863,128,256,257,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,2,67108863,256,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,3,67108863,384,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,4,67108863,512,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,5,67108863,640,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,6,67108863,768,21248,21249,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,7,67108863,896,1320832,1320833,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,8,67108863,1024,48372480,48372481,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,9,67108863,1152,1303660672,1303660673,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,10,67108863,1280,28091558784,28091558785,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,11,67108863,1408,506921644032,506921644033,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,128,12,67108863,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,13,67108863,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,14,67108863,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,15,67108863,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,16,67108863,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,17,67108863,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,18,67108863,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,19,67108863,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,128,20,67108863,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,2,256,1194776895488,1194776895489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,2,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,2,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,2,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,2,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,2,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,2,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,2,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,2,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,2,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,2,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,2,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,2,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,2,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,2,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,2,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,2,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,2,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,2,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,2,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,3,256,510412869888,510412869889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,3,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,3,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,3,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,3,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,3,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,3,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,3,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,3,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,3,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,3,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,3,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,3,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,3,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,3,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,3,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,3,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,3,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,3,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,3,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,7,256,85829286400,85829286401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,7,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,7,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,7,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,7,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,7,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,7,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,7,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,7,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,7,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,7,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,7,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,7,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,7,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,7,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,7,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,7,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,7,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,7,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,7,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,15,256,17136254208,17136254209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,15,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,15,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,15,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,15,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,15,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,15,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,15,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,15,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,15,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,15,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,15,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,15,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,15,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,15,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,15,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,15,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,15,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,15,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,15,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,31,256,3664248064,3664248065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,31,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,31,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,31,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,31,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,31,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,31,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,31,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,31,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,31,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,31,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,31,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,31,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,31,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,31,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,31,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,31,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,31,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,31,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,31,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,63,256,804649216,804649217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,63,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,63,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,63,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,63,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,63,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,63,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,63,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,63,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,63,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,63,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,63,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,63,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,63,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,63,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,63,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,63,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,63,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,63,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,63,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,127,256,177839104,177839105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,127,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,127,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,127,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,127,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,127,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,127,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,127,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,127,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,127,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,127,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,127,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,127,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,127,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,127,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,127,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,127,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,127,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,127,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,127,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,255,256,39111936,39111937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,255,512,2548832109312,2548832109313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,255,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,255,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,255,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,255,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,255,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,255,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,255,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,255,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,255,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,255,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,255,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,255,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,255,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,255,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,255,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,255,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,255,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,255,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,511,256,8489728,8489729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,511,512,593938832896,593938832897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,511,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,511,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,511,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,511,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,511,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,511,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,511,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,511,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,511,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,511,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,511,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,511,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,511,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,511,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,511,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,511,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,511,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,511,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,1023,256,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,1023,512,138015851776,138015851777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,1023,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,1023,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,1023,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,1023,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,1023,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,1023,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,1023,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,1023,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,1023,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,1023,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,1023,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,1023,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,1023,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,1023,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,1023,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,1023,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,1023,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,1023,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,2047,256,370944,370945,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,2047,512,31924464128,31924464129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,2047,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,2047,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,2047,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,2047,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,2047,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,2047,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,2047,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,2047,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,2047,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,2047,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,2047,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,2047,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,2047,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,2047,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,2047,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,2047,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,2047,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,2047,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,4095,256,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,4095,512,7339713280,7339713281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,4095,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,4095,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,4095,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,4095,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,4095,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,4095,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,4095,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,4095,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,4095,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,4095,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,4095,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,4095,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,4095,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,4095,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,4095,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,4095,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,4095,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,4095,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,8191,256,12800,12801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,8191,512,1674693888,1674693889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,8191,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,8191,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,8191,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,8191,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,8191,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,8191,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,8191,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,8191,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,8191,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,8191,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,8191,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,8191,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,8191,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,8191,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,8191,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,8191,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,8191,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,8191,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,16383,256,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,16383,512,378538496,378538497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,16383,768,1804497424640,1804497424641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,16383,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,16383,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,16383,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,16383,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,16383,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,16383,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,16383,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,16383,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,16383,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,16383,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,16383,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,16383,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,16383,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,16383,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,16383,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,16383,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,16383,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,32767,256,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,32767,512,84563200,84563201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,32767,768,421737065216,421737065217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,32767,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,32767,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,32767,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,32767,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,32767,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,32767,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,32767,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,32767,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,32767,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,32767,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,32767,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,32767,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,32767,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,32767,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,32767,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,32767,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,32767,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,65535,256,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,65535,512,18609152,18609153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,65535,768,98077637888,98077637889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,65535,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,65535,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,65535,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,65535,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,65535,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,65535,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,65535,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,65535,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,65535,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,65535,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,65535,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,65535,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,65535,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,65535,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,65535,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,65535,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,65535,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,131071,256,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,131071,512,4014592,4014593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,131071,768,22676681216,22676681217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,131071,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,131071,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,131071,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,131071,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,131071,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,131071,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,131071,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,131071,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,131071,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,131071,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,131071,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,131071,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,131071,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,131071,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,131071,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,131071,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,131071,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,262143,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,262143,512,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,262143,768,5207345152,5207345153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,262143,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,262143,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,262143,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,262143,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,262143,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,262143,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,262143,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,262143,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,262143,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,262143,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,262143,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,262143,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,262143,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,262143,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,262143,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,262143,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,262143,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,524287,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,524287,512,169472,169473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,524287,768,1186025472,1186025473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,524287,1024,1477254929152,1477254929153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,524287,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,524287,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,524287,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,524287,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,524287,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,524287,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,524287,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,524287,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,524287,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,524287,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,524287,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,524287,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,524287,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,524287,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,524287,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,524287,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,1048575,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,1048575,512,31744,31745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,1048575,768,267443456,267443457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,1048575,1024,345053889280,345053889281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,1048575,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,1048575,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,1048575,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,1048575,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,1048575,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,1048575,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,1048575,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,1048575,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,1048575,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,1048575,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,1048575,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,1048575,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,1048575,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,1048575,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,1048575,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,1048575,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,2097151,256,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,2097151,512,5120,5121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,2097151,768,59560192,59560193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,2097151,1024,80186926592,80186926593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,2097151,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,2097151,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,2097151,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,2097151,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,2097151,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,2097151,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,2097151,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,2097151,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,2097151,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,2097151,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,2097151,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,2097151,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,2097151,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,2097151,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,2097151,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,2097151,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,4194303,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,4194303,512,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,4194303,768,13053440,13053441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,4194303,1024,18524185856,18524185857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,4194303,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,4194303,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,4194303,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,4194303,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,4194303,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,4194303,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,4194303,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,4194303,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,4194303,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,4194303,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,4194303,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,4194303,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,4194303,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,4194303,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,4194303,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,4194303,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,8388607,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,8388607,512,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,8388607,768,2800384,2800385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,8388607,1024,4249395712,4249395713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,8388607,1280,2229879068160,2229879068161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,8388607,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,8388607,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,8388607,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,8388607,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,8388607,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,8388607,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,8388607,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,8388607,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,8388607,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,8388607,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,8388607,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,8388607,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,8388607,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,8388607,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,8388607,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,16777215,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,16777215,512,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,16777215,768,582912,582913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,16777215,1024,966629888,966629889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,16777215,1280,521538234880,521538234881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,16777215,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,16777215,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,16777215,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,16777215,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,16777215,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,16777215,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,16777215,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,16777215,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,16777215,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,16777215,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,16777215,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,16777215,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,16777215,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,16777215,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,16777215,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,33554431,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,33554431,512,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,33554431,768,115712,115713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,33554431,1024,217633280,217633281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,33554431,1280,121385078272,121385078273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,33554431,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,33554431,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,33554431,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,33554431,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,33554431,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,33554431,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,33554431,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,33554431,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,33554431,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,33554431,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,33554431,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,33554431,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,33554431,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,33554431,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,33554431,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,1,67108863,256,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,2,67108863,512,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,3,67108863,768,21248,21249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,4,67108863,1024,48372480,48372481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,5,67108863,1280,28091558656,28091558657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q64Offset59,256,6,67108863,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,7,67108863,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,8,67108863,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,9,67108863,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,10,67108863,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,11,67108863,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,12,67108863,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,13,67108863,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,14,67108863,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,15,67108863,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,16,67108863,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,17,67108863,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,18,67108863,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,19,67108863,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q64Offset59,256,20,67108863,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,2,32,1605856,1605857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,2,64,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,2,96,34443025696,34443025697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,2,128,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,2,160,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,2,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,2,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,2,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,2,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,2,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,2,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,2,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,2,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,2,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,2,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,2,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,2,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,2,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,2,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,2,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,3,32,639328,639329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,3,64,203156384,203156385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,3,96,14596093536,14596093537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,3,128,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,3,160,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,3,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,3,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,3,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,3,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,3,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,3,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,3,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,3,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,3,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,3,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,3,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,3,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,3,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,3,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,3,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,7,32,88352,88353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,7,64,32223712,32223713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,7,96,2406961440,2406961441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,7,128,85829286528,85829286529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,7,160,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,7,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,7,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,7,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,7,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,7,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,7,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,7,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,7,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,7,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,7,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,7,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,7,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,7,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,7,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,7,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,15,32,13312,13313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,15,64,6012384,6012385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,15,96,470303200,470303201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,15,128,17136254400,17136254401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,15,160,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,15,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,15,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,15,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,15,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,15,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,15,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,15,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,15,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,15,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,15,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,15,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,15,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,15,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,15,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,15,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,31,32,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,31,64,1181152,1181153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,31,96,98040448,98040449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,31,128,3664248224,3664248225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,31,160,85206572576,85206572577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,31,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,31,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,31,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,31,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,31,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,31,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,31,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,31,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,31,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,31,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,31,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,31,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,31,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,31,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,31,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,63,32,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,63,64,231584,231585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,63,96,20866048,20866049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,63,128,804649408,804649409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,63,160,19032853984,19032853985,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,63,192,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,63,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,63,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,63,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,63,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,63,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,63,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,63,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,63,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,63,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,63,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,63,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,63,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,63,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,63,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,127,32,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,127,64,43424,43425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,127,96,4430592,4430593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,127,128,177839328,177839329,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,127,160,4293801408,4293801409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,127,192,73820728128,73820728129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,127,224,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,127,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,127,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,127,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,127,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,127,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,127,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,127,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,127,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,127,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,127,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,127,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,127,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,127,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,255,32,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,255,64,7264,7265,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,255,96,923456,923457,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,255,128,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,255,160,968604096,968604097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,255,192,16905915776,16905915777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,255,224,228922092992,228922092993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,255,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,255,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,255,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,255,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,255,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,255,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,255,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,255,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,255,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,255,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,255,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,255,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,255,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,511,32,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,511,64,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,511,96,185696,185697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,511,128,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,511,160,217160640,217160641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,511,192,3860169312,3860169313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,511,224,52895915232,52895915233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,511,256,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,511,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,511,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,511,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,511,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,511,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,511,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,511,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,511,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,511,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,511,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,511,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,511,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,1023,32,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,1023,64,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,1023,96,35008,35009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,1023,128,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,1023,160,48163584,48163585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,1023,192,875720480,875720481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,1023,224,12171463424,12171463425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,1023,256,138015851808,138015851809,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,1023,288,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,1023,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,1023,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,1023,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,1023,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,1023,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,1023,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,1023,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,1023,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,1023,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,1023,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,1023,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,2047,32,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,2047,64,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,2047,96,5760,5761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,2047,128,371104,371105,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,2047,160,10516832,10516833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,2047,192,196806560,196806561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,2047,224,2782935968,2782935969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,2047,256,31924464224,31924464225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,2047,288,310529212480,310529212481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,2047,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,2047,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,2047,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,2047,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,2047,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,2047,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,2047,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,2047,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,2047,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,2047,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,2047,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,4095,32,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,4095,64,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,4095,96,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,4095,128,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,4095,160,2246880,2246881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,4095,192,43677152,43677153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,4095,224,630990496,630990497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,4095,256,7339713312,7339713313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,4095,288,72097838272,72097838273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,4095,320,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,4095,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,4095,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,4095,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,4095,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,4095,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,4095,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,4095,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,4095,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,4095,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,4095,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,8191,32,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,8191,64,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,8191,96,1056,1057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,8191,128,12832,12833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,8191,160,465152,465153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,8191,192,9533056,9533057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,8191,224,141547296,141547297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,8191,256,1674694080,1674694081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,8191,288,16643366560,16643366561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,8191,320,143735702912,143735702913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,8191,352,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,8191,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,8191,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,8191,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,8191,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,8191,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,8191,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,8191,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,8191,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,8191,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,16383,32,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,16383,64,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,16383,96,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,16383,128,1760,1761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,16383,160,91712,91713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,16383,192,2034080,2034081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,16383,224,31321344,31321345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,16383,256,378538560,378538561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,16383,288,3815302752,3815302753,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,16383,320,33283201600,33283201601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,16383,352,257737435648,257737435649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,16383,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,16383,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,16383,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,16383,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,16383,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,16383,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,16383,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,16383,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,16383,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,32767,32,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,32767,64,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,32767,96,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,32767,128,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,32767,160,16576,16577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,32767,192,420160,420161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,32767,224,6807584,6807585,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,32767,256,84563424,84563425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,32767,288,867237696,867237697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,32767,320,7657131008,7657131009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,32767,352,59824878240,59824878241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,32767,384,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,32767,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,32767,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,32767,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,32767,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,32767,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,32767,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,32767,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,32767,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,65535,32,224,225,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,65535,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,65535,96,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,65535,128,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,65535,160,2432,2433,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,65535,192,82496,82497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,65535,224,1443840,1443841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,65535,256,18609312,18609313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,65535,288,195084800,195084801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,65535,320,1747949152,1747949153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,65535,352,13801757216,13801757217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,65535,384,98077637888,98077637889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,65535,416,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,65535,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,65535,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,65535,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,65535,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,65535,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,65535,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,65535,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,131071,32,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,131071,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,131071,96,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,131071,128,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,131071,160,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,131071,192,14784,14785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,131071,224,295552,295553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,131071,256,4014656,4014657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,131071,288,43313632,43313633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,131071,320,395262240,395262241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,131071,352,3161094912,3161094913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,131071,384,22676681440,22676681441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,131071,416,148358796288,148358796289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,131071,448,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,131071,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,131071,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,131071,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,131071,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,131071,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,131071,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,262143,32,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,262143,64,416,417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,262143,96,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,262143,128,928,929,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,262143,160,1312,1313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,262143,192,2144,2145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,262143,224,57152,57153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,262143,256,842528,842529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,262143,288,9455168,9455169,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,262143,320,88338272,88338273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,262143,352,717704000,717704001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,262143,384,5207345216,5207345217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,262143,416,34362360960,34362360961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,262143,448,209006766784,209006766785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,262143,480,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,262143,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,262143,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,262143,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,262143,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,262143,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,524287,32,192,193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,524287,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,524287,96,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,524287,128,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,524287,160,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,524287,192,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,524287,224,9920,9921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,524287,256,169696,169697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,524287,288,2017440,2017441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,524287,320,19450208,19450209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,524287,352,161209728,161209729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,524287,384,1186025472,1186025473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,524287,416,7907107488,7907107489,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,524287,448,48476752000,48476752001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,524287,480,276331882272,276331882273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,524287,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,524287,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,524287,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,524287,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,524287,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,1048575,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,1048575,64,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,1048575,96,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,1048575,128,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,1048575,160,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,1048575,192,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,1048575,224,2080,2081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,1048575,256,31904,31905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,1048575,288,416640,416641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,1048575,320,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,1048575,352,35724704,35724705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,1048575,384,267443552,267443553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,1048575,416,1805404608,1805404609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,1048575,448,11173233728,11173233729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,1048575,480,64162237472,64162237473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,1048575,512,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,1048575,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,1048575,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,1048575,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,1048575,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,2097151,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,2097151,64,352,353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,2097151,96,544,545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,2097151,128,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,2097151,160,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,2097151,192,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,2097151,224,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,2097151,256,5184,5185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,2097151,288,81792,81793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,2097151,320,882048,882049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,2097151,352,7778944,7778945,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,2097151,384,59560384,59560385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,2097151,416,408354080,408354081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,2097151,448,2556152096,2556152097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,2097151,480,14807555424,14807555425,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,2097151,512,80186926720,80186926721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,2097151,544,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,2097151,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,2097151,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,2097151,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,4194303,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,4194303,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,4194303,96,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,4194303,128,736,737,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,4194303,160,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,4194303,192,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,4194303,224,1568,1569,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,4194303,256,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,4194303,288,14656,14657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,4194303,320,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,4194303,352,1653984,1653985,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,4194303,384,13053664,13053665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,4194303,416,91291040,91291041,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,4194303,448,579545408,579545409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,4194303,480,3392795040,3392795041,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,4194303,512,18524185920,18524185921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,4194303,544,95136420448,95136420449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,4194303,576,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,4194303,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,4194303,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,8388607,32,160,161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,8388607,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,8388607,96,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,8388607,128,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,8388607,160,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,8388607,192,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,8388607,224,1440,1441,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,8388607,256,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,8388607,288,2496,2497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,8388607,320,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,8388607,352,339840,339841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,8388607,384,2800480,2800481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,8388607,416,20107872,20107873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,8388607,448,129949952,129949953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,8388607,480,770669760,770669761,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,8388607,512,4249395872,4249395873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,8388607,544,21994099968,21994099969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,8388607,576,107647009312,107647009313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,8388607,608,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,8388607,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,16777215,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,16777215,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,16777215,96,480,481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,16777215,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,16777215,160,864,865,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,16777215,192,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,16777215,224,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,16777215,256,1632,1633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,16777215,288,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,16777215,320,5504,5505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,16777215,352,66144,66145,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,16777215,384,583008,583009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,16777215,416,4343072,4343073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,16777215,448,28733184,28733185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,16777215,480,173206176,173206177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,16777215,512,966629952,966629953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,16777215,544,5049854880,5049854881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,16777215,576,24899556416,24899556417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,16777215,608,116622008544,116622008545,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,16777215,640,320000000000,320000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,33554431,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,33554431,64,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,33554431,96,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,33554431,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,33554431,160,800,801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,33554431,192,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,33554431,224,1248,1249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,33554431,256,1504,1505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,33554431,288,1856,1857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,33554431,320,2336,2337,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,33554431,352,11648,11649,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,33554431,384,115936,115937,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,33554431,416,912960,912961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,33554431,448,6238048,6238049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,33554431,480,38411136,38411137,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,33554431,512,217633344,217633345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,33554431,544,1149944000,1149944001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,33554431,576,5720545024,5720545025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,33554431,608,26984709984,26984709985,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,33554431,640,121385078272,121385078273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,1,67108863,32,128,129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,2,67108863,64,288,289,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,3,67108863,96,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,4,67108863,128,608,609,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,5,67108863,160,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,6,67108863,192,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,7,67108863,224,1184,1185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,8,67108863,256,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,9,67108863,288,1696,1697,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,10,67108863,320,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,11,67108863,352,2624,2625,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,12,67108863,384,21280,21281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,13,67108863,416,184352,184353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,14,67108863,448,1320896,1320897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,15,67108863,480,8371968,8371969,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,16,67108863,512,48372480,48372481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,17,67108863,544,259247872,259247873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,18,67108863,576,1303660672,1303660673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,19,67108863,608,6202095232,6202095233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,32,20,67108863,640,28091558880,28091558881,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,2,64,486802240,486802241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,2,128,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,2,192,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,2,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,2,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,2,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,2,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,2,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,2,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,2,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,2,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,2,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,2,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,2,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,2,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,2,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,2,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,2,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,2,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,2,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,3,64,203156352,203156353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,3,128,510412870080,510412870081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,3,192,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,3,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,3,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,3,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,3,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,3,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,3,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,3,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,3,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,3,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,3,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,3,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,3,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,3,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,3,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,3,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,3,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,3,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,7,64,32223680,32223681,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,7,128,85829286528,85829286529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,7,192,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,7,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,7,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,7,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,7,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,7,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,7,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,7,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,7,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,7,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,7,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,7,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,7,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,7,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,7,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,7,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,7,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,7,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,15,64,6012352,6012353,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,15,128,17136254400,17136254401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,15,192,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,15,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,15,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,15,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,15,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,15,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,15,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,15,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,15,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,15,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,15,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,15,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,15,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,15,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,15,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,15,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,15,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,15,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,31,64,1181120,1181121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,31,128,3664248192,3664248193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,31,192,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,31,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,31,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,31,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,31,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,31,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,31,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,31,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,31,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,31,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,31,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,31,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,31,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,31,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,31,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,31,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,31,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,31,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,63,64,231552,231553,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,63,128,804649408,804649409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,63,192,323082091776,323082091777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,63,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,63,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,63,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,63,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,63,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,63,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,63,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,63,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,63,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,63,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,63,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,63,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,63,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,63,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,63,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,63,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,63,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,127,64,43392,43393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,127,128,177839296,177839297,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,127,192,73820728128,73820728129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,127,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,127,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,127,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,127,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,127,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,127,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,127,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,127,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,127,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,127,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,127,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,127,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,127,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,127,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,127,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,127,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,127,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,255,64,7232,7233,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,255,128,39112000,39112001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,255,192,16905915776,16905915777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,255,256,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,255,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,255,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,255,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,255,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,255,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,255,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,255,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,255,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,255,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,255,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,255,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,255,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,255,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,255,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,255,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,255,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,511,64,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,511,128,8489856,8489857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,511,192,3860169280,3860169281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,511,256,593938832960,593938832961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,511,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,511,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,511,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,511,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,511,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,511,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,511,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,511,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,511,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,511,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,511,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,511,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,511,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,511,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,511,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,511,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,1023,64,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,1023,128,1804032,1804033,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,1023,192,875720448,875720449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,1023,256,138015851776,138015851777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,1023,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,1023,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,1023,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,1023,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,1023,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,1023,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,1023,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,1023,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,1023,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,1023,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,1023,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,1023,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,1023,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,1023,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,1023,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,1023,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,2047,64,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,2047,128,371072,371073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,2047,192,196806528,196806529,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,2047,256,31924464192,31924464193,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,2047,320,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,2047,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,2047,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,2047,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,2047,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,2047,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,2047,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,2047,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,2047,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,2047,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,2047,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,2047,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,2047,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,2047,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,2047,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,2047,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,4095,64,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,4095,128,72448,72449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,4095,192,43677120,43677121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,4095,256,7339713280,7339713281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,4095,320,617354518400,617354518401,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,4095,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,4095,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,4095,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,4095,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,4095,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,4095,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,4095,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,4095,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,4095,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,4095,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,4095,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,4095,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,4095,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,4095,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,4095,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,8191,64,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,8191,128,12800,12801,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,8191,192,9533056,9533057,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,8191,256,1674694080,1674694081,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,8191,320,143735702912,143735702913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,8191,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,8191,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,8191,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,8191,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,8191,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,8191,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,8191,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,8191,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,8191,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,8191,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,8191,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,8191,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,8191,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,8191,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,8191,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,16383,64,512,513,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,16383,128,1728,1729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,16383,192,2034048,2034049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,16383,256,378538560,378538561,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,16383,320,33283201600,33283201601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,16383,384,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,16383,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,16383,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,16383,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,16383,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,16383,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,16383,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,16383,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,16383,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,16383,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,16383,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,16383,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,16383,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,16383,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,16383,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,32767,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,32767,128,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,32767,192,420160,420161,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,32767,256,84563392,84563393,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,32767,320,7657131008,7657131009,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,32767,384,421737065408,421737065409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,32767,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,32767,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,32767,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,32767,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,32767,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,32767,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,32767,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,32767,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,32767,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,32767,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,32767,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,32767,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,32767,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,32767,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,65535,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,65535,128,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,65535,192,82496,82497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,65535,256,18609280,18609281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,65535,320,1747949120,1747949121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,65535,384,98077637888,98077637889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,65535,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,65535,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,65535,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,65535,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,65535,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,65535,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,65535,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,65535,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,65535,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,65535,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,65535,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,65535,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,65535,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,65535,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,131071,64,448,449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,131071,128,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,131071,192,14784,14785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,131071,256,4014656,4014657,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,131071,320,395262208,395262209,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,131071,384,22676681408,22676681409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,131071,448,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,131071,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,131071,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,131071,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,131071,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,131071,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,131071,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,131071,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,131071,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,131071,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,131071,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,131071,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,131071,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,131071,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,262143,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,262143,128,896,897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,262143,192,2112,2113,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,262143,256,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,262143,320,88338240,88338241,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,262143,384,5207345216,5207345217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,262143,448,209006766784,209006766785,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,262143,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,262143,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,262143,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,262143,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,262143,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,262143,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,262143,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,262143,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,262143,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,262143,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,262143,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,262143,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,262143,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,524287,64,384,385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,524287,128,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,524287,192,1664,1665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,524287,256,169664,169665,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,524287,320,19450176,19450177,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,524287,384,1186025472,1186025473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,524287,448,48476752000,48476752001,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,524287,512,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,524287,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,524287,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,524287,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,524287,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,524287,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,524287,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,524287,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,524287,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,524287,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,524287,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,524287,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,524287,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,1048575,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,1048575,128,832,833,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,1048575,192,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,1048575,256,31872,31873,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,1048575,320,4198912,4198913,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,1048575,384,267443520,267443521,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,1048575,448,11173233728,11173233729,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,1048575,512,345053889344,345053889345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,1048575,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,1048575,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,1048575,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,1048575,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,1048575,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,1048575,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,1048575,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,1048575,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,1048575,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,1048575,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,1048575,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,1048575,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,2097151,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,2097151,128,768,769,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,2097151,192,1344,1345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,2097151,256,5184,5185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,2097151,320,882048,882049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,2097151,384,59560384,59560385,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,2097151,448,2556152064,2556152065,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,2097151,512,80186926720,80186926721,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,2097151,576,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,2097151,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,2097151,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,2097151,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,2097151,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,2097151,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,2097151,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,2097151,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,2097151,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,2097151,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,2097151,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,2097151,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,4194303,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,4194303,128,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,4194303,192,1216,1217,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,4194303,256,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,4194303,320,177920,177921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,4194303,384,13053632,13053633,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,4194303,448,579545408,579545409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,4194303,512,18524185920,18524185921,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,4194303,576,462713196992,462713196993,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,4194303,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,4194303,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,4194303,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,4194303,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,4194303,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,4194303,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,4194303,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,4194303,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,4194303,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,4194303,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,4194303,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,8388607,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,8388607,128,704,705,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,8388607,192,1152,1153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,8388607,256,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,8388607,320,33536,33537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,8388607,384,2800448,2800449,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,8388607,448,129949952,129949953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,8388607,512,4249395840,4249395841,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,8388607,576,107647009280,107647009281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,8388607,640,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,8388607,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,8388607,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,8388607,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,8388607,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,8388607,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,8388607,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,8388607,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,8388607,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,8388607,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,8388607,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,16777215,64,320,321,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,16777215,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,16777215,192,1088,1089,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,16777215,256,1600,1601,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,16777215,320,5504,5505,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,16777215,384,582976,582977,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,16777215,448,28733184,28733185,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,16777215,512,966629952,966629953,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,16777215,576,24899556416,24899556417,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,16777215,640,521538235072,521538235073,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,16777215,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,16777215,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,16777215,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,16777215,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,16777215,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,16777215,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,16777215,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,16777215,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,16777215,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,16777215,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,33554431,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,33554431,128,640,641,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,33554431,192,1024,1025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,33554431,256,1472,1473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,33554431,320,2304,2305,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,33554431,384,115904,115905,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,33554431,448,6238016,6238017,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,33554431,512,217633344,217633345,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,33554431,576,5720545024,5720545025,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,33554431,640,121385078272,121385078273,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,33554431,704,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,33554431,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,33554431,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,33554431,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,33554431,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,33554431,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,33554431,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,33554431,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,33554431,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,33554431,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,1,67108863,64,256,257,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,2,67108863,128,576,577,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,3,67108863,192,960,961,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,4,67108863,256,1408,1409,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,5,67108863,320,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,6,67108863,384,21248,21249,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,7,67108863,448,1320896,1320897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,8,67108863,512,48372480,48372481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,9,67108863,576,1303660672,1303660673,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,10,67108863,640,28091558848,28091558849,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,11,67108863,704,506921644096,506921644097,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,12,67108863,768,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,13,67108863,832,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,14,67108863,896,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,15,67108863,960,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,16,67108863,1024,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,17,67108863,1088,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,18,67108863,1152,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,19,67108863,1216,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,64,20,67108863,1280,640000000000,640000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,2,128,1194776895488,1194776895489,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,2,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,2,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,2,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,2,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,2,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,2,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,2,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,2,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,2,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,2,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,2,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,2,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,2,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,2,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,2,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,2,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,2,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,2,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,2,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,3,128,510412870016,510412870017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,3,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,3,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,3,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,3,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,3,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,3,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,3,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,3,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,3,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,3,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,3,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,3,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,3,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,3,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,3,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,3,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,3,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,3,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,3,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,7,128,85829286528,85829286529,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,7,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,7,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,7,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,7,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,7,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,7,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,7,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,7,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,7,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,7,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,7,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,7,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,7,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,7,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,7,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,7,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,7,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,7,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,7,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,15,128,17136254336,17136254337,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,15,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,15,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,15,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,15,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,15,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,15,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,15,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,15,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,15,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,15,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,15,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,15,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,15,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,15,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,15,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,15,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,15,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,15,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,15,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,31,128,3664248192,3664248193,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,31,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,31,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,31,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,31,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,31,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,31,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,31,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,31,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,31,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,31,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,31,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,31,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,31,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,31,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,31,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,31,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,31,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,31,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,31,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,63,128,804649344,804649345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,63,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,63,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,63,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,63,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,63,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,63,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,63,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,63,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,63,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,63,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,63,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,63,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,63,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,63,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,63,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,63,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,63,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,63,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,63,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,127,128,177839232,177839233,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,127,256,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,127,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,127,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,127,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,127,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,127,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,127,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,127,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,127,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,127,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,127,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,127,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,127,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,127,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,127,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,127,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,127,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,127,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,127,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,255,128,39111936,39111937,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,255,256,2548832109440,2548832109441,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,255,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,255,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,255,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,255,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,255,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,255,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,255,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,255,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,255,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,255,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,255,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,255,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,255,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,255,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,255,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,255,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,255,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,255,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,511,128,8489856,8489857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,511,256,593938832896,593938832897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,511,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,511,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,511,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,511,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,511,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,511,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,511,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,511,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,511,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,511,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,511,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,511,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,511,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,511,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,511,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,511,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,511,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,511,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,1023,128,1804032,1804033,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,1023,256,138015851776,138015851777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,1023,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,1023,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,1023,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,1023,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,1023,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,1023,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,1023,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,1023,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,1023,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,1023,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,1023,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,1023,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,1023,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,1023,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,1023,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,1023,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,1023,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,1023,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,2047,128,371072,371073,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,2047,256,31924464128,31924464129,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,2047,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,2047,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,2047,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,2047,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,2047,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,2047,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,2047,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,2047,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,2047,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,2047,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,2047,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,2047,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,2047,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,2047,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,2047,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,2047,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,2047,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,2047,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,4095,128,72448,72449,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,4095,256,7339713280,7339713281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,4095,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,4095,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,4095,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,4095,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,4095,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,4095,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,4095,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,4095,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,4095,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,4095,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,4095,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,4095,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,4095,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,4095,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,4095,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,4095,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,4095,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,4095,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,8191,128,12800,12801,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,8191,256,1674694016,1674694017,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,8191,384,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,8191,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,8191,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,8191,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,8191,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,8191,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,8191,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,8191,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,8191,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,8191,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,8191,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,8191,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,8191,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,8191,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,8191,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,8191,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,8191,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,8191,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,16383,128,1664,1665,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,16383,256,378538496,378538497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,16383,384,1804497424768,1804497424769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,16383,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,16383,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,16383,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,16383,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,16383,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,16383,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,16383,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,16383,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,16383,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,16383,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,16383,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,16383,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,16383,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,16383,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,16383,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,16383,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,16383,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,32767,128,1280,1281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,32767,256,84563328,84563329,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,32767,384,421737065344,421737065345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,32767,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,32767,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,32767,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,32767,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,32767,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,32767,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,32767,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,32767,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,32767,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,32767,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,32767,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,32767,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,32767,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,32767,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,32767,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,32767,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,32767,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,65535,128,1152,1153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,65535,256,18609280,18609281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,65535,384,98077637888,98077637889,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,65535,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,65535,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,65535,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,65535,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,65535,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,65535,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,65535,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,65535,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,65535,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,65535,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,65535,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,65535,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,65535,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,65535,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,65535,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,65535,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,65535,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,131071,128,1024,1025,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,131071,256,4014592,4014593,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,131071,384,22676681344,22676681345,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,131071,512,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,131071,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,131071,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,131071,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,131071,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,131071,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,131071,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,131071,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,131071,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,131071,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,131071,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,131071,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,131071,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,131071,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,131071,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,131071,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,131071,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,262143,128,896,897,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,262143,256,842496,842497,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,262143,384,5207345152,5207345153,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,262143,512,6296545595776,6296545595777,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,262143,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,262143,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,262143,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,262143,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,262143,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,262143,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,262143,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,262143,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,262143,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,262143,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,262143,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,262143,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,262143,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,262143,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,262143,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,262143,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,524287,128,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,524287,256,169600,169601,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,524287,384,1186025472,1186025473,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,524287,512,1477254929280,1477254929281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,524287,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,524287,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,524287,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,524287,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,524287,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,524287,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,524287,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,524287,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,524287,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,524287,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,524287,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,524287,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,524287,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,524287,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,524287,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,524287,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,1048575,128,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,1048575,256,31872,31873,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,1048575,384,267443456,267443457,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,1048575,512,345053889280,345053889281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,1048575,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,1048575,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,1048575,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,1048575,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,1048575,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,1048575,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,1048575,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,1048575,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,1048575,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,1048575,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,1048575,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,1048575,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,1048575,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,1048575,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,1048575,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,1048575,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,2097151,128,768,769,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,2097151,256,5120,5121,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,2097151,384,59560320,59560321,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,2097151,512,80186926720,80186926721,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,2097151,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,2097151,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,2097151,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,2097151,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,2097151,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,2097151,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,2097151,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,2097151,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,2097151,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,2097151,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,2097151,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,2097151,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,2097151,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,2097151,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,2097151,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,2097151,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,4194303,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,4194303,256,2048,2049,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,4194303,384,13053568,13053569,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,4194303,512,18524185856,18524185857,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,4194303,640,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,4194303,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,4194303,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,4194303,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,4194303,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,4194303,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,4194303,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,4194303,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,4194303,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,4194303,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,4194303,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,4194303,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,4194303,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,4194303,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,4194303,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,4194303,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,8388607,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,8388607,256,1792,1793,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,8388607,384,2800384,2800385,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,8388607,512,4249395840,4249395841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,8388607,640,2229879068288,2229879068289,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,8388607,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,8388607,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,8388607,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,8388607,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,8388607,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,8388607,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,8388607,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,8388607,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,8388607,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,8388607,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,8388607,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,8388607,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,8388607,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,8388607,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,8388607,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,16777215,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,16777215,256,1536,1537,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,16777215,384,582912,582913,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,16777215,512,966629888,966629889,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,16777215,640,521538235008,521538235009,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,16777215,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,16777215,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,16777215,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,16777215,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,16777215,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,16777215,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,16777215,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,16777215,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,16777215,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,16777215,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,16777215,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,16777215,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,16777215,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,16777215,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,16777215,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,33554431,128,640,641,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,33554431,256,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,33554431,384,115840,115841,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,33554431,512,217633280,217633281,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,33554431,640,121385078272,121385078273,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,33554431,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,33554431,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,33554431,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,33554431,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,33554431,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,33554431,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,33554431,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,33554431,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,33554431,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,33554431,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,33554431,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,33554431,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,33554431,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,33554431,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,33554431,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,1,67108863,128,512,513,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,2,67108863,256,1408,1409,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,3,67108863,384,21248,21249,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,4,67108863,512,48372480,48372481,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,5,67108863,640,28091558784,28091558785,Exact,exhaustive-beta-zeta,50000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,6,67108863,768,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,7,67108863,896,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,8,67108863,1024,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,9,67108863,1152,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,10,67108863,1280,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,11,67108863,1408,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,12,67108863,1536,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,13,67108863,1664,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,14,67108863,1792,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,15,67108863,1920,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,16,67108863,2048,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,17,67108863,2176,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,18,67108863,2304,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,19,67108863,2432,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,128,20,67108863,2560,6400000000000,6400000000000,AtLeast,exhaustive-beta-zeta,50000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,2,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,2,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,2,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,2,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,2,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,2,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,2,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,2,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,2,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,2,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,2,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,2,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,2,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,2,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,2,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,2,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,2,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,2,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,2,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,2,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,3,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,3,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,3,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,3,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,3,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,3,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,3,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,3,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,3,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,3,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,3,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,3,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,3,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,3,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,3,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,3,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,3,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,3,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,3,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,3,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,7,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,7,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,7,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,7,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,7,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,7,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,7,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,7,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,7,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,7,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,7,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,7,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,7,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,7,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,7,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,7,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,7,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,7,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,7,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,7,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,15,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,15,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,15,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,15,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,15,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,15,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,15,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,15,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,15,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,15,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,15,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,15,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,15,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,15,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,15,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,15,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,15,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,15,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,15,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,15,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,31,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,31,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,31,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,31,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,31,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,31,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,31,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,31,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,31,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,31,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,31,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,31,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,31,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,31,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,31,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,31,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,31,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,31,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,31,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,31,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,63,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,63,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,63,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,63,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,63,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,63,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,63,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,63,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,63,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,63,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,63,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,63,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,63,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,63,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,63,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,63,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,63,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,63,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,63,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,63,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,127,256,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,127,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,127,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,127,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,127,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,127,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,127,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,127,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,127,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,127,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,127,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,127,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,127,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,127,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,127,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,127,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,127,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,127,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,127,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,127,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,255,256,2548832109312,2548832109313,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,255,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,255,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,255,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,255,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,255,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,255,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,255,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,255,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,255,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,255,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,255,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,255,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,255,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,255,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,255,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,255,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,255,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,255,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,255,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,511,256,593938832896,593938832897,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,511,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,511,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,511,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,511,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,511,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,511,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,511,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,511,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,511,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,511,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,511,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,511,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,511,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,511,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,511,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,511,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,511,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,511,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,511,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,1023,256,138015851776,138015851777,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,1023,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,1023,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,1023,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,1023,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,1023,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,1023,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,1023,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,1023,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,1023,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,1023,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,1023,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,1023,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,1023,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,1023,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,1023,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,1023,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,1023,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,1023,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,1023,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,2047,256,31924464128,31924464129,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,2047,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,2047,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,2047,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,2047,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,2047,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,2047,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,2047,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,2047,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,2047,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,2047,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,2047,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,2047,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,2047,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,2047,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,2047,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,2047,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,2047,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,2047,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,2047,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,4095,256,7339713280,7339713281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,4095,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,4095,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,4095,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,4095,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,4095,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,4095,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,4095,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,4095,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,4095,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,4095,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,4095,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,4095,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,4095,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,4095,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,4095,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,4095,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,4095,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,4095,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,4095,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,8191,256,1674693888,1674693889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,8191,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,8191,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,8191,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,8191,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,8191,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,8191,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,8191,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,8191,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,8191,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,8191,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,8191,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,8191,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,8191,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,8191,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,8191,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,8191,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,8191,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,8191,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,8191,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,16383,256,378538496,378538497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,16383,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,16383,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,16383,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,16383,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,16383,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,16383,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,16383,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,16383,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,16383,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,16383,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,16383,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,16383,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,16383,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,16383,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,16383,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,16383,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,16383,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,16383,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,16383,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,32767,256,84563200,84563201,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,32767,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,32767,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,32767,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,32767,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,32767,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,32767,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,32767,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,32767,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,32767,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,32767,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,32767,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,32767,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,32767,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,32767,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,32767,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,32767,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,32767,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,32767,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,32767,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,65535,256,18609152,18609153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,65535,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,65535,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,65535,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,65535,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,65535,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,65535,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,65535,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,65535,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,65535,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,65535,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,65535,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,65535,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,65535,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,65535,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,65535,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,65535,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,65535,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,65535,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,65535,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,131071,256,4014592,4014593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,131071,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,131071,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,131071,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,131071,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,131071,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,131071,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,131071,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,131071,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,131071,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,131071,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,131071,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,131071,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,131071,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,131071,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,131071,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,131071,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,131071,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,131071,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,131071,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,262143,256,842496,842497,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,262143,512,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,262143,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,262143,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,262143,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,262143,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,262143,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,262143,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,262143,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,262143,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,262143,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,262143,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,262143,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,262143,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,262143,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,262143,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,262143,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,262143,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,262143,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,262143,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,524287,256,169472,169473,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,524287,512,1477254929152,1477254929153,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,524287,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,524287,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,524287,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,524287,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,524287,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,524287,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,524287,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,524287,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,524287,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,524287,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,524287,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,524287,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,524287,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,524287,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,524287,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,524287,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,524287,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,524287,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,1048575,256,31744,31745,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,1048575,512,345053889280,345053889281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,1048575,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,1048575,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,1048575,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,1048575,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,1048575,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,1048575,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,1048575,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,1048575,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,1048575,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,1048575,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,1048575,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,1048575,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,1048575,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,1048575,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,1048575,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,1048575,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,1048575,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,1048575,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,2097151,256,5120,5121,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,2097151,512,80186926592,80186926593,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,2097151,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,2097151,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,2097151,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,2097151,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,2097151,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,2097151,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,2097151,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,2097151,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,2097151,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,2097151,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,2097151,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,2097151,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,2097151,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,2097151,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,2097151,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,2097151,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,2097151,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,2097151,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,4194303,256,2048,2049,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,4194303,512,18524185856,18524185857,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,4194303,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,4194303,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,4194303,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,4194303,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,4194303,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,4194303,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,4194303,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,4194303,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,4194303,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,4194303,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,4194303,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,4194303,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,4194303,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,4194303,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,4194303,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,4194303,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,4194303,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,4194303,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,8388607,256,1792,1793,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,8388607,512,4249395712,4249395713,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,8388607,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,8388607,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,8388607,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,8388607,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,8388607,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,8388607,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,8388607,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,8388607,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,8388607,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,8388607,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,8388607,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,8388607,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,8388607,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,8388607,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,8388607,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,8388607,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,8388607,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,8388607,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,16777215,256,1536,1537,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,16777215,512,966629888,966629889,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,16777215,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,16777215,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,16777215,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,16777215,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,16777215,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,16777215,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,16777215,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,16777215,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,16777215,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,16777215,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,16777215,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,16777215,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,16777215,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,16777215,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,16777215,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,16777215,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,16777215,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,16777215,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,33554431,256,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,33554431,512,217633280,217633281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,33554431,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,33554431,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,33554431,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,33554431,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,33554431,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,33554431,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,33554431,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,33554431,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,33554431,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,33554431,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,33554431,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,33554431,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,33554431,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,33554431,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,33554431,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,33554431,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,33554431,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,33554431,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,1,67108863,256,1280,1281,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,2,67108863,512,48372480,48372481,Exact,exhaustive-beta-zeta,10000000000,false,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,3,67108863,768,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,4,67108863,1024,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,5,67108863,1280,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,6,67108863,1536,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,7,67108863,1792,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,8,67108863,2048,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,9,67108863,2304,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,10,67108863,2560,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,11,67108863,2816,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,12,67108863,3072,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,13,67108863,3328,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,14,67108863,3584,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,15,67108863,3840,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,16,67108863,4096,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,17,67108863,4352,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,18,67108863,4608,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,19,67108863,4864,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum -Quantum128BitADPS16,Q128OffsetA7F7,256,20,67108863,5120,2560000000000,2560000000000,AtLeast,exhaustive-beta-zeta,10000000000,true,local-minimum diff --git a/scripts/tests/test_profile_bench_report.py b/scripts/tests/test_profile_bench_report.py index 7f5d03ceb..c301243d3 100644 --- a/scripts/tests/test_profile_bench_report.py +++ b/scripts/tests/test_profile_bench_report.py @@ -697,6 +697,8 @@ def test_matrix_splits_metrics_and_embeds_merge_base_deltas(self) -> None: self.assertIn("Prepared NTT cache", report) self.assertIn("Verify, multi-threaded", report) self.assertIn("Verify, single-threaded", report) + self.assertIn("Fold A/B/D schedule", report) + self.assertIn("64/64/64", report) self.assertIn("4.0 MiB", report) self.assertIn("8.0 MiB", report) self.assertIn("4,096 bytes", report) @@ -706,6 +708,17 @@ def test_matrix_splits_metrics_and_embeds_merge_base_deltas(self) -> None: self.assertNotIn("Setup Mode", report) table_lines = [line for line in report.splitlines() if line.startswith("|")] self.assertLessEqual(max(line.count("|") for line in table_lines), 8) + def test_fold_dimension_schedule_collapses_uniform_suffix(self) -> None: + from scripts.profile_bench_report import fold_dimension_schedule + + summary = { + "planned_levels": [ + {"d_a": 256, "d_b": 64, "d_d": 64}, + {"d_a": 64, "d_b": 64, "d_d": 64}, + {"d_a": 64, "d_b": 64, "d_d": 64}, + ] + } + self.assertEqual(fold_dimension_schedule(summary), "256/64/64 → 64/64/64") def test_adaptive_case_label_omits_ring_dimensions_and_mixed_dimension_config(self) -> None: from scripts.profile_bench_report import human_case_label, normalize_case_summary diff --git a/specs/archive/2026-Q3/multi-group-batching-legacy.md b/specs/archive/2026-Q3/multi-group-batching-legacy.md new file mode 100644 index 000000000..5fcaef0ad --- /dev/null +++ b/specs/archive/2026-Q3/multi-group-batching-legacy.md @@ -0,0 +1,1500 @@ +# Historical Spec: Multi-commitment groups and conservative-rank root batching + +> **Archived 2026-08-09.** This record preserves the staged design history. +> Its `ConservativeCommitmentConfig`, layout reconstruction, ordinary +> `batched_commit` precommit flow, and rejection of `commit_group` are not +> current contracts. See `specs/multi-group-batching.md` for the live API. + +> **Point-model supersession (2026-07-22).** The shared-point restriction and +> prefix/suffix routing described in this record are superseded by +> [`group-local-opening-points.md`](archive/2026-Q3/group-local-opening-points.md). Multi-group +> roots may use one arbitrary complete point per group; reuse is derived inside +> verifier preparation rather than exposed as a protocol constraint. + + +| Field | Value | +| --------- | ---------------------------------- | +| Author(s) | | +| Created | 2026-06-17 | +| Status | implemented | +| PR | | +| Book | configuration chapter | + + +## Summary + +> **Layout supersession (2026-07-15).** The group semantics in this record +> remain useful, but its chunking restrictions and duplicated witness-range +> formulas are superseded by [`digit-innermost-layout.md`](digit-innermost-layout.md). +> Multi-group and multi-chunk witnesses now use the canonical product +> `WitnessLayout`, with one shared quotient tail. + +> **Profile/selection supersession (2026-07-31).** Source taxonomies and +> source-bearing schedule keys in this record are obsolete. Public commitments +> carry exact A/B profiles, runtime lookup uses the final group layout plus +> ordered precommitted profiles, and one batch-level selection identifies the +> exact generated row. Polynomial representation is private prover material. + +> **Topology/API supersession (PR #311).** The implementation is folded-only: +> `Schedule` is structural `folds + terminal`, every supported proof has at +> least two folds, and unsupported keys return `UnsupportedSchedule`. Later +> historical passages mentioning `Step::Direct`, root-direct fallbacks, +> `multi_group_root_commit_params`, or caller-selected prove modes describe the +> pre-#311 implementation. Current root parameters come from +> `schedule.root_fold()?.params`, and proving derives setup-contribution mode +> from the schedule selected by its config. + +Akita currently supports batching several polynomials inside one commitment +object. This spec defines the first production model for batching several +commitment groups in one root proof. The first supported shape is deliberately +narrow: + +- the root schedule freezes exact fold digits and coefficient caps; +- the final group defines the newly committed source arity, while the maximum + arity across all groups defines the shared opening/EOR domain; +- all groups are opened at one shared point; +- group sizes `K_g` may differ; +- multi-group structure exists only at the root level; +- folded multi-group roots hand off to singleton recursive suffix folds after the + root produces one recursive witness commitment; +- tiered multi-group commitments remain out of scope. + +The root model gives every commitment group its own folded `z` witness: + +```text +group g has z_g, and after decomposition it contributes z_hat_g +``` + +All root relations are checked per group except the `D` role. The root emits one +`v` for the shared `D` relation, and `D` is sized large enough to cover every +group's `w_hat_g` witness segment. + +This spec also introduces a **conservative-rank** configuration family for +standalone group commitments. A precommitted group uses a B rank that is +conservative for the maximum allowed root decomposition basis. Later, when a +final group is committed and all group shapes are known, the proof planner can +use the precommitted groups without breaking the SIS security of their B +relations. + +## Motivation + +The one-commitment batch shape is efficient when all polynomials are known and +committed together. It is not enough for workflows that naturally produce several +commitments over time and later want one opening proof at the same point. + +Multi-group batching is therefore a workflow feature, not the preferred +proof-size path when the caller can choose the commitment shape up front. If all +polynomials are available before committing and the caller does not need separate +commitment identities, the caller should use the existing one-commitment +`batched_commit` path. + +The root proof binds several algebraic objects: + +```text +t_hat: commitment-side decomposed inner images +w_hat: opening-side folded witnesses +z_hat: folded response witnesses +u: public commitment rows +v: public D commitment rows +``` + +## Goals + +- Support root proofs for several commitment groups opened at one shared point. +- Allow unequal group sizes `K_g`. +- Give each group its own `z_hat_g` at the root. +- Keep recursive suffix folds singleton: the multi-group root produces one next +witness commitment and the existing suffix machinery takes over. +- Add conservative-rank presets, parallel to `proof_optimized`, for standalone +precommitted groups. +- Derive final-group planning state from public opening shape, setup, and config +policy so the final commit can build a multi-group root proof with already committed +groups. +- Bind group partition through `OpeningClaimsLayout` / `opening_batch_digest` and +bind the final multi-group root schedule through the existing effective schedule +digest. +- Preserve the verifier no-panic contract. Malformed group shapes, schedules, +commitments, witness shapes, and descriptors must return `AkitaError`. + +## Non-Goals + +- Multipoint openings. The batch still has one shared opening point. +- Dense polynomial support for the initial multi-group root batching rollout. +- Tiered multi-group commitments. Existing tiered paths may keep rejecting +`G > 1`. +- Recursive setup-contribution support for `G > 1` in the first rollout, unless +explicitly implemented in the same phase. +- Backward compatibility with old proof bytes or descriptor bytes. + +## Usage Guidance + +Use the existing one-commitment same-point batch when all polynomials are known +before committing: + +```text +batched_commit([p_0, ..., p_{N-1}]) -> one commitment object -> scalar root proof +``` + +Use multi-group batching only when the workflow needs separate commitment +objects that are produced over time and later opened together: + +```text +conservative batched_commit(group_0), ..., conservative batched_commit(group_{G-2}) +commit_final_group(group_{G-1}, [key_0, ..., key_{G-2}]) +``` + +For `G = 1`, schedule lookup already normalizes to the scalar path through +`AkitaScheduleLookupKey::single`. The public multi-group commitment API is +final-commit-only for assembling commitment groups, and multi-group opening proofs +support the degree-one one-hot `SetupContributionMode::Direct` root shape. The +multi-group path preserves scalar normalization rather than adding a parallel +singleton proof path. + +## Terminology + +`G` +: Number of commitment groups. + +`K_g` +: Number of polynomials committed in group `g`. + +`l_inner,g` +: `log_basis_inner` used by group `g` for the A/source decomposition. + +`l_outer,g` +: `log_basis_outer` used by group `g` for the B/`t_hat` decomposition. + +`l_open` +: Root-selected `log_basis_open` used by D/`e_hat` and the shared relation tail. + +`n_b,g` +: Frozen B rank used when committing group `g` at `l_outer,g`. + +`z_g` +: Folded group response before decomposition. + +`z_hat_g` +: Gadget decomposition of `z_g`. + +`w_hat_g` +: Decomposed group opening-side witness bound by the root `D` relation. + +## Current State + +The codebase has implemented the multi-group scheduler, conservative precommit, +`commit_final_group`, and folded-root multi-group opening proofs for dense and +one-hot source policies. + +Implemented now: + +- `OpeningClaims` / `OpeningClaimsLayout` record one shared opening point plus + ordered polynomial groups. `PolynomialGroupClaims` carries the point-variable + selection, claimed evaluations, and commitment for one group. +- `PolynomialGroupLayout`, `CommittedGroupProfile`, and + `AkitaScheduleLookupKey` exist in `akita-types`. +- `CommitmentConfig::runtime_schedule` resolves the unified + `AkitaScheduleLookupKey`. A scalar key is represented as + `AkitaScheduleLookupKey::single(final_group)` and delegates to the scalar + scheduler. A multi-group key goes through generated group-batch lookup first, then + DP fallback. +- `find_schedule` builds folded-root schedules for dense or one-hot, + non-tiered configs. Unsupported keys return `UnsupportedSchedule`. The + multi-group root `LevelParams` holds + the final group in the normal root fields and all precommitted groups in + `precommitted_groups`. +- Multi-group root planning sizes the shared `D` key over one `w_hat_g` segment per + commitment group, not one segment per polynomial. +- Generated tables use one entry shape for scalar and multi-group rows; selected + one-hot families emit rows whose `precommitteds` list is nonempty. +- `ConservativeCommitmentConfig` derives the standalone conservative + precommit layout at `min_basis`, widens the B rank for `max_basis`, and can be + used with the ordinary `batched_commit` API for independent precommitted + groups. +- `commit_final_group` is exposed through `akita-prover` and the public + `CommitmentProver` / PCS scheme surface. It validates the final group, + reconstructs precommitted `CommittedGroupProfile` values from + `PolynomialGroupLayout`s under `ConservativeCommitmentConfig`, + resolves the runtime schedule, reads its root commit params from + `schedule.root_fold()?.params`, + and emits the final commitment plus hint. +- `batched_prove` supports `G > 1` folded multi-group-root dense and one-hot openings; + proving and verification derive setup-contribution behavior from the schedule. + Base-field and extension-field openings use the same group layout, and the + root can hand off to a singleton recursive suffix. The multi-group root + carries per-group `z_hat`, `e_hat`, and `t_hat` sections followed by one + shared quotient tail. +- Extension-field groups use one EOR proof and one batched sumcheck. For group + `g`, the sumcheck term is + `factor_g(x) * sum_{i in g} gamma_i * witness_i(x)`. Every term shares the + maximum tail domain and the same challenge vector. A smaller group is + extended only over additional high variables: its witness is independent of + those variables, and a fixed zero-point equality factor makes their Boolean + sum one. The prover represents this cylindrical extension virtually; it does + not repeat the native witness table. +- The multi-group root relation quotient, verifier ring-switch replay, setup + contribution, relation-matrix column table, and multi-group stage-2 trace table are + implemented for the supported folded root shape. +- Setup-envelope sizing includes conservative commitments for eligible + proof-optimized one-hot configs. + +Still future / guarded: + +- Distributed multi-group execution beyond the shipped multi-chunk layouts. +- Stock generated dense group-batch catalog rows and tiered multi-group + commitments remain guarded. Recursive setup contribution is config-typed and + covered end to end. +- Immediately terminal multi-group root folds remain guarded. +- There is no separate descriptor `CommitSection`, and the design should not add + one for this flow. The current descriptor binds call shape through + `CallSection.opening_batch_digest` and binds the materialized multi-group schedule + through `PlanSection.effective_schedule_digest`; that schedule digest includes + multi-group-root `LevelParams.precommitted_groups` when a multi-group schedule is + materialized. `commit_final_group` itself returns only the final commitment and + hint. + +This spec records the implemented multi-group final-commit and folded +multi-group-root behavior, plus the remaining unsupported matrix. + +## Opening Claims Shape + +Do not introduce a separate root-only incidence type. `OpeningClaimsLayout` is the +canonical normalized shape for one shared opening point. The old flattened +slot/routing vocabulary has been removed in favor of explicit commitment-group +shape records: + +```rust +pub struct PointVariableSelection { + indices: Vec, +} + +pub struct PolynomialGroupLayout { + num_vars: usize, + num_polynomials: usize, +} + +pub struct PolynomialGroupClaims<'a, F, C> { + point_vars: PointVariableSelection, + evaluations: Vec, + commitment: C, + // ... +} + +pub struct OpeningClaims<'a, F, C> { + point: OpeningPoints<'a, F>, + groups: Vec>, +} +``` + +Implemented constructors and accessors: + +```rust +impl OpeningClaimsLayout { + pub fn new(num_vars: usize, num_polys: usize) -> Result; + + pub fn from_group_sizes( + num_vars: usize, + num_polys_per_commitment_group: &[usize], + ) -> Result; + pub fn from_groups(groups: Vec) -> Result; + pub fn check(&self) -> Result<(), AkitaError>; + + pub fn max_num_vars(&self) -> usize; + pub fn groups(&self) -> &[PolynomialGroupLayout]; + pub fn num_groups(&self) -> usize; + pub fn num_total_polynomials(&self) -> usize; + pub fn group_sizes(&self) -> Vec; + pub fn opening_batch_digest(&self) -> DescriptorDigest; +} + +impl<'a, F: Clone, C> OpeningClaims<'a, F, C> { + pub fn from_groups( + point: impl Into>, + groups: Vec>, + ) -> Result; + pub fn layout(&self) -> OpeningClaimsLayout; + pub fn num_vars(&self) -> usize; + pub fn num_total_polynomials(&self) -> usize; + pub fn num_groups(&self) -> usize; + pub fn group_sizes(&self) -> Vec; +} +``` + +The first supported multi-group shape requires: + +```text +all claims use one shared opening point +all groups are nonempty +group sizes K_g may differ +each group's point_vars is ordered, duplicate-free, and indexes into the shared point +custom non-prefix point-variable routing is still rejected by current descriptors +``` + +`[K, K]` and `[2K]` must remain distinct at the schedule, descriptor, and +transcript layers. Current descriptor bytes bind the normalized prefix +point-variable selections derived from each group's active arity. + +## Protocol Shape + +For each group `g`, the root proves: + +```text +1. B_g * t_hat_g = u_g +2. output_g +3. c_g^T * G_open,g * w_hat_g + = a_g^T * G_commit,g * G_fold,g * z_hat_g +4. c_g^T * G_open,g * t_hat_g + = A_g * G_fold,g * z_hat_g +``` + +The root also proves one global D relation: + +```text +5. D * concat(w_hat_0, ..., w_hat_{G-1}) = v +``` + +`concat` is the exact concatenation of the group witness segments. The group +segments may have different sizes. The shared `D` key must be selected with a +column width large enough for the full concatenated witness: + +```text +width_D >= sum_g width(w_hat_g) +``` + +The multi-group root design uses this concatenated D relation. It does not use per-group `v_g` +commitments. A future per-group D design must show that the extra D blocks and +extra `v_g` payloads are cheaper for a concrete workload, and it must give a +separate binding argument for the group-wise D outputs. + +The root relation is a direct sum of group subrelations plus one shared D block. +The suffix sees only the resulting recursive witness commitment and remains +unchanged: + +```text +multi-group root -> one committed recursive witness -> singleton suffix folds +``` + +## Root Counts + +The multi-group root uses these counts: + +```text +num_commitment_groups = G +num_t_vectors_total = sum_g K_g +num_w_vectors_root = sum_g W_g +num_z_vectors_root = G +num_z_segments = G +``` + +`W_g` is the number of opening-side `w_hat` vectors contributed by group `g`. +The current first rollout has `W_g = 1` for every group, so +`num_w_vectors_root = G` in the implemented scheduler. `num_z_segments = G` +means each group contributes one folded response segment `z_hat_g`. Public +openings bind through the fused trace term in stage-2 sumcheck, not through +dedicated M-matrix rows (see +[`specs/commitment-compression-cutover.md`](commitment-compression-cutover.md)). + +Recursive suffix levels continue to use: + +```text +num_commitment_groups = 1 +num_t_vectors = 1 +num_w_vectors = 1 +num_z_vectors = 1 +``` + +The root planner and proof-size formulas must keep these two worlds separate. + +## Schedule Keys + +Keep `PolynomialGroupLayout` as the per-group entry shape: + +```rust +pub struct PolynomialGroupLayout { + pub num_vars: usize, + pub num_polynomials: usize, +} +``` + +It describes one commitment group's opening geometry: + +```text +num_vars = committed/opened arity for this group +num_polynomials = K_g +``` + +The final group defines the shared opening-point arity. Precommitted group +entries may have any smaller or equal arity; their +`PointVariableSelection` chooses the coordinates they use from the shared +point. `AkitaScheduleLookupKey::validate` enforces this maximum and checks +per-group well-formedness. The enabled schedule catalog decides whether a +concrete valid key is available under the selected preset. + +`AkitaScheduleLookupKey` is the common key shape for scalar and multi-group +planning: + +```rust +pub struct AkitaScheduleLookupKey { + pub final_group: PolynomialGroupLayout, + pub precommitteds: Vec, +} + +pub struct CommittedGroupProfile { + pub group: PolynomialGroupLayout, + pub num_live_ring_elements_per_claim: usize, + pub num_positions_per_block: usize, + pub num_live_blocks: usize, + pub log_basis_inner: u32, + pub log_basis_outer: u32, + pub n_a: usize, + pub n_b: usize, +} +``` + +`CommittedGroupProfile` records the root layout that was used to create the +group commitment. The final planner must use the same `t_hat_g` shape for that +group. In the `commit_final_group`/opening phase, every precommitted group must +verify against the frozen `n_b`. The final group is likewise priced against its +selected outer basis after the full multi-group root shape is known. + +The public final-commit API accepts precommitted `PolynomialGroupLayout`s and +recomputes `CommittedGroupProfile` internally under +`ConservativeCommitmentConfig`. + +The key means: + +```text +Given the precommitted groups and their frozen group params, +what is the root configuration for committing/proving the new group together +with them? +``` + +The vector is a deterministic representation of the group list supplied by the +caller. Group indices are derived from this vector for transcript and descriptor +binding. + +Scalar same-point schedules use: + +```rust +AkitaScheduleLookupKey::single(PolynomialGroupLayout::new(num_vars, K)) +``` + +That form has an empty `precommitteds` vector and delegates byte-for-byte to the +scalar scheduler. + +Derived aggregate counts: + +```text +G = 1 + precommitteds.len() +num_t_vectors_total = final_group.num_polynomials + sum(precommitted.group.num_polynomials) +num_w_vectors_root = sum_g W_g +num_z_vectors_root = G +num_z_segments = G +``` + +For the current supported multi-group root, each group contributes one `w_hat_g`, so +`sum_g W_g = G`. `num_z_segments` is the witness `z_folded` segment count, not +an M-row count. Public openings bind through the fused trace term, not through +dedicated M-matrix rows. + +## Generated Schedule Keys + +Generated schedule entries must inline the same shape as `AkitaScheduleLookupKey`: + +```rust +pub struct GeneratedScheduleTableEntry { + pub final_group: PolynomialGroupLayout, + pub precommitteds: &'static [CommittedGroupProfile], + pub steps: &'static [GeneratedStep], +} +``` + +Generated lookup must compare the full group-batch key, including the +precommitted group params and conservative B ranks. It +must never collapse a multi-group key into a single scalar key such as +`[sum_g K_g]`. +A table miss is safe because runtime DP can derive a schedule. A false table hit +is not safe. + +The runtime lookup order is: + +```text +validate AkitaScheduleLookupKey +find the exact generated entry +expand and validate that row +``` + +Current generated group-batch tables are emitted only for eligible one-hot, +non-tiered families that opt in through `GeneratedFamily.emit_group_batch`. +The stock emitter enumerates final groups from the generated family key grid, +adds the three-polynomial final-group shape, and samples explicit precommitted +variable and polynomial counts: + +```text +stock precommitted num_vars: 14 +precommitted group counts: 1, 2, or 3 +polynomials per precommitted group: 1 or 2 +``` + +This fixed list bounds static catalog size; it is not a protocol constraint. +Applications may add exact workload arities to their generated catalog. A row +is kept only if conservative precommit parameters and offline multi-group +planning both succeed. Runtime table misses return `UnsupportedSchedule`. A +false table hit is not safe. + +Follow-up table generation can broaden the grid: + +```text +G in {1, 2, 4} +K_g in {1, 2, 4} including more unequal group sizes +num_vars in supported family ranges +``` + +## Precommit Profiles + +Standalone precommitted groups resolve a generated `CommittedGroupProfile` +through `committed_group_profile::` and commit through the profile-native +`commit_group` API. The profile freezes only the independently planned A/source +and B/outer geometry. It does not fabricate a full fold level or unchecked +D/opening parameters before the final grouped-root schedule is known. + +### Standalone Conservative Commit + +For a group committed before the final multi-group proof is known: + +1. Pick the group's outer basis as the minimum allowed root basis in the + code/config basis range. The inner basis is planned independently for A: + ```text + l_outer,g = l_min = min_basis(Cfg) + ``` +2. Use the existing proof-optimized schedule planner with the opening basis + pinned to `log_basis = l_outer,g` while retaining the configured A/source + inner-basis domain, for example by resolving the standalone group key under: + ```text + opening_basis_range = (l_outer,g, l_outer,g) + inner_basis_range = configured_inner_basis_range(Cfg) + ``` + The planner keeps its normal proof-size and weak-binding-aware objective; it + does not switch to a separate "minimize `t_hat_g`" objective. +3. Preserve the exact committed profile and supply numeric honest-witness + norms only to offline planning. +4. Freeze the fields that determine the committed `t_hat_g` shape: + ```text + key, position_index_bits, block_index_bits, + log_basis_inner = l_inner,g, log_basis_outer = l_outer,g, n_a + ``` +5. Ask the SIS estimator for the B rank required for the derived B width + `params.b_key.col_len()` at the B-role norm induced by the frozen + `l_outer,g`. Call it `n_b,g`. +6. Commit this group using: + ```text + m_g, r_g, n_a_g, derived_B_width_g, n_b,g, + log_basis_inner = l_inner,g, log_basis_outer = l_outer,g, ... + ``` + +7. Store the frozen fields and `n_b,g` in `CommittedGroupProfile`. + +The final multi-group root must not change the precommitted group's `m`, `r`, +`n_a`, `n_b`, inner/outer bases, or derived B width. A later root-selected +`log_basis_open` changes only the fresh D/`e_hat` decomposition and cannot alter +the frozen B/`t_hat` relation. The A and D roles remain sized and bound from their +own actual layouts. + +### Last Group + +The last group can use a non-conservative B rank because all group dimensions are +known: + +```text +commit_final_group(new_group, precommitted_layouts) +``` + +`commit_final_group` currently: + +- derives the final group key from `new_group` through the ordinary + `batched_commit` input rules; +- recomputes each precommitted group's conservative `CommittedGroupProfile` + from its `PolynomialGroupLayout` under `ConservativeCommitmentConfig`; +- builds the full `AkitaScheduleLookupKey`; +- resolves the multi-group final-root commit params through + `schedule.root_fold()?.params`; +- commits the last group with the final multi-group plan and returns only the final + commitment plus hint. + +## Config Surface + +`CommitmentConfig` has one unified multi-group/scalar schedule entry point: + +```rust +fn runtime_schedule(key: AkitaScheduleLookupKey) -> Result; +``` + +`runtime_schedule` delegates scalar keys to `resolve_schedule` and multi-group keys +to `resolve_group_batch_schedule`; both paths validate catalog identity on table +hits and fall back to DP on misses. The main/final group's root commit params +come directly from `schedule.root_fold()?.params`. + +Standalone conservative precommit scheduling is not a public trait hook. It is +implemented by `ConservativeCommitmentConfig`, which overrides +`get_params_for_prove` / `get_params_for_batched_commitment` and uses +crate-private helpers to plan the frozen outer basis at `min_basis`. + +There is no separate `MultiGroupRootSchedule` type in the implementation. A +multi-group root is represented by the first schedule step's `LevelParams`: + +```rust +pub struct GroupRootParams { + pub group: PolynomialGroupLayout, + pub num_live_blocks: usize, + pub num_positions_per_block: usize, + pub log_basis_inner: u32, + pub log_basis_outer: u32, + pub n_a: usize, + pub n_b: usize, +} + +pub struct LevelParams { + // normal root fields describe the final/new group + pub a_key: AjtaiKeyParams, + pub b_key: AjtaiKeyParams, + pub d_key: AjtaiKeyParams, + pub num_live_blocks: usize, + pub num_positions_per_block: usize, + pub position_index_bits: usize, + pub block_index_bits: usize, + pub log_basis_inner: u32, + pub log_basis_outer: u32, + pub log_basis_open: u32, + pub num_digits_inner: usize, + pub num_digits_outer: usize, + pub num_digits_open: usize, + // ... + pub precommitted_groups: Vec, +} +``` + +When `precommitted_groups` is nonempty, the level is a multi-group root. The normal +`a_key`, `b_key`, and block fields describe the final group; each +`GroupRootParams` describes one precommitted group; and `d_key` is the shared D +matrix over all group `w_hat_g` segments. + +## Commit and Prove APIs + +The implemented commitment API is key-based. The design does not need public +`CommittedGroupHandle`, `CommittedGroupScheduleMeta`, or `params_digest` types in +this or later phases. Precommitted groups are ordinary conservative commitments; +their layout is deterministically reconstructed from `PolynomialGroupLayout`, +setup, and config policy. Opening claims already have transcript and descriptor +plumbing through `OpeningClaims::append_to_transcript` and +`OpeningClaimsLayout::opening_batch_digest`. + +Implemented final-group API: + +```rust +fn commit_final_group( + setup: &Self::ProverSetup, + polys: &[P], + stack: &UniformProverStack<'_, F, B, D>, + precommitteds: Vec, +) -> Result<(Self::Commitment, Self::CommitHint), AkitaError> +where + P: RootCommitPoly, + B: RootCommitBackend; +``` + +Precommitted groups use: + +```rust +type PrecommitCfg = ConservativeCommitmentConfig; +PrecommitScheme::batched_commit(setup, group_polys, stack) +``` + +The caller keeps the matching `PolynomialGroupLayout` for each +precommitted group. The final-group path then: + +- validates the final group with `prepare_batched_commit_inputs`: nonempty, + padded to the maximum arity in that final bundle, and setup capacity respected; +- rejects an empty `precommitteds` list; +- reconstructs precommitted layouts by resolving each key under + `ConservativeCommitmentConfig::get_params_for_batched_commitment`; +- builds an `AkitaScheduleLookupKey` from those layouts and the final group key; +- resolves multi-group params through `schedule.root_fold()?.params`; +- validates setup footprint and one-hot chunk size for the final group; +- applies tensor root projection when the multi-group final schedule starts with a + fold and the field tower supports root tensor projection; +- commits the final group with the multi-group params and returns the final + commitment plus hint. + +`batched_commit(polys)` keeps its current meaning: one commitment object bundling +many polynomials under a scalar schedule. The conservative adapter changes the +schedule policy for this same API; it does not add a separate precommit method. + +```text +ConservativeCommitmentConfig::batched_commit(group) + == one ordinary commitment object with conservative B rank +``` + +`commit_final_group` is a commitment-only endpoint. Phase 2 multi-group opening work +should consume the existing multi-group opening-batch vectors, commitments, and hints +in group order; it should not introduce a public handle or params digest side +channel. + +Claim inputs already support group order through `OpeningClaims` and +`ProverOpeningData`: + +```rust +fn batched_verify>( + proof: &Self::BatchedProof, + setup: &Self::VerifierSetup, + transcript: &mut T, + claims: OpeningClaims<'_, Self::ExtField, &Self::Commitment>, + basis: BasisMode, +) -> Result<(), AkitaError>; + +fn batched_prove<'a, T, P, B>( + setup: &Self::ProverSetup, + opening: SelectedProverOpeningData<'a, Self::ExtField, P, F>, + stacks: &'a impl LevelProveStacks<'a, F, D, Commit = B, Opening = B, Tensor = B, RingSwitch = B>, + transcript: &mut T, + basis: BasisMode, +) -> Result; +``` + +The group vector index is the commitment group index. Existing singleton helpers +wrap one group entry. + +## Root Witness Layout + +The current implementation has scheduler-side multi-group witness sizing, not +yet a serialized/prover-side `MultiGroupRootWitnessLayout` object. A supported +multi-group schedule is fold-rooted and followed by a singleton recursive +suffix. Root-direct schedules were removed by PR #311. + +For each group, the planner prices: + +```text +e_hat_g = num_live_blocks_g * num_digits_open_g +t_hat_g = K_g * num_live_blocks_g * n_a_g * num_digits_outer_g +z_hat_g = num_positions_per_block_g * num_digits_inner_g * num_digits_fold_g +``` + +For a folded multi-group root, the multi-group root's next recursive witness ring count +is: + +```text +sum_g (e_hat_g + t_hat_g + z_hat_g) ++ r_tail(multi-group root M rows) +``` + +`multi_group_root_next_w_len` returns this count multiplied by `ring_dimension`, +matching the schedule's field-element witness lengths. + +The implemented D width uses one `w_hat_g` segment per group: + +```text +d_width = decomposed_w_ring_count(main.num_digits_open, main.num_live_blocks, 1) + + sum_precommitted group.d_segment_width() +``` + +For Phase 2 proof construction, introduce an explicit root witness layout: + +```rust +pub struct MultiGroupRootWitnessLayout { + pub groups: Vec, + pub total_d_w_rings: usize, + pub z_hat_segments: usize, +} + +pub struct MultiGroupRootWitnessSegment { + pub group_index: usize, + pub t_hat_rings: usize, + pub w_hat_rings: usize, + pub z_hat_rings: usize, +} +``` + +The proof layout must use `z_hat_segments = G` and +`total_d_w_rings = sum_g w_hat_rings_g`. Prover and verifier must derive the +same layout from the multi-group root schedule and opening batch. + +## Root M-Row Layout + +For scheduler sizing of the initial non-tiered multi-group opening, the +multi-group-root M-row count is: + +```text +1 consistency row +final/main group A rows +final/main group B rows +for each precommitted group: + A rows for that group + B rows for that group +optional D rows, present for RelationMatrixRowLayout::WithDBlock +``` + +This matches the scalar post-PR1 layout (`consistency | A | B | D`) extended +per group: each group relation has its own A and B blocks, and the shared D block +trails all group blocks. Public openings bind through the fused trace term, not +through M rows. + +There is no shared A block in the multi-group root model. Each group relation has +its own A role, even if two groups happen to use identical dimensions or the same +setup prefix widths. + +Exact prover/verifier row offsets are still Phase 2 work. The current scheduler +stores the params needed to derive them in the root `LevelParams`: the normal +fields describe the final group, and `precommitted_groups` describes the earlier +groups. Scalar row-offset helpers reject multi-group roots today. Any future proof or +verifier path that consumes multi-group params must account for `G` group blocks and +one shared D block. Hardcoding `G = 1` in a verifier-reachable multi-group path is +invalid. + +## Phase 2 Relation Quotient Requirements + +The multi-group root quotient must: + +- validate `commitments.len() == G`; +- validate `hints.len() == G` on the prover side; +- validate each commitment's row length against that group's params; +- bind public openings through the fused trace term for the whole multi-group batch; +- produce `G` B (commitment) row blocks; +- produce one `z_hat_g` segment per group; +- compute the D rows over `concat(w_hat_0, ..., w_hat_{G-1})`; +- compute per-group A/B quotient rows with the correct per-group `m`, `r`, +`log_basis`, digit depths, and ranks; +- produce a single root `w` for the suffix. + +The existing extra-`z` loop in `compute_relation_quotient` is not sufficient by +itself. Extra `z` segments must be connected to group-scoped equations, not only +added into one aggregate A quotient. + +## Setup Contribution + +Recursive setup contribution uses one setup-product sumcheck over the packed +setup prefix with the additive per-index group weight: + +```text +setup_index_weight(i) = Σ_g setup_index_weight_g(i) +``` + +For Direct and Recursive modes, setup contribution and verifier ring-switch +replay must receive the true group shape: + +```text +num_segments = G +num_polys_per_segment = [K_0, K_1, ..., K_{G-1}] +``` + +Verifier code must never silently construct `num_segments = 1` for a multi-group +proof. + +## Instance Descriptor and Transcript + +### Phase 1 Descriptor Binding + +The current descriptor has `AlgebraSection`, `SetupSection`, `PlanSection`, and +`CallSection`. There is no top-level `CommitSection`, and this multi-group flow +should not add one. + +`CallSection` binds the public multi-group opening shape: + +```text +num_polys +num_commitment_groups +num_polys_per_commitment_group +point_variable_selections +basis_mode +opening_point_arity +opening_batch_digest +``` + +`OpeningClaimsLayout::opening_batch_digest` uses: + +```text +num_vars +num_polynomials +num_commitment_groups +for each group: + group.num_polynomials + prefix point-variable indices as a length-prefixed usize vector +``` + +`PlanSection.effective_schedule_digest` binds +`schedule.append_descriptor_bytes(...)`. When a multi-group schedule is materialized, +the root `LevelParams` descriptor includes `precommitted_groups`; each +`GroupRootParams` descriptor includes its frozen `CommittedGroupProfile`, A key, +B key, block geometry, and digit counts. + +`CommittedGroupProfile` descriptor bytes currently encode: + +```text +group.num_vars +group.num_polynomials +position_index_bits +block_index_bits +log_basis +n_a +n_b +``` + +Changing the group partition or normalized point-variable arity changes the +opening-batch digest. Changing the generated multi-group schedule row or +precommitted group params changes the effective schedule digest. Both digests +are already part of the instance descriptor absorbed by the transcript. + +The transcript absorption order remains: + +```text +instance descriptor +opening batch / group shape +commitments in group vector order +shared opening point +claim values +root messages +suffix messages +``` + +`AKITA_INSTANCE_DESCRIPTOR_VERSION` stays at `1` until the codebase is frozen for +audit. Pre-audit wire-format extensions land without bumping this constant. +After audit freeze, incompatible layout changes must increment it. + +### No Separate Commit Section + +Multi-group opening should not add a `CommitSection` or a separate params digest. The +existing descriptor already has the two bindings needed for this shape: + +- `CallSection.opening_batch_digest` binds the public multi-group opening shape, + including group count, per-group polynomial counts, and point-variable + selections. +- `PlanSection.effective_schedule_digest` binds the materialized schedule. For a + multi-group root, the schedule descriptor includes the root `LevelParams`, its + `precommitted_groups`, each `CommittedGroupProfile`, conservative B ranks, A/B + keys, block geometry, and digit counts. + +Setup seed and policy fields, including the configured basis range, remain bound +through the existing `SetupSection` / `AlgebraSection` +descriptor fields. One-hot chunk size and decomposition policy remain bound +through the existing level/schedule descriptor bytes. + +### Canonical Encoding + +Multi-group opening and schedule encodings use the same canonical byte helpers as +the existing instance descriptor digests in +`crates/akita-types/src/descriptor_bytes.rs`: + +```text +usize -> u64 little-endian +u32 -> u32 little-endian +u128 -> u128 little-endian +usize[] -> usize length prefix, then each element in order +digest -> 32 raw bytes (Blake2b-256 output) +``` + +`CommittedGroupProfile` encodes in this fixed order: + +```text +group.num_vars +group.num_polynomials +position_index_bits +block_index_bits +log_basis +n_a +n_b +``` + +Multi-group schedule precommitted params encode in transcript order through the +materialized root `LevelParams`: + +```text +precommitteds.len() +for g in 0..precommitteds.len(): + CommittedGroupProfile(precommitteds[g]) +``` + +The multi-group opening-batch digest in `CallSection` remains separate and uses the +existing `opening_batch_digest` encoding over: + +```text +num_vars +num_polynomials +num_commitment_groups +for each group: + group.num_polynomials + prefix point-variable indices as a length-prefixed usize vector +``` + +Descriptor digest domain labels: + +```text +effective_schedule_digest = Blake2b-256(schedule.append_descriptor_bytes(...)) +``` + +The multi-group opening phase should not add new proof-body fields beyond the +existing descriptor and batched proof containers. Multi-group proof shape lives in +the opening batch and effective schedule, not in prover-supplied side channels. + +Malformed Phase 2 multi-group descriptor bytes must reject before any +verifier-reachable matrix prefix selection or ring-switch replay. Exact +rejection cases: + +```text +schedule.precommitted_groups.len() + 1 != opening_batch.G -> AkitaError::InvalidProof +any CommittedGroupProfile field overflow or zero where forbidden -> AkitaError::InvalidProof +unknown descriptor version -> SerializationError +group vector order differs from commitment vector order -> AkitaError::InvalidProof +effective_schedule_digest mismatch after recompute -> AkitaError::InvalidProof +scalar [4] opening-batch digest presented as multi-group [1,3] -> AkitaError::InvalidProof +``` + +### Phase 2 Verifier Boundary + +`CommittedGroupProfile` values are not a separate prover-supplied side channel in +the Phase 2 multi-group opening phase. They are derived from the public +`OpeningClaimsLayout`, setup, and config policy, then bound indirectly through +the effective schedule digest. +The verifier must follow this order: + +1. Parse and validate the instance descriptor bytes at the current schema version. +2. Validate that `CallSection.opening_batch_digest` matches the public + `OpeningClaimsLayout`. +3. Reconstruct `AkitaScheduleLookupKey` from the public opening batch, setup, and + config policy. +4. Resolve the multi-group root schedule from that key and compare + `PlanSection.effective_schedule_digest`. +5. Reject if any schedule-derived precommitted layout differs from the layout + recomputed from config policy. +6. Reject if any precommitted group's commitment row count differs from its + frozen `n_b`. +7. Validate commitment row counts and opening-batch routing. +8. Only then run ring-switch replay and suffix verification. + +The verifier must never trust handles, hints, proof-local structs, or a separate +digest for commitment group layout fields; the opening batch and effective +schedule are the sources of truth. + +## Setup Capacity + +Current setup capacity remains expressed as: + +```text +max_num_vars +max_num_batched_polys +max_setup_len +``` + +For eligible one-hot, non-tiered proof-optimized configs, setup-envelope sizing +inflates `max_setup_len` with conservative standalone commitment footprints and +representative one- and two-precommit root shapes. +This scan is a bounded sizing policy, not a certificate that every +planner-constructible group partition fits the materialized setup. + +The planner may construct schedules for other precommitted-group counts. +Commit, prove, and verify recompute the exact matrix envelope from the selected +schedule and concrete opening layout. +They reject if that envelope exceeds `max_setup_len`. +Generic setup deserialization separately applies its field-element allocation +cap before decoding matrix contents. + +There is no public `max_commitment_groups` contract today. +Supporting a planner-derived schedule therefore does not imply that every +setup artifact has capacity for that schedule. + +## Efficiency Rules + +The multi-group root is expected to cost more than a scalar same-point batch when all +polynomials are known up front. The multi-group root pays for: + +- one `z_hat_g` segment per group; +- one B block per group; +- one A block per group in the initial multi-group relation; +- repeated B traversal and padding for unequal `K_g`; +- conservative B ranks for precommitted groups. + +The main offset is the concatenated D relation. It can size D against the number +of group `w_hat_g` segments rather than the total number of polynomials, but this +does not by itself make multi-group roots the preferred path for known-upfront +batches. + +The planner exposes three modes: + +- `G = 1` is `AkitaScheduleLookupKey::single(...)` and delegates to the scalar + schedule. +- All groups known before any commit use the existing scalar same-point batch, +unless the caller explicitly needs separate commitment objects. +- Staggered workflows currently use `ConservativeCommitmentConfig` plus + ordinary `batched_commit` for precommitted groups, then `commit_final_group` + for the final group. Each precommitted group freezes its A/B layout before the + final root selects the shared open basis. + +## Validation Rules + +At conservative precommit time: + +- the group must be nonempty; +- the caller is responsible for supplying polynomial material with the claimed + group shape; +- `log_basis_outer` must be `min_opening_basis(Cfg)`; +- the `CommittedGroupProfile` must be derived by the proof-optimized planner + with the singleton minimum opening-basis range and the configured independent + inner-basis range; +- the `CommittedGroupProfile` must determine the same `t_hat_g` shape used by + the commit witness; +- frozen `n_b` must pass `AjtaiKeyParams::try_new` for + `(derived_B_width_g, norm_B(l_outer,g))`; +- the selected params must fit setup capacity. + +At Phase 1 multi-group schedule lookup time: + +- `AkitaScheduleLookupKey::single(final_group)` must delegate to the scalar + scheduler. +- `precommitteds` must be well-formed derived group params. +- The full multi-group key must not be collapsed into a scalar total-polynomial key. +- Commit order does not impose an arity ordering: a precommitted group may have + more variables than the final group, while the final commitment and root + witness retain the final group's source arity. +- Tiered multi-group roots must return `AkitaError::InvalidSetup`. +- Multi-group folded roots must hand off to a singleton recursive suffix; multi-group + terminal root folds remain rejected until the terminal witness layout is + implemented. + +At current `commit_final_group` time: + +- `precommitteds` must be a nonempty list of well-formed + `CommittedGroupProfile`s returned by the actual earlier commits; +- the full `AkitaScheduleLookupKey` must be derivable from those exact ordered + descriptors and the final group layout; +- each precommitted group must keep its `CommittedGroupProfile` `m`, `r`, + `log_basis`, `n_a`, and B width; +- each precommitted group must use the frozen conservative B row count in the + multi-group root relation; +- the final multi-group root schedule must fit setup capacity; +- the last group commitment must match the final group's params; +- the call returns the exact `OpeningScheduleSelection` together with the + commitment and hint. + +At current prove time: + +- `ProverOpeningData` performs only intrinsic construction and alignment checks. +- Concrete prover polynomial shape is an implicit caller contract. Akita does + not validate a semantic source taxonomy before proving; bad material yields + a completeness failure. +- `G > 1` supports `SetupContributionMode::Recursive` when the folded root can + hand off to a singleton recursive suffix. +- Tiered multi-group proofs reject with `AkitaError::InvalidSetup`. + +At current verify time: + +- `OpeningClaims` must be internally consistent. +- `G > 1` with recursive setup contribution verifies against the combined + setup-index weight vector. +- The exact row selection must resolve to the ordered public commitment + profiles and frozen verifier schedule. + +- The verifier must reconstruct the `AkitaScheduleLookupKey` from the public + opening batch, setup, and config policy. +- The verifier must recompute multi-group root params from the key. +- The verifier must reject if a precommitted group's final root layout differs + from its `CommittedGroupProfile`. +- The verifier must reject if a precommitted group's B row count differs from + its frozen conservative `n_b'`. +- The verifier must recompute root `w_len` from the multi-group witness layout. +- The verifier must validate group commitment row counts before ring-switch + replay. +- All malformed sizes must return `AkitaError`, not panic. + +## Unsupported Shape Rejects + + +| Shape | Rejection point | Error | +| ----------------------------------------------- | --------------------------------------- | ---------------------------------------- | +| Tiered preset + multi-group schedule key | `runtime_schedule` / multi-group DP | `AkitaError::InvalidSetup` | +| Tiered preset + `G > 1` proof | Prove / verify entry | `AkitaError::InvalidSetup` | +| Dense grouped key missing from stock catalog | table-backed `runtime_schedule` | `AkitaError::UnsupportedSchedule` | +| Root source disagrees with commitment/catalog policy | schedule validation / generated resolution | `AkitaError::InvalidSetup` | +| Dense polynomial under one-hot source bounds | commit / prove source validation | `AkitaError::InvalidInput` | +| `G > 1` + `witness_chunk.num_chunks > 1` | schedule selection / prove / verify / relation replay | `AkitaError::InvalidSetup` / `InvalidProof` | +| Scalar table lookup collapsing `[1,3]` to `[4]` | scalar key construction / multi-group lookup | table miss or `AkitaError::InvalidSetup` | +| `log_basis != min_basis(Cfg)` at precommit | conservative layout validation / multi-group root params | `AkitaError::InvalidSetup` | + + +## Rollout Plan + +### Phase 0: Opening Claims Cleanup and Guards + +- Clean up the old flattened commitment-group routing from `OpeningClaimsLayout`. +- Make `OpeningClaimsLayout` follow the new group design: + - one shared `point`; + - ordered `groups`; + - each `PolynomialGroupClaims` has `PointVariableSelection` plus dense + evaluations and a commitment. +- Keep `OpeningClaimsLayout::new` as the scalar same-bundle constructor. +- Add `OpeningClaimsLayout::from_group_sizes` for shape-only multi-group batches. +- Bind group partition and point-variable selections in the instance descriptor. +- Add explicit rejects for unsupported multi-group proof paths: + - tiered + `G > 1`; + - recursive setup contribution + `G > 1`; + - dense polynomial multi-group root batching; + - `G > 1` combined with `witness_chunk.num_chunks > 1`; + - scalar table lookup that would collapse a multi-group key into `[sum_g K_g]`. +- Update docs that say multi-commitment same-point folded recursion is "not yet" +to point here. + +Phase 0 is implemented. The old slot/routing vocabulary is gone from +`OpeningClaimsLayout`, multi-group batch shape and descriptor binding exist, scalar +paths still work, and unsupported multi-group proof paths fail explicitly. + +### Phase 1: Scheduler and Conservative Precommit + +- Implemented `AkitaScheduleLookupKey`. +- Implemented generated/DP schedule resolution for multi-group keys without collapsing +`[K_0, K_1, ...]` into `[sum_g K_g]`. +- Threaded multi-group root counts through planner and proof-size formulas: + - `G`; + - `num_t_vectors_total = sum_g K_g`; + - `num_w_vectors_root = sum_g W_g`; + - `num_z_vectors_root = G`; + - `num_z_segments = G`. +- Implemented `CommittedGroupProfile`. +- Implemented conservative B rank selection for standalone groups through + `ConservativeCommitmentConfig`. +- Added generated multi-group table entries for selected one-hot families. +- Kept multi-group opening and multi-group root prove guarded until Phase 2. + +Phase 1 is implemented. Conservative precommit layouts are reproducible from +`PolynomialGroupLayout`, multi-group scheduler lookup/DP fallback is available +for final planning, conservative B rank selection works, and multi-group schedule +negative tests pass. + +### Phase 1.5: Final Group Commitment + +- Implemented `commit_final_group(new_group, precommitted_layouts)`. +- Recompute precommitted layouts under `ConservativeCommitmentConfig`. +- Commit the final group with the final multi-group plan. +- Return the final commitment plus hint only. + +Phase 1.5 is implemented. It validates the final-group commitment layout and +final commitment row count, but it does not produce a multi-group opening proof. + +### Phase 2: Multi-Group Opening + +- Reuse `OpeningClaimsLayout` / `CallSection.opening_batch_digest` for group + partition and point-variable selection binding. +- Reconstruct and validate the full `AkitaScheduleLookupKey` from the public + opening batch, setup, and config policy. +- Bind the final multi-group root schedule through + `PlanSection.effective_schedule_digest`. +- Implement multi-group root witness layout with `concat(w_hat_g)`. +- Route prover root B rows through per-group B computation for `G > 1`. +- Generalize root verifier row counts and terminal witness shapes. +- Support unequal `K_g`. +- Support `SetupContributionMode::Direct`. +- Add folded non-tiered two-group one-hot same-point E2E. + +Phase 2 done means: a final-group commitment can be combined with precommitted +one-hot groups to produce and verify a multi-group same-point opening proof for +unequal `K_g`, with recursive suffix folds remaining singleton. + +### Phase 3: Tables, Performance, and Broader Shapes + +- Add generated table grids for common multi-group one-hot shapes, including unequal +`K_g`. +- Add profile modes for multi-group roots. +- Add fused B kernels if repeated per-group B traversal is too slow. +- Consider per-group D commitments only in a separate spec update with a concrete +cost model and security argument. +- Consider tiered multi-group support in a separate spec update. + +Phase 3 done means: generated multi-group tables exist for the supported +multi-group grid, profile modes report multi-group vs scalar costs, and fused B +kernels land if B-row time is a bottleneck. + +## Test Matrix + +### Unit Tests + +- `OpeningClaimsLayout::from_group_sizes(nv, &[1, 3])` derives two groups. +- `[1, 3]` and `[4]` produce different opening-batch digests. +- Generated group-batch schedule lookup compares precommitted group params, + frozen group params, and `n_b`. +- Descriptor bytes change when a precommitted group's `CommittedGroupProfile` + `m`, `r`, semantic bases, `n_a`, or `n_b` changes. +- Scheduler multi-group root sizing accounts for one `z_hat_g` segment per group. +- Scheduler multi-group D width reports `total_d_w_rings = sum_g w_hat_rings_g`. +- Multi-group terminal root folds reject until the terminal witness layout exists. +- Frozen B rank uses the derived B width and norm from `l_outer,g`. +- `log_basis != min_basis(Cfg)` rejects. + +### Commit Tests + +- `ConservativeCommitmentConfig::batched_commit(group0)` commits with a + reproducible frozen layout. +- Independent conservative precommitted groups do not depend on each other. +- Undersized conservative `n_b` rejects. +- Exceeding setup capacity rejects. +- Dense policies produce exact dense precommit layouts. +- `commit_final_group(group_last, precommitted_layouts)` commits the final group + with multi-group params. +- `commit_final_group` rejects if a precommitted key cannot recompute to a valid + conservative `CommittedGroupProfile`. +- Phase 2: multi-group opening finalization uses the existing opening-batch and + effective-schedule descriptor plumbing; it does not add a handle side channel + or a params digest. + +### Prove / Verify Tests + +- Current prove/verify accept one-hot `G > 1` with direct setup contribution when the + folded multi-group root can hand off to a singleton recursive suffix. +- Current prove/verify accept one-hot `G > 1` with recursive setup contribution when the + folded multi-group root can hand off to a singleton recursive suffix. +- Current prove/verify accept planner-backed dense `G > 1` schedules. +- Current prove/verify reject tiered `G > 1` with `AkitaError::InvalidSetup`. +- Current prove/verify accept the shipped multi-group multi-chunk layout. +- Removed by PR #311: root-direct two-group round trips. +- Implemented: folded non-tiered two-group one-hot same-point round trip. +- Implemented: folded non-tiered unequal group sizes, for example `[1, 3]`. +- Implemented: suffix remains singleton after a multi-group root. +- Implemented: serialize/deserialize multi-group proofs round trip with the current descriptor schema. +- Implemented: opening-batch digest mismatch rejects. +- Implemented: reordered precommitted group vector rejects. +- Phase 2: duplicate or missing precommitted group layout derivation rejects. +- Phase 2: unknown descriptor version rejects for multi-group proofs. +- Phase 2: scalar `[4]` descriptor bytes do not verify as multi-group `[1, 3]`. +- Phase 2: swapping group commitments rejects. +- Phase 2: tampering group `1` opening rejects. +- Implemented: extension-field groups with unequal arities use one + maximum-arity EOR sumcheck; tampering the smaller group opening rejects. +- Phase 2: tampering group `1` hint or `t_hat` segment rejects. +- Phase 2: truncating one group's commitment rows rejects. +- Phase 2: changing a precommitted group's `CommittedGroupProfile` rejects. +- Phase 2: changing a precommitted group's conservative `n_b'` rejects. +- Phase 2: descriptor `[1, 3]` with proof `[4]` rejects. + +### Planner and Table Tests + +- Multi-group table lookup misses rather than collapsing to a scalar `[sum_g K_g]` +key. +- Generated multi-group entries, once emitted, match DP. +- Root `w_len` from planner matches the Phase 2 prover-built multi-group witness length. +- Singleton `G = 1` multi-group schedule lookup delegates to the scalar path. +- Phase 2 setup envelope scans include unequal partitions such as `[1, 3]`. + +### Performance Tests + +Compare multi-group `G = 2, K = [1, 3]` against scalar `[4]` under the active +one-hot preset. Collect proof bytes, B-row time, DP fallback time, and +descriptor size. + +Baseline scalar command: + +```bash +AKITA_MODE=onehot_fp128_d64 AKITA_NUM_VARS=28 cargo run --release --example profile +``` + +Multi-group command after profile mode exists: + +```bash +AKITA_MODE=onehot_fp128_d64_multi_group AKITA_NUM_VARS=28 \ + AKITA_GROUP_SIZES=1,3 cargo run --release --example profile \ + --no-default-features --features parallel,profile-ci +``` + +Pass criteria for the spec gate: + +```text +multi-group proof bytes >= scalar [4] proof bytes for the same num_vars +multi-group B-row time is reported separately from scalar baseline +multi-group descriptor size > scalar descriptor size when G > 1 +DP fallback time for multi-group keys is reported even when tables miss +``` + +Track B-row time from repeated per-group B traversal. +Track proof-size delta from extra `z_hat` segments and wider `r` tails. +Track DP fallback time and table hit rate. + +## Security Notes + +Conservative B rank is necessary but not sufficient by itself. The security +argument also depends on: + +- effective-schedule binding of the materialized multi-group root; +- verifier recomputation of multi-group root params from that key; +- group partition binding; +- frozen precommit layout binding for every precommitted group; +- equality between the final precommitted-group B row count and the frozen +conservative `n_b'`; +- setup capacity covering the selected matrix prefixes; +- D rank and width sized for the full concatenated root witness; +- rejecting unimplemented tiered and recursive setup-contribution combinations. + +No verifier path may trust prover-supplied group layout data without recomputing +it from the public opening batch, setup, and config policy. + +## Alternatives Considered + +### Scalar re-bundling when all polynomials are known + +The caller can use the existing same-point `batched_commit` path and commit all +polynomials in one commitment object. This is the preferred path when the +polynomials are available at the same time and the caller does not need separate +commitment identities. + +This path avoids per-group A/B setup and avoids per-group `z_hat_g`, COMMIT, +and A blocks. It does not support workflows where earlier commitments must keep +their original identity. + +### Known-final-schedule precommit + +A caller that knows the final multi-group root layout before committing earlier +groups could freeze those exact A/B layouts instead of using the minimum-outer-basis +precommit policy. This is not a separate implemented API today. + +### Shared A for identical group layouts + +Groups with identical dimensions could share one A block and use a fresh +group-batching challenge to combine their A equations. This could reduce the +`G * n_a` A-row cost in symmetric workloads. + +This is not part of the initial multi-group opening. It needs a separate soundness +argument because the current design isolates each group with its own A relation. + +### Per-group D outputs + +The design could replace `D * concat(w_hat_g) = v` with one `D_g * w_hat_g = v_g` per group. This can make each D relation narrower, but it also sends more D +outputs and adds more relation rows. + +The initial multi-group opening keeps one concatenated D relation. A per-group D design should only be +adopted if a later cost model shows a win for a supported workload. + +### Two-phase prove and link + +The prover could prove each group separately and then prove a linking statement +that combines the group openings. This keeps each group close to the singleton +path, but it adds extra transcript and proof material. It also moves complexity +into a new linking proof. + +This spec does not choose that shape because the multi-group root keeps one opening +proof and one recursive suffix. + +## Resolved Design Decisions + +The following choices close the open questions from the first draft: + +1. **Public API shape:** use `ConservativeCommitmentConfig` with ordinary + `batched_commit` for precommitted groups, and expose `commit_final_group` for + the final-group commitment. Do not add a separate `commit_group` handle layer + in the initial API rollout. +2. **Setup capacity:** keep the public setup surface on `max_num_vars`, + `max_num_batched_polys`, and `max_setup_len` for Phase 1. Add an explicit + group-count setup API field only if Phase 2 envelope scans show a need. +3. **Recursive setup contribution:** explicitly delay generalization until + a later root-layout generalization. The multi-group opening phase keeps the + existing reject. +4. **Planner key exposure:** keep `AkitaScheduleLookupKey` as the canonical + config/planner key. Public final-commit callers pass + `PolynomialGroupLayout`s for precommitted groups; opening callers should use + multi-group `OpeningClaims` vectors and the effective schedule digest rather than + proof-local side channels. + +## Open Questions + +None for the initial multi-group implementation. Revisit only if tiered multi-group or +known-final-schedule precommit become active follow-up specs. diff --git a/specs/archive/2026-Q3/profile-bench-coverage-matrix.md b/specs/archive/2026-Q3/profile-bench-coverage-matrix.md index 587ae0713..b81d45357 100644 --- a/specs/archive/2026-Q3/profile-bench-coverage-matrix.md +++ b/specs/archive/2026-Q3/profile-bench-coverage-matrix.md @@ -21,8 +21,8 @@ > fields. A later follow-up re-pointed the **fp128** cells to D64 after measuring > that D64 is the fp128 proof-size optimum (~20% smaller than D128 for both > dense and one-hot, while still folding securely); the small-field fp32/fp64 -> cells remain at D128 because their D64 is non-securable. The current matrix -> is the "Active Benchmark Matrix" section below. Everything else (this Summary, +> cells remain at D128 because their D64 is non-securable. That matrix was later +> replaced by the active matrix below. Everything else (this Summary, > and everything from "## Evaluation" onward: Acceptance Criteria, Validation, > Performance, Design, Alternatives, Follow-Up) is the original **PR #107 > historical record**. Its fp16 / D32 / D64 cell references (e.g. @@ -31,6 +31,13 @@ > Benchmark Matrix; they are retained as PR #107's completed acceptance record, > not the current shipping configuration. +> **Status update (2026-08-09, PR #355).** The active direct fp128 modes now use +> adaptive generated catalogs. The dense benchmark check runs fp32 D128, fp64 +> D128, and adaptive fp128 at `nv=26`. For fp128 dense at `nv=26`, the root +> A/B/D dimensions are 256/64/64. Every recursive fold and the terminal use +> D64. The historical record below still describes the earlier uniform D64 +> benchmark. + ## Summary This PR widens the profile benchmark workflow from a small fp128/fp32 sample @@ -59,11 +66,12 @@ The checked-in workflow currently runs: | Mode | Field | Workload | Variables | Polys | Config | Setup mode | Notes | | --- | --- | --- | ---: | ---: | --- | --- | --- | +| `dense_fp32_d128` | fp32 | dense | 26 | 1 | D128 | `direct` | Generated uniform-D128 dense schedule. | +| `dense_fp64_d128` | fp64 | dense | 26 | 1 | D128 | `direct` | Generated uniform-D128 dense schedule. | +| `dense_fp128` | fp128 | dense | 26 | 1 | adaptive | `direct` | Root A/B/D = 256/64/64; recursive folds and terminal use D64. | | `onehot_fp32_d128` | fp32 | 1-of-256 one-hot | 28 | 1 | D128 | `direct` | Smallest securable fp32 one-hot under honest pricing. Capped at nv=28: the ext-degree-4 challenge schedule keeps a large un-folded witness, so at nv>=30 the prover's eq-evaluation table exceeds the 1 GiB `MAX_MATERIALIZED_EQ_TABLE_BYTES` ceiling. | | `onehot_fp64_d128` | fp64 | 1-of-256 one-hot | 28 | 1 | D128 | `direct` | Smallest securable fp64 one-hot under honest pricing. Capped at nv=28 for the same eq-table-budget reason as the fp32 cell. | -| `dense_fp128_d64` | fp128 | dense | 24 | 1 | D64 | `direct` | fp128 dense smoke at the proof-size-optimal ring dimension (D64 beats D128 by ~18-22%). | -| `onehot_fp128_d64` | fp128 | 1-of-256 one-hot | 32 | 1 | D64 | `direct` | Explicit fp128 one-hot mode at the proof-size-optimal ring dimension. fp128 folds aggressively enough to stay at nv=32 under the eq-table budget. | -| `onehot_fp128_d64` | fp128 | 1-of-256 one-hot batched | 30 | 4 | D64 | `direct` | Preserves same-point batched one-hot coverage. | +| `onehot_fp128` | fp128 | 1-of-256 one-hot | 32 | 1 | adaptive | `direct` | Canonical adaptive fp128 one-hot catalog. | | `onehot_fp128_multi_group` | fp128 | 1-of-256 one-hot batched multi-group | 32 | 4 | adaptive | `direct` | Direct multi-group coverage using the canonical adaptive fp128 one-hot catalog. | | `onehot_fp128_multi_group_recursive` | fp128 | 1-of-256 one-hot batched multi-group | 32 | 4 | adaptive recursive multi-group | `recursive` | Recursive setup-product coverage using the adaptive recursive companion catalog. | | `onehot_fp128_multi_group_recursive_multi_chunk_w8r2` | fp128 | 1-of-256 one-hot batched multi-group W8R2 | 32 | 4 | adaptive recursive multi-group W8R2 | `recursive` | Distributed recursive setup-offload row: `8` chunks, `2` leading levels, with adaptive role dimensions. | @@ -77,31 +85,18 @@ The ring degree differs by field, for two distinct reasons: - **Small prime fields (fp32/fp64):** their D32/D64 schedules are no longer securable under the reprice — they degrade to a cleartext root-direct proof and stop exercising a real folding commitment — so the smallest secure ring - degree is D128. Those cells (and all fp16 cells) use D128 one-hot. + degree is D128. The active fp32 and fp64 dense and one-hot cells use D128. - **fp128:** the canonical direct dense and one-hot presets use their adaptive generated catalogs. Each scheduled A/B/D dimension is selected offline from the audited domain, and runtime code resolves that single canonical row. - Explicit D64 modes remain useful uniform baselines; there is no runtime - family selector comparing them with the adaptive presets. - -D32/D128 profile modes still exist for direct local comparisons, but neither -the adaptive `full`/`onehot` selectors nor those comparison modes are part of -the active benchmark matrix. - -Deferred target cells: - -| Mode | Field | Workload | Variables | Polys | Config | Re-enable condition | -| --- | --- | --- | ---: | ---: | --- | --- | -| `dense_fp64_d128` | fp64 | dense | 24 | 1 | D128 | Re-enable after dense small-field hosted-runner cost is validated (fp32 ships no dense family, so fp64 D128 is the only securable dense small-field cell). | - -The first successful 8-case candidate run identified the two cost offenders: -`onehot_fp16_d32:32:1` spent about 210 seconds in proving and peaked around -6.2 GiB RSS, while `dense_fp128_d32:26:1` spent about 56 seconds in commit plus -38 seconds in prove and peaked around 8.4 GiB RSS (those figures are the -historical D32-era measurements). The always-on fp128 dense cell stays at -`nv=24` to keep CI tractable, and now runs at the proof-size-optimal -`dense_fp128_d64:24:1`; D64 commit/prove cost differs from the D32 numbers -above, so the timing baseline must be regenerated on the first post-swap run. + Runtime code does not compare candidate families. It loads the one generated + row for the requested profile. + +The profile example still includes dimension specific small-field modes for +local comparisons. The active workflow uses only the rows in this table. + +The cost figures after this section belong to the historical PR #107 record. +They do not describe the active workflow. ### Scope diff --git a/specs/archive/README.md b/specs/archive/README.md index 21d8d9ed9..5c1dedf6b 100644 --- a/specs/archive/README.md +++ b/specs/archive/README.md @@ -14,6 +14,7 @@ to track current behavior; update the owning book chapter instead. |------|--------------|--------------|----------| | `2026-Q3/pr375-prover-streaming-and-onehot-unification.md` | archived | `book/src/how/optimizations.md` | 2026-Q3 | | `2026-Q3/profile-bench-coverage-matrix.md` | archived | `book/src/usage/profiling.md` | 2026-Q3 | +| `2026-Q3/multi-group-batching-legacy.md` | historical | _(superseded API record)_ | 2026-Q3 | | `2026-Q3/group-local-opening-points.md` | archived | `book/src/how/architecture.md` | 2026-Q3 | | `2026-Q3/digit-range-pipeline-refactor.md` | archived | `book/src/how/proving/sumcheck-stages.md` | 2026-Q3 | | `2026-Q2/w-to-e-notation.md` | archived | `book/src/foundations/glossary.md` | 2026-Q2 | diff --git a/specs/distributed-planner.md b/specs/distributed-planner.md index 9b47f5e67..d49ddd82b 100644 --- a/specs/distributed-planner.md +++ b/specs/distributed-planner.md @@ -570,7 +570,7 @@ At the root-only loop over `(log_basis, block_index_bits)` (absolute level `L = change once `next_w_len` is correct. Keep passing `num_claims = key.num_polynomials` at the root (see `resolve.rs`). -#### Step 4 — Suffix DP (`derive_optimal_suffix_schedule`) +#### Step 4 — Suffix DP (`derive_selected_suffix_schedule`) The suffix memo key today is `(level, current_w_len, current_witness_len_terminal, current_lb)`. Extend **`SuffixCtx`**: @@ -583,7 +583,7 @@ struct SuffixCtx<'a> { key: AkitaScheduleLookupKey, // `key` and `policy` are already present today; no new field is needed // because the absolute level is the existing `level` argument to - // `derive_optimal_suffix_schedule`. + // `derive_selected_suffix_schedule`. } ``` diff --git a/specs/distributed-setup-offloading.md b/specs/distributed-setup-offloading.md index 1546ecce9..b746a0139 100644 --- a/specs/distributed-setup-offloading.md +++ b/specs/distributed-setup-offloading.md @@ -139,16 +139,17 @@ the same planner, walker, prover, and verifier, and are mostly orthogonal: - **Planner DP** already prices the mix. `derive_candidate_level_params` (`crates/akita-planner/src/schedule_params/candidate.rs`) resolves - `num_chunks = policy.chunks_at_level(fold_level)` and threads it through both + `num_chunks = crate::policy::chunks_at_level(policy, fold_level)` and threads it through both the folded-witness sizing (`grouped_setup_prefix_next_witness_len`, `grouped_segment_rings` scale `z_hat` by `num_chunks`) and the setup-prefix group derivation (`derive_setup_prefix_group`, which retains all supported splits and represents `num_live_blocks < num_chunks` with empty ranges). -- **Generated walker** stamps `lp.witness_chunk = policy.witness_chunk_for_level(fold_level)` - on recursive folds too (`crates/akita-planner/src/generated/walk.rs`, both the - scalar and multi-group walkers), and expands `FoldWithSetupMetadata` generically. +- **Planner policy helpers** stamp + `lp.witness_chunk = crate::policy::witness_chunk_at_level(policy, fold_level)` + on recursive folds. Generated expansion replays the selected value through + `crates/akita-schedules/src/generated/expand.rs`. - **Catalog identity** commits both `witness_chunk` and `recursive_setup_planning` - (`crates/akita-planner/src/catalog_identity.rs`), so the mix table cannot alias + (`crates/akita-schedules/src/catalog_identity.rs`), so the mix table cannot alias the plain recursive or plain multi-chunk tables. - **Multi-group + multi-chunk already round-trips** at runtime (`crates/akita-pcs/src/scheme/tests/onehot.rs::multi_group_multi_chunk_fold_round_trips`, @@ -192,8 +193,8 @@ The following are already implemented and verified (the 2. **Config family.** A `GeneratedFamily` row for `RecursiveCommitmentConfig` in `crates/akita-config/src/generated_families.rs` (module - `fp128_d64_onehot_recursive_multi_chunk_w8r2`, `emit_group_batch = true`, - reusing `recursive_profile_group_batch_keys`). The capacity selector + `fp128_d64_onehot_recursive_multi_chunk_w8r2`, using + `recursive_profile_group_batch_keys`). The capacity selector `recursive_group_batch_candidates_for_capacity` now also returns the profiling key(s) for the mix config. 3. **Catalog wiring.** `RecursiveCommitmentConfig::schedule_catalog` diff --git a/specs/heterogeneous-group-source-contracts.md b/specs/heterogeneous-group-source-contracts.md index 05e7c26fc..0669c0fcc 100644 --- a/specs/heterogeneous-group-source-contracts.md +++ b/specs/heterogeneous-group-source-contracts.md @@ -4,9 +4,9 @@ |-------|-------| | Author(s) | Quang Dao | | Created | 2026-07-30 | -| Revised | 2026-07-31 | +| Revised | 2026-08-10 | | Status | active | -| PR | [#338](https://github.com/LayerZero-Labs/akita/pull/338) | +| PR | [#338](https://github.com/LayerZero-Labs/akita/pull/338), [#355](https://github.com/LayerZero-Labs/akita/pull/355) | | Supersedes | Earlier source-provider and fold-admission revisions of this specification | | Superseded-by | | | Book-chapter | how/architecture.md | @@ -139,6 +139,51 @@ The core planner MUST still reject a result that fails a hard protocol check, including arithmetic capacity, matrix capacity, dimension validity, or SIS security. +### Source decomposition basis + +The A commitment basis and the response or opening basis are independent +planner coordinates. `inner_basis_range` is the catalog-bound search policy for +the A source. `opening_basis_range` is the catalog-bound search policy for the +fold response and the B, D, and opening commitments. A generated catalog MUST +bind both complete ranges, including candidates that do not win a row. + +The offline planner classifies the A source as exactly one of these cases: + +- `RawCoefficients { log_bound }` searches the configured inner range, capped + by the source bound. Its digit depth is derived from that bound and the + selected inner basis. +- `UnitOneHot` uses one exact digit at the minimum configured inner basis. It + MUST NOT be priced as a dense field element. +- `BalancedDigits { log_basis }` is an already decomposed recursive witness. It + uses one digit at the basis that produced it. + +An already balanced recursive witness MUST NOT be decomposed again at another +basis. Re-decomposition would change the source representation whose norm was +used to select the preceding fold depth. Each recursive level therefore carries +the predecessor response basis into its A source. This source classification is +offline policy only. Runtime profiles carry the resulting exact basis, digit +depth, widths, ranks, and bounds without a source tag. + +Proof-optimized catalogs currently admit inner bases 3 through 10 for the Q32 +modulus profile and 3 through 11 for Q64 and Q128. These upper limits are +versioned search-policy choices from exhaustive schedule sweeps, not protocol +or signed-storage limits. Bases 9 through 11 require the exact signed-i16 +commitment path. The underlying kernel admits bases through 16, so widening a +catalog range requires a new sweep, SIS coverage for every admitted A cell, +catalog regeneration, and a changed catalog identity. It does not require a +wire-format change. + +The source norm MUST be computed from the selected inner basis and A ring +dimension. Balanced sources use +`FoldWitnessNorms::bounded(log_basis_inner, d_a)`; unit one-hot sources use their +profile-owned sparse norm. The honest fold policy derives `num_digits_fold` +from that source norm and the selected response basis. The A-role SIS collision +bound is then computed from the A ring dimension, response basis, selected fold +digit depth, and challenge distribution. Planner pricing and runtime admission +MUST use those same values. Decoupling the response basis therefore does not +weaken the A bound: the source norm fixes the required response depth, and that +exact response plan fixes the certified A-role bound. + ### Generated schedule rows A generated intermediate row MUST store the selected `num_digits_fold`. diff --git a/specs/mixed-ring-dimension-per-level.md b/specs/mixed-ring-dimension-per-level.md index 8b6f640cc..ae032d135 100644 --- a/specs/mixed-ring-dimension-per-level.md +++ b/specs/mixed-ring-dimension-per-level.md @@ -115,9 +115,9 @@ uniform-D64 suffix. fixed exact A/B/D tuple, including the shared opening D used by frozen precommits. Recursive candidates derive their fold challenge, extension opening reduction bytes, block splits, matrices, ranks, and setup footprint - at that tuple. During adaptive levels all feasible block splits are retained - for comparison; after the search window the ordinary local split selection - is sufficient. + at that tuple. During adaptive levels all policy-admitted block splits are + retained for comparison. After the search window the same catalog-bound + split domain governs the uniform suffix. 4. **Make setup-prefix dimensions edge-local.** A prefix is produced for a successor but committed as an input of that successor. Prefix derivation therefore receives the consuming candidate's exact A and B dimensions. @@ -125,11 +125,10 @@ uniform-D64 suffix. all agree with those dimensions. This removes the old assumption that every recursive prefix uses `Cfg::D`. 5. **Preserve enough information in the suffix frontier.** Two successor - schedules with the same ordinary outer-commitment payload can have different - Stage-3 setup-product payloads when their D/prefix geometry differs. The - parent-visible frontier key now contains both byte counts. Pruning only on - outer payload would discard a candidate that can be better after an - offloaded parent edge. + schedules with the same payload byte counts can still have different + committed geometry. The parent-visible frontier key therefore uses the full + canonical first-fold `CommittedGroupParams` descriptor. A partial payload + key could discard a candidate that differs in a field priced by its parent. 6. **Ship distinct catalog identities and runtime routes.** The generated families `fp128_onehot_recursive` and `fp128_onehot_recursive_multi_chunk_w8r2` bind the adaptive domains, @@ -381,19 +380,19 @@ The shared suffix planner now does the following: 3. Enter the memoized suffix search with the exact witness boundary and the selected tuple as the componentwise dimension ceiling. 4. At each recursive state, enumerate non-decreasing bases and every exact - tuple below that ceiling. Adaptive searched levels retain every feasible - block split; uniform suffix levels use `layout_candidate_score` to select the - local split per basis. + tuple below that ceiling. Adaptive and uniform suffix levels both enumerate + the splits returned by the catalog-bound `recursive_split_search_domain`, + then use `layout_candidate_score` within that domain. 5. Compare direct termination with another fold and, for recursive-setup policies, compare direct and setup-offloaded child edges. 6. Materialize the selected typed `FoldSchedule`; recompute proof bytes and setup envelope and reject any disagreement with the cached estimates. The suffix memo distinguishes the dimension ceiling and retains both -first-direct-setup and payload objectives. Its parent-visible frontier key -contains the successor's ordinary outer payload and Stage-3 payload, so an -adaptive D/prefix choice cannot be incorrectly pruned merely because its B -payload ties another successor. +first-direct-setup and payload objectives. Its parent-visible frontier key is +the successor's full canonical `CommittedGroupParams` descriptor. This keeps +distinct adaptive dimension, setup-prefix, and payload choices separate until +the parent has priced every field it observes. ### Historical pre-cutover mixed-D gap @@ -628,28 +627,32 @@ The descriptor may be represented by the existing full first `CommittedGroupParams` or its canonical descriptor bytes. It must not be a new partial geometry model that can drift from `level_proof_bytes`. -The approved mixed search is deliberately bounded: +The approved mixed search is deliberately bounded and its recursive split +domain is part of catalog identity: -1. L0 and L1 enumerate every feasible basis, admitted dimension tuple, and - block split. +1. L0 and L1 enumerate every feasible basis and admitted dimension tuple. + `RecursiveSplitSearchPolicy::Exhaustive` enumerates every block split. + `BoundedBalancedExtremesV1` is exhaustive through twelve reduced variables + and otherwise keeps the two extremes plus a radius-two balance window. 2. A child tuple is admitted only when each of `d_a`, `d_b`, and `d_d` is no larger than the corresponding parent dimension. 3. From L2 onward, dimensions are fixed to `64/64/64` and candidate split derivation reuses the existing uniform-D64 planner path. 4. A mixed domain must contain `64/64/64`, and every admitted component must be at least 64 so the transition back to D64 cannot increase a dimension. -5. Enumerate direct-terminal and direct-child edges, price them with the +5. Enumerate direct-terminal and direct-child edges over the selected split + domain, price them with the existing exact proof-size functions, combine physical setup cost by `max`, - and retain the required frontier per first-step descriptor. Exact-cost ties + and retain the required frontier per full canonical first-step descriptor. Exact-cost ties survive until the root descriptor comparator chooses a canonical winner. 6. Do not terminate before L2: the terminal and every fold from L2 onward use D64. 7. At the root, choose the global minimum by the requested score. -`derive_candidate_level_params_all_splits` is required only at the two mixed -levels. Once the schedule returns to D64, `derive_candidate_level_params` -restores the existing uniform planner's exact split policy instead of carrying -the mixed-D exhaustive-split expansion through the complete suffix. +The split frontier at each mixed level follows the catalog-bound split policy. +Once the schedule returns to D64, the same policy continues to govern the +uniform suffix. Bounded catalogs are selected within their declared search +domain and do not claim global split optimality. The L1 mixed-D memo state includes the complete parent A/B/D tuple. L2 and later states canonicalize that ceiling to `64/64/64`, allowing suffix memo @@ -908,8 +911,8 @@ above: - root and recursive candidates derive role-local widths, SIS keys, and matrices directly after choosing A and deriving B and D by minimum secure rank; -- L0 and L1 exhaustively enumerate block splits and admissible, - component-wise descending A choices; +- L0 and L1 exhaustively enumerate admissible, component-wise descending A + choices. Block splits follow the catalog-bound recursive split policy; - dimensions are uniform D64 from L2 through the terminal; - a test-only unpruned traversal checks the production frontier and canonical selection over an A-varying domain with B and D fixed at D64. It deliberately @@ -966,9 +969,9 @@ process and filesystem caches were warm after the first run. The material result is that `nv=24` and `nv=36` now complete normally. Before the bounded policy, `nv=24` exceeded one minute and `nv=36` was stopped after five minutes. -The speedup comes from stopping mixed dimensions and exhaustive block-split -enumeration after L1. Monotonicity removes upward transitions, and the complete -D64 suffix reuses the existing fixed planner split derivation. The current +The speedup comes from stopping mixed dimensions after L1 and using the named +bounded split domain for large states. Monotonicity removes upward transitions, +and the complete D64 suffix reuses the same catalog-bound split policy. The current local B/D rank choice also reduces the search space, but it is not equivalent to the target Cartesian objective. The P0 follow-up must remove it. diff --git a/specs/modular-planner-and-precommit-roles.md b/specs/modular-planner-and-precommit-roles.md index 0e01260b4..1bdec2fb0 100644 --- a/specs/modular-planner-and-precommit-roles.md +++ b/specs/modular-planner-and-precommit-roles.md @@ -182,7 +182,7 @@ The selector receives: ```text root runtime family group layout -root basis = 2 +root basis = 3 security policy setup capability compatibility domain diff --git a/specs/multi-group-batching.md b/specs/multi-group-batching.md index 9af80a02c..dcd2ee5c3 100644 --- a/specs/multi-group-batching.md +++ b/specs/multi-group-batching.md @@ -1,1494 +1,114 @@ -# Spec: Multi-commitment groups and conservative-rank root batching - -> **Point-model supersession (2026-07-22).** The shared-point restriction and -> prefix/suffix routing described in this record are superseded by -> [`group-local-opening-points.md`](archive/2026-Q3/group-local-opening-points.md). Multi-group -> roots may use one arbitrary complete point per group; reuse is derived inside -> verifier preparation rather than exposed as a protocol constraint. - - -| Field | Value | -| --------- | ---------------------------------- | -| Author(s) | | -| Created | 2026-06-17 | -| Status | implemented | -| PR | | -| Book | configuration chapter | +# Spec: Multi-group commitment profiles and root batching +| Field | Value | +|-------|-------| +| Status | active | +| Updated | 2026-08-09 | +| PR | #355 | +| Historical record | `archive/2026-Q3/multi-group-batching-legacy.md` | ## Summary -> **Layout supersession (2026-07-15).** The group semantics in this record -> remain useful, but its chunking restrictions and duplicated witness-range -> formulas are superseded by [`digit-innermost-layout.md`](digit-innermost-layout.md). -> Multi-group and multi-chunk witnesses now use the canonical product -> `WitnessLayout`, with one shared quotient tail. - -> **Profile/selection supersession (2026-07-31).** Source taxonomies and -> source-bearing schedule keys in this record are obsolete. Public commitments -> carry exact A/B profiles, runtime lookup uses the final group layout plus -> ordered precommitted profiles, and one batch-level selection identifies the -> exact generated row. Polynomial representation is private prover material. - -> **Topology/API supersession (PR #311).** The implementation is folded-only: -> `Schedule` is structural `folds + terminal`, every supported proof has at -> least two folds, and unsupported keys return `UnsupportedSchedule`. Later -> historical passages mentioning `Step::Direct`, root-direct fallbacks, -> `multi_group_root_commit_params`, or caller-selected prove modes describe the -> pre-#311 implementation. Current root parameters come from -> `schedule.root_fold()?.params`, and proving derives setup-contribution mode -> from the schedule selected by its config. - -Akita currently supports batching several polynomials inside one commitment -object. This spec defines the first production model for batching several -commitment groups in one root proof. The first supported shape is deliberately -narrow: - -- the root schedule freezes exact fold digits and coefficient caps; -- the final group defines the newly committed source arity, while the maximum - arity across all groups defines the shared opening/EOR domain; -- all groups are opened at one shared point; -- group sizes `K_g` may differ; -- multi-group structure exists only at the root level; -- folded multi-group roots hand off to singleton recursive suffix folds after the - root produces one recursive witness commitment; -- tiered multi-group commitments remain out of scope. - -The root model gives every commitment group its own folded `z` witness: - -```text -group g has z_g, and after decomposition it contributes z_hat_g -``` - -All root relations are checked per group except the `D` role. The root emits one -`v` for the shared `D` relation, and `D` is sized large enough to cover every -group's `w_hat_g` witness segment. - -This spec also introduces a **conservative-rank** configuration family for -standalone group commitments. A precommitted group uses a B rank that is -conservative for the maximum allowed root decomposition basis. Later, when a -final group is committed and all group shapes are known, the proof planner can -use the precommitted groups without breaking the SIS security of their B -relations. - -## Motivation - -The one-commitment batch shape is efficient when all polynomials are known and -committed together. It is not enough for workflows that naturally produce several -commitments over time and later want one opening proof at the same point. - -Multi-group batching is therefore a workflow feature, not the preferred -proof-size path when the caller can choose the commitment shape up front. If all -polynomials are available before committing and the caller does not need separate -commitment identities, the caller should use the existing one-commitment -`batched_commit` path. - -The root proof binds several algebraic objects: - -```text -t_hat: commitment-side decomposed inner images -w_hat: opening-side folded witnesses -z_hat: folded response witnesses -u: public commitment rows -v: public D commitment rows -``` - -## Goals - -- Support root proofs for several commitment groups opened at one shared point. -- Allow unequal group sizes `K_g`. -- Give each group its own `z_hat_g` at the root. -- Keep recursive suffix folds singleton: the multi-group root produces one next -witness commitment and the existing suffix machinery takes over. -- Add conservative-rank presets, parallel to `proof_optimized`, for standalone -precommitted groups. -- Derive final-group planning state from public opening shape, setup, and config -policy so the final commit can build a multi-group root proof with already committed -groups. -- Bind group partition through `OpeningClaimsLayout` / `opening_batch_digest` and -bind the final multi-group root schedule through the existing effective schedule -digest. -- Preserve the verifier no-panic contract. Malformed group shapes, schedules, -commitments, witness shapes, and descriptors must return `AkitaError`. - -## Non-Goals - -- Multipoint openings. The batch still has one shared opening point. -- Dense polynomial support for the initial multi-group root batching rollout. -- Tiered multi-group commitments. Existing tiered paths may keep rejecting -`G > 1`. -- Recursive setup-contribution support for `G > 1` in the first rollout, unless -explicitly implemented in the same phase. -- Backward compatibility with old proof bytes or descriptor bytes. - -## Usage Guidance - -Use the existing one-commitment same-point batch when all polynomials are known -before committing: - -```text -batched_commit([p_0, ..., p_{N-1}]) -> one commitment object -> scalar root proof -``` - -Use multi-group batching only when the workflow needs separate commitment -objects that are produced over time and later opened together: - -```text -conservative batched_commit(group_0), ..., conservative batched_commit(group_{G-2}) -commit_final_group(group_{G-1}, [key_0, ..., key_{G-2}]) -``` - -For `G = 1`, schedule lookup already normalizes to the scalar path through -`AkitaScheduleLookupKey::single`. The public multi-group commitment API is -final-commit-only for assembling commitment groups, and multi-group opening proofs -support the degree-one one-hot `SetupContributionMode::Direct` root shape. The -multi-group path preserves scalar normalization rather than adding a parallel -singleton proof path. - -## Terminology - -`G` -: Number of commitment groups. - -`K_g` -: Number of polynomials committed in group `g`. - -`l_inner,g` -: `log_basis_inner` used by group `g` for the A/source decomposition. - -`l_outer,g` -: `log_basis_outer` used by group `g` for the B/`t_hat` decomposition. - -`l_open` -: Root-selected `log_basis_open` used by D/`e_hat` and the shared relation tail. - -`n_b,g` -: Frozen B rank used when committing group `g` at `l_outer,g`. - -`z_g` -: Folded group response before decomposition. - -`z_hat_g` -: Gadget decomposition of `z_g`. - -`w_hat_g` -: Decomposed group opening-side witness bound by the root `D` relation. - -## Current State - -The codebase has implemented the multi-group scheduler, conservative precommit, -`commit_final_group`, and folded-root multi-group opening proofs for dense and -one-hot source policies. - -Implemented now: - -- `OpeningClaims` / `OpeningClaimsLayout` record one shared opening point plus - ordered polynomial groups. `PolynomialGroupClaims` carries the point-variable - selection, claimed evaluations, and commitment for one group. -- `PolynomialGroupLayout`, `CommittedGroupProfile`, and - `AkitaScheduleLookupKey` exist in `akita-types`. -- `CommitmentConfig::runtime_schedule` resolves the unified - `AkitaScheduleLookupKey`. A scalar key is represented as - `AkitaScheduleLookupKey::single(final_group)` and delegates to the scalar - scheduler. A multi-group key goes through generated group-batch lookup first, then - DP fallback. -- `find_schedule` builds folded-root schedules for dense or one-hot, - non-tiered configs. Unsupported keys return `UnsupportedSchedule`. The - multi-group root `LevelParams` holds - the final group in the normal root fields and all precommitted groups in - `precommitted_groups`. -- Multi-group root planning sizes the shared `D` key over one `w_hat_g` segment per - commitment group, not one segment per polynomial. -- Generated tables use one entry shape for scalar and multi-group rows; selected - one-hot families emit rows whose `precommitteds` list is nonempty. -- `ConservativeCommitmentConfig` derives the standalone conservative - precommit layout at `min_basis`, widens the B rank for `max_basis`, and can be - used with the ordinary `batched_commit` API for independent precommitted - groups. -- `commit_final_group` is exposed through `akita-prover` and the public - `CommitmentProver` / PCS scheme surface. It validates the final group, - reconstructs precommitted `CommittedGroupProfile` values from - `PolynomialGroupLayout`s under `ConservativeCommitmentConfig`, - resolves the runtime schedule, reads its root commit params from - `schedule.root_fold()?.params`, - and emits the final commitment plus hint. -- `batched_prove` supports `G > 1` folded multi-group-root dense and one-hot openings; - proving and verification derive setup-contribution behavior from the schedule. - Base-field and extension-field openings use the same group layout, and the - root can hand off to a singleton recursive suffix. The multi-group root - carries per-group `z_hat`, `e_hat`, and `t_hat` sections followed by one - shared quotient tail. -- Extension-field groups use one EOR proof and one batched sumcheck. For group - `g`, the sumcheck term is - `factor_g(x) * sum_{i in g} gamma_i * witness_i(x)`. Every term shares the - maximum tail domain and the same challenge vector. A smaller group is - extended only over additional high variables: its witness is independent of - those variables, and a fixed zero-point equality factor makes their Boolean - sum one. The prover represents this cylindrical extension virtually; it does - not repeat the native witness table. -- The multi-group root relation quotient, verifier ring-switch replay, setup - contribution, relation-matrix column table, and multi-group stage-2 trace table are - implemented for the supported folded root shape. -- Setup-envelope sizing includes conservative commitments for eligible - proof-optimized one-hot configs. - -Still future / guarded: - -- Distributed multi-group execution beyond the shipped multi-chunk layouts. -- Stock generated dense group-batch catalog rows and tiered multi-group - commitments remain guarded. Recursive setup contribution is config-typed and - covered end to end. -- Immediately terminal multi-group root folds remain guarded. -- There is no separate descriptor `CommitSection`, and the design should not add - one for this flow. The current descriptor binds call shape through - `CallSection.opening_batch_digest` and binds the materialized multi-group schedule - through `PlanSection.effective_schedule_digest`; that schedule digest includes - multi-group-root `LevelParams.precommitted_groups` when a multi-group schedule is - materialized. `commit_final_group` itself returns only the final commitment and - hint. - -This spec records the implemented multi-group final-commit and folded -multi-group-root behavior, plus the remaining unsupported matrix. - -## Opening Claims Shape - -Do not introduce a separate root-only incidence type. `OpeningClaimsLayout` is the -canonical normalized shape for one shared opening point. The old flattened -slot/routing vocabulary has been removed in favor of explicit commitment-group -shape records: - -```rust -pub struct PointVariableSelection { - indices: Vec, -} - -pub struct PolynomialGroupLayout { - num_vars: usize, - num_polynomials: usize, -} - -pub struct PolynomialGroupClaims<'a, F, C> { - point_vars: PointVariableSelection, - evaluations: Vec, - commitment: C, - // ... -} - -pub struct OpeningClaims<'a, F, C> { - point: OpeningPoints<'a, F>, - groups: Vec>, -} -``` - -Implemented constructors and accessors: - -```rust -impl OpeningClaimsLayout { - pub fn new(num_vars: usize, num_polys: usize) -> Result; - - pub fn from_group_sizes( - num_vars: usize, - num_polys_per_commitment_group: &[usize], - ) -> Result; - pub fn from_groups(groups: Vec) -> Result; - pub fn check(&self) -> Result<(), AkitaError>; - - pub fn max_num_vars(&self) -> usize; - pub fn groups(&self) -> &[PolynomialGroupLayout]; - pub fn num_groups(&self) -> usize; - pub fn num_total_polynomials(&self) -> usize; - pub fn group_sizes(&self) -> Vec; - pub fn opening_batch_digest(&self) -> DescriptorDigest; -} - -impl<'a, F: Clone, C> OpeningClaims<'a, F, C> { - pub fn from_groups( - point: impl Into>, - groups: Vec>, - ) -> Result; - pub fn layout(&self) -> OpeningClaimsLayout; - pub fn num_vars(&self) -> usize; - pub fn num_total_polynomials(&self) -> usize; - pub fn num_groups(&self) -> usize; - pub fn group_sizes(&self) -> Vec; -} -``` - -The first supported multi-group shape requires: - -```text -all claims use one shared opening point -all groups are nonempty -group sizes K_g may differ -each group's point_vars is ordered, duplicate-free, and indexes into the shared point -custom non-prefix point-variable routing is still rejected by current descriptors -``` - -`[K, K]` and `[2K]` must remain distinct at the schedule, descriptor, and -transcript layers. Current descriptor bytes bind the normalized prefix -point-variable selections derived from each group's active arity. - -## Protocol Shape - -For each group `g`, the root proves: - -```text -1. B_g * t_hat_g = u_g -2. output_g -3. c_g^T * G_open,g * w_hat_g - = a_g^T * G_commit,g * G_fold,g * z_hat_g -4. c_g^T * G_open,g * t_hat_g - = A_g * G_fold,g * z_hat_g -``` - -The root also proves one global D relation: - -```text -5. D * concat(w_hat_0, ..., w_hat_{G-1}) = v -``` - -`concat` is the exact concatenation of the group witness segments. The group -segments may have different sizes. The shared `D` key must be selected with a -column width large enough for the full concatenated witness: - -```text -width_D >= sum_g width(w_hat_g) -``` - -The multi-group root design uses this concatenated D relation. It does not use per-group `v_g` -commitments. A future per-group D design must show that the extra D blocks and -extra `v_g` payloads are cheaper for a concrete workload, and it must give a -separate binding argument for the group-wise D outputs. - -The root relation is a direct sum of group subrelations plus one shared D block. -The suffix sees only the resulting recursive witness commitment and remains -unchanged: - -```text -multi-group root -> one committed recursive witness -> singleton suffix folds -``` - -## Root Counts - -The multi-group root uses these counts: - -```text -num_commitment_groups = G -num_t_vectors_total = sum_g K_g -num_w_vectors_root = sum_g W_g -num_z_vectors_root = G -num_z_segments = G -``` - -`W_g` is the number of opening-side `w_hat` vectors contributed by group `g`. -The current first rollout has `W_g = 1` for every group, so -`num_w_vectors_root = G` in the implemented scheduler. `num_z_segments = G` -means each group contributes one folded response segment `z_hat_g`. Public -openings bind through the fused trace term in stage-2 sumcheck, not through -dedicated M-matrix rows (see -[`specs/commitment-compression-cutover.md`](commitment-compression-cutover.md)). - -Recursive suffix levels continue to use: - -```text -num_commitment_groups = 1 -num_t_vectors = 1 -num_w_vectors = 1 -num_z_vectors = 1 -``` - -The root planner and proof-size formulas must keep these two worlds separate. - -## Schedule Keys - -Keep `PolynomialGroupLayout` as the per-group entry shape: - -```rust -pub struct PolynomialGroupLayout { - pub num_vars: usize, - pub num_polynomials: usize, -} -``` - -It describes one commitment group's opening geometry: - -```text -num_vars = committed/opened arity for this group -num_polynomials = K_g -``` - -The final group defines the shared opening-point arity. Precommitted group -entries may have any smaller or equal arity; their -`PointVariableSelection` chooses the coordinates they use from the shared -point. `AkitaScheduleLookupKey::validate` enforces this maximum and checks -per-group well-formedness. The enabled schedule catalog decides whether a -concrete valid key is available under the selected preset. - -`AkitaScheduleLookupKey` is the common key shape for scalar and multi-group -planning: - -```rust -pub struct AkitaScheduleLookupKey { - pub final_group: PolynomialGroupLayout, - pub precommitteds: Vec, -} - -pub struct CommittedGroupProfile { - pub group: PolynomialGroupLayout, - pub num_live_ring_elements_per_claim: usize, - pub num_positions_per_block: usize, - pub num_live_blocks: usize, - pub log_basis_inner: u32, - pub log_basis_outer: u32, - pub n_a: usize, - pub n_b: usize, -} -``` - -`CommittedGroupProfile` records the root layout that was used to create the -group commitment. The final planner must use the same `t_hat_g` shape for that -group. In the `commit_final_group`/opening phase, every precommitted group must -verify against the frozen `n_b`. The final group is likewise priced against its -selected outer basis after the full multi-group root shape is known. - -The public final-commit API accepts precommitted `PolynomialGroupLayout`s and -recomputes `CommittedGroupProfile` internally under -`ConservativeCommitmentConfig`. - -The key means: - -```text -Given the precommitted groups and their frozen group params, -what is the root configuration for committing/proving the new group together -with them? -``` - -The vector is a deterministic representation of the group list supplied by the -caller. Group indices are derived from this vector for transcript and descriptor -binding. - -Scalar same-point schedules use: - -```rust -AkitaScheduleLookupKey::single(PolynomialGroupLayout::new(num_vars, K)) -``` - -That form has an empty `precommitteds` vector and delegates byte-for-byte to the -scalar scheduler. - -Derived aggregate counts: - -```text -G = 1 + precommitteds.len() -num_t_vectors_total = final_group.num_polynomials + sum(precommitted.group.num_polynomials) -num_w_vectors_root = sum_g W_g -num_z_vectors_root = G -num_z_segments = G -``` - -For the current supported multi-group root, each group contributes one `w_hat_g`, so -`sum_g W_g = G`. `num_z_segments` is the witness `z_folded` segment count, not -an M-row count. Public openings bind through the fused trace term, not through -dedicated M-matrix rows. - -## Generated Schedule Keys - -Generated schedule entries must inline the same shape as `AkitaScheduleLookupKey`: - -```rust -pub struct GeneratedScheduleTableEntry { - pub final_group: PolynomialGroupLayout, - pub precommitteds: &'static [CommittedGroupProfile], - pub steps: &'static [GeneratedStep], -} -``` - -Generated lookup must compare the full group-batch key, including the -precommitted group params and conservative B ranks. It -must never collapse a multi-group key into a single scalar key such as -`[sum_g K_g]`. -A table miss is safe because runtime DP can derive a schedule. A false table hit -is not safe. - -The runtime lookup order is: - -```text -validate AkitaScheduleLookupKey -find the exact generated entry -expand and validate that row -``` - -Current generated group-batch tables are emitted only for eligible one-hot, -non-tiered families that opt in through `GeneratedFamily.emit_group_batch`. -The stock emitter enumerates final groups from the generated family key grid, -adds the three-polynomial final-group shape, and samples explicit precommitted -variable and polynomial counts: - -```text -stock precommitted num_vars: 14 -precommitted group counts: 1, 2, or 3 -polynomials per precommitted group: 1 or 2 -``` - -This fixed list bounds static catalog size; it is not a protocol constraint. -Applications may add exact workload arities to their generated catalog. A row -is kept only if conservative precommit parameters and offline multi-group -planning both succeed. Runtime table misses return `UnsupportedSchedule`. A -false table hit is not safe. - -Follow-up table generation can broaden the grid: - -```text -G in {1, 2, 4} -K_g in {1, 2, 4} including more unequal group sizes -num_vars in supported family ranges -``` - -## Precommit Configuration - -Standalone precommitted group commits use the existing `proof_optimized` -presets through `PrecommittedCommitmentConfig`. The -adapter overrides ordinary scalar schedule/commit layout selection so -precommitted groups can be produced with the existing `batched_commit` API while -freezing their independently planned inner basis and minimum selected outer -basis. Tiered precommit and multi-group roots return explicit `AkitaError`. - -### Standalone Conservative Commit - -For a group committed before the final multi-group proof is known: - -1. Pick the group's outer basis as the minimum allowed root basis in the - code/config basis range. The inner basis is planned independently for A: - ```text - l_outer,g = l_min = min_basis(Cfg) - ``` -2. Use the existing proof-optimized schedule planner with the basis search range - pinned to `log_basis = l_outer,g`, for example by resolving the standalone group - key under: - ```text - basis_range = (l_g, l_g) - ``` - The planner keeps its normal proof-size and weak-binding-aware objective; it - does not switch to a separate "minimize `t_hat_g`" objective. -3. Preserve the exact committed profile and supply numeric honest-witness - norms only to offline planning. -4. Freeze the fields that determine the committed `t_hat_g` shape: - ```text - key, position_index_bits, block_index_bits, - log_basis_inner = l_inner,g, log_basis_outer = l_outer,g, n_a - ``` -5. Ask the SIS estimator for the B rank required for the derived B width - `params.b_key.col_len()` at the B-role norm induced by the frozen - `l_outer,g`. Call it `n_b,g`. -6. Commit this group using: - ```text - m_g, r_g, n_a_g, derived_B_width_g, n_b,g, - log_basis_inner = l_inner,g, log_basis_outer = l_outer,g, ... - ``` - -7. Store the frozen fields and `n_b,g` in `CommittedGroupProfile`. - -The final multi-group root must not change the precommitted group's `m`, `r`, -`n_a`, `n_b`, inner/outer bases, or derived B width. A later root-selected -`log_basis_open` changes only the fresh D/`e_hat` decomposition and cannot alter -the frozen B/`t_hat` relation. The A and D roles remain sized and bound from their -own actual layouts. - -### Last Group - -The last group can use a non-conservative B rank because all group dimensions are -known: - -```text -commit_final_group(new_group, precommitted_layouts) -``` - -`commit_final_group` currently: - -- derives the final group key from `new_group` through the ordinary - `batched_commit` input rules; -- recomputes each precommitted group's conservative `CommittedGroupProfile` - from its `PolynomialGroupLayout` under `ConservativeCommitmentConfig`; -- builds the full `AkitaScheduleLookupKey`; -- resolves the multi-group final-root commit params through - `schedule.root_fold()?.params`; -- commits the last group with the final multi-group plan and returns only the final - commitment plus hint. - -## Config Surface - -`CommitmentConfig` has one unified multi-group/scalar schedule entry point: - -```rust -fn runtime_schedule(key: AkitaScheduleLookupKey) -> Result; -``` - -`runtime_schedule` delegates scalar keys to `resolve_schedule` and multi-group keys -to `resolve_group_batch_schedule`; both paths validate catalog identity on table -hits and fall back to DP on misses. The main/final group's root commit params -come directly from `schedule.root_fold()?.params`. - -Standalone conservative precommit scheduling is not a public trait hook. It is -implemented by `ConservativeCommitmentConfig`, which overrides -`get_params_for_prove` / `get_params_for_batched_commitment` and uses -crate-private helpers to plan the frozen outer basis at `min_basis`. - -There is no separate `MultiGroupRootSchedule` type in the implementation. A -multi-group root is represented by the first schedule step's `LevelParams`: - -```rust -pub struct GroupRootParams { - pub group: PolynomialGroupLayout, - pub num_live_blocks: usize, - pub num_positions_per_block: usize, - pub log_basis_inner: u32, - pub log_basis_outer: u32, - pub n_a: usize, - pub n_b: usize, -} - -pub struct LevelParams { - // normal root fields describe the final/new group - pub a_key: AjtaiKeyParams, - pub b_key: AjtaiKeyParams, - pub d_key: AjtaiKeyParams, - pub num_live_blocks: usize, - pub num_positions_per_block: usize, - pub position_index_bits: usize, - pub block_index_bits: usize, - pub log_basis_inner: u32, - pub log_basis_outer: u32, - pub log_basis_open: u32, - pub num_digits_inner: usize, - pub num_digits_outer: usize, - pub num_digits_open: usize, - // ... - pub precommitted_groups: Vec, -} -``` - -When `precommitted_groups` is nonempty, the level is a multi-group root. The normal -`a_key`, `b_key`, and block fields describe the final group; each -`GroupRootParams` describes one precommitted group; and `d_key` is the shared D -matrix over all group `w_hat_g` segments. - -## Commit and Prove APIs - -The implemented commitment API is key-based. The design does not need public -`CommittedGroupHandle`, `CommittedGroupScheduleMeta`, or `params_digest` types in -this or later phases. Precommitted groups are ordinary conservative commitments; -their layout is deterministically reconstructed from `PolynomialGroupLayout`, -setup, and config policy. Opening claims already have transcript and descriptor -plumbing through `OpeningClaims::append_to_transcript` and -`OpeningClaimsLayout::opening_batch_digest`. - -Implemented final-group API: - -```rust -fn commit_final_group( - setup: &Self::ProverSetup, - polys: &[P], - stack: &UniformProverStack<'_, F, B, D>, - precommitteds: Vec, -) -> Result<(Self::Commitment, Self::CommitHint), AkitaError> -where - P: RootCommitPoly, - B: RootCommitBackend; -``` - -Precommitted groups use: - -```rust -type PrecommitCfg = ConservativeCommitmentConfig; -PrecommitScheme::batched_commit(setup, group_polys, stack) -``` - -The caller keeps the matching `PolynomialGroupLayout` for each -precommitted group. The final-group path then: - -- validates the final group with `prepare_batched_commit_inputs`: nonempty, - padded to the maximum arity in that final bundle, and setup capacity respected; -- rejects an empty `precommitteds` list; -- reconstructs precommitted layouts by resolving each key under - `ConservativeCommitmentConfig::get_params_for_batched_commitment`; -- builds an `AkitaScheduleLookupKey` from those layouts and the final group key; -- resolves multi-group params through `schedule.root_fold()?.params`; -- validates setup footprint and one-hot chunk size for the final group; -- applies tensor root projection when the multi-group final schedule starts with a - fold and the field tower supports root tensor projection; -- commits the final group with the multi-group params and returns the final - commitment plus hint. - -`batched_commit(polys)` keeps its current meaning: one commitment object bundling -many polynomials under a scalar schedule. The conservative adapter changes the -schedule policy for this same API; it does not add a separate precommit method. - -```text -ConservativeCommitmentConfig::batched_commit(group) - == one ordinary commitment object with conservative B rank -``` - -`commit_final_group` is a commitment-only endpoint. Phase 2 multi-group opening work -should consume the existing multi-group opening-batch vectors, commitments, and hints -in group order; it should not introduce a public handle or params digest side -channel. - -Claim inputs already support group order through `OpeningClaims` and -`ProverOpeningData`: - -```rust -fn batched_verify>( - proof: &Self::BatchedProof, - setup: &Self::VerifierSetup, - transcript: &mut T, - claims: OpeningClaims<'_, Self::ExtField, &Self::Commitment>, - basis: BasisMode, -) -> Result<(), AkitaError>; - -fn batched_prove<'a, T, P, B>( - setup: &Self::ProverSetup, - opening: SelectedProverOpeningData<'a, Self::ExtField, P, F>, - stacks: &'a impl LevelProveStacks<'a, F, D, Commit = B, Opening = B, Tensor = B, RingSwitch = B>, - transcript: &mut T, - basis: BasisMode, -) -> Result; -``` - -The group vector index is the commitment group index. Existing singleton helpers -wrap one group entry. - -## Root Witness Layout - -The current implementation has scheduler-side multi-group witness sizing, not -yet a serialized/prover-side `MultiGroupRootWitnessLayout` object. A supported -multi-group schedule is fold-rooted and followed by a singleton recursive -suffix. Root-direct schedules were removed by PR #311. - -For each group, the planner prices: - -```text -e_hat_g = num_live_blocks_g * num_digits_open_g -t_hat_g = K_g * num_live_blocks_g * n_a_g * num_digits_outer_g -z_hat_g = num_positions_per_block_g * num_digits_inner_g * num_digits_fold_g -``` - -For a folded multi-group root, the multi-group root's next recursive witness ring count -is: - -```text -sum_g (e_hat_g + t_hat_g + z_hat_g) -+ r_tail(multi-group root M rows) -``` - -`multi_group_root_next_w_len` returns this count multiplied by `ring_dimension`, -matching the schedule's field-element witness lengths. - -The implemented D width uses one `w_hat_g` segment per group: - -```text -d_width = decomposed_w_ring_count(main.num_digits_open, main.num_live_blocks, 1) - + sum_precommitted group.d_segment_width() -``` - -For Phase 2 proof construction, introduce an explicit root witness layout: - -```rust -pub struct MultiGroupRootWitnessLayout { - pub groups: Vec, - pub total_d_w_rings: usize, - pub z_hat_segments: usize, -} - -pub struct MultiGroupRootWitnessSegment { - pub group_index: usize, - pub t_hat_rings: usize, - pub w_hat_rings: usize, - pub z_hat_rings: usize, -} -``` - -The proof layout must use `z_hat_segments = G` and -`total_d_w_rings = sum_g w_hat_rings_g`. Prover and verifier must derive the -same layout from the multi-group root schedule and opening batch. - -## Root M-Row Layout - -For scheduler sizing of the initial non-tiered multi-group opening, the -multi-group-root M-row count is: - -```text -1 consistency row -final/main group A rows -final/main group B rows -for each precommitted group: - A rows for that group - B rows for that group -optional D rows, present for RelationMatrixRowLayout::WithDBlock -``` - -This matches the scalar post-PR1 layout (`consistency | A | B | D`) extended -per group: each group relation has its own A and B blocks, and the shared D block -trails all group blocks. Public openings bind through the fused trace term, not -through M rows. - -There is no shared A block in the multi-group root model. Each group relation has -its own A role, even if two groups happen to use identical dimensions or the same -setup prefix widths. - -Exact prover/verifier row offsets are still Phase 2 work. The current scheduler -stores the params needed to derive them in the root `LevelParams`: the normal -fields describe the final group, and `precommitted_groups` describes the earlier -groups. Scalar row-offset helpers reject multi-group roots today. Any future proof or -verifier path that consumes multi-group params must account for `G` group blocks and -one shared D block. Hardcoding `G = 1` in a verifier-reachable multi-group path is -invalid. - -## Phase 2 Relation Quotient Requirements - -The multi-group root quotient must: - -- validate `commitments.len() == G`; -- validate `hints.len() == G` on the prover side; -- validate each commitment's row length against that group's params; -- bind public openings through the fused trace term for the whole multi-group batch; -- produce `G` B (commitment) row blocks; -- produce one `z_hat_g` segment per group; -- compute the D rows over `concat(w_hat_0, ..., w_hat_{G-1})`; -- compute per-group A/B quotient rows with the correct per-group `m`, `r`, -`log_basis`, digit depths, and ranks; -- produce a single root `w` for the suffix. - -The existing extra-`z` loop in `compute_relation_quotient` is not sufficient by -itself. Extra `z` segments must be connected to group-scoped equations, not only -added into one aggregate A quotient. - -## Setup Contribution - -Recursive setup contribution uses one setup-product sumcheck over the packed -setup prefix with the additive per-index group weight: - -```text -setup_index_weight(i) = Σ_g setup_index_weight_g(i) -``` - -For Direct and Recursive modes, setup contribution and verifier ring-switch -replay must receive the true group shape: - -```text -num_segments = G -num_polys_per_segment = [K_0, K_1, ..., K_{G-1}] -``` - -Verifier code must never silently construct `num_segments = 1` for a multi-group -proof. - -## Instance Descriptor and Transcript - -### Phase 1 Descriptor Binding - -The current descriptor has `AlgebraSection`, `SetupSection`, `PlanSection`, and -`CallSection`. There is no top-level `CommitSection`, and this multi-group flow -should not add one. - -`CallSection` binds the public multi-group opening shape: - -```text -num_polys -num_commitment_groups -num_polys_per_commitment_group -point_variable_selections -basis_mode -opening_point_arity -opening_batch_digest -``` - -`OpeningClaimsLayout::opening_batch_digest` uses: - -```text -num_vars -num_polynomials -num_commitment_groups -for each group: - group.num_polynomials - prefix point-variable indices as a length-prefixed usize vector -``` - -`PlanSection.effective_schedule_digest` binds -`schedule.append_descriptor_bytes(...)`. When a multi-group schedule is materialized, -the root `LevelParams` descriptor includes `precommitted_groups`; each -`GroupRootParams` descriptor includes its frozen `CommittedGroupProfile`, A key, -B key, block geometry, and digit counts. - -`CommittedGroupProfile` descriptor bytes currently encode: - -```text -group.num_vars -group.num_polynomials -position_index_bits -block_index_bits -log_basis -n_a -n_b -``` - -Changing the group partition or normalized point-variable arity changes the -opening-batch digest. Changing the generated multi-group schedule row or -precommitted group params changes the effective schedule digest. Both digests -are already part of the instance descriptor absorbed by the transcript. - -The transcript absorption order remains: - -```text -instance descriptor -opening batch / group shape -commitments in group vector order -shared opening point -claim values -root messages -suffix messages -``` - -`AKITA_INSTANCE_DESCRIPTOR_VERSION` stays at `1` until the codebase is frozen for -audit. Pre-audit wire-format extensions land without bumping this constant. -After audit freeze, incompatible layout changes must increment it. - -### No Separate Commit Section - -Multi-group opening should not add a `CommitSection` or a separate params digest. The -existing descriptor already has the two bindings needed for this shape: - -- `CallSection.opening_batch_digest` binds the public multi-group opening shape, - including group count, per-group polynomial counts, and point-variable - selections. -- `PlanSection.effective_schedule_digest` binds the materialized schedule. For a - multi-group root, the schedule descriptor includes the root `LevelParams`, its - `precommitted_groups`, each `CommittedGroupProfile`, conservative B ranks, A/B - keys, block geometry, and digit counts. - -Setup seed and policy fields, including the configured basis range, remain bound -through the existing `SetupSection` / `AlgebraSection` -descriptor fields. One-hot chunk size and decomposition policy remain bound -through the existing level/schedule descriptor bytes. - -### Canonical Encoding - -Multi-group opening and schedule encodings use the same canonical byte helpers as -the existing instance descriptor digests in -`crates/akita-types/src/descriptor_bytes.rs`: - -```text -usize -> u64 little-endian -u32 -> u32 little-endian -u128 -> u128 little-endian -usize[] -> usize length prefix, then each element in order -digest -> 32 raw bytes (Blake2b-256 output) -``` - -`CommittedGroupProfile` encodes in this fixed order: - -```text -group.num_vars -group.num_polynomials -position_index_bits -block_index_bits -log_basis -n_a -n_b -``` - -Multi-group schedule precommitted params encode in transcript order through the -materialized root `LevelParams`: - -```text -precommitteds.len() -for g in 0..precommitteds.len(): - CommittedGroupProfile(precommitteds[g]) -``` - -The multi-group opening-batch digest in `CallSection` remains separate and uses the -existing `opening_batch_digest` encoding over: - -```text -num_vars -num_polynomials -num_commitment_groups -for each group: - group.num_polynomials - prefix point-variable indices as a length-prefixed usize vector -``` - -Descriptor digest domain labels: - -```text -effective_schedule_digest = Blake2b-256(schedule.append_descriptor_bytes(...)) -``` - -The multi-group opening phase should not add new proof-body fields beyond the -existing descriptor and batched proof containers. Multi-group proof shape lives in -the opening batch and effective schedule, not in prover-supplied side channels. - -Malformed Phase 2 multi-group descriptor bytes must reject before any -verifier-reachable matrix prefix selection or ring-switch replay. Exact -rejection cases: - -```text -schedule.precommitted_groups.len() + 1 != opening_batch.G -> AkitaError::InvalidProof -any CommittedGroupProfile field overflow or zero where forbidden -> AkitaError::InvalidProof -unknown descriptor version -> SerializationError -group vector order differs from commitment vector order -> AkitaError::InvalidProof -effective_schedule_digest mismatch after recompute -> AkitaError::InvalidProof -scalar [4] opening-batch digest presented as multi-group [1,3] -> AkitaError::InvalidProof -``` - -### Phase 2 Verifier Boundary - -`CommittedGroupProfile` values are not a separate prover-supplied side channel in -the Phase 2 multi-group opening phase. They are derived from the public -`OpeningClaimsLayout`, setup, and config policy, then bound indirectly through -the effective schedule digest. -The verifier must follow this order: - -1. Parse and validate the instance descriptor bytes at the current schema version. -2. Validate that `CallSection.opening_batch_digest` matches the public - `OpeningClaimsLayout`. -3. Reconstruct `AkitaScheduleLookupKey` from the public opening batch, setup, and - config policy. -4. Resolve the multi-group root schedule from that key and compare - `PlanSection.effective_schedule_digest`. -5. Reject if any schedule-derived precommitted layout differs from the layout - recomputed from config policy. -6. Reject if any precommitted group's commitment row count differs from its - frozen `n_b`. -7. Validate commitment row counts and opening-batch routing. -8. Only then run ring-switch replay and suffix verification. - -The verifier must never trust handles, hints, proof-local structs, or a separate -digest for commitment group layout fields; the opening batch and effective -schedule are the sources of truth. - -## Setup Capacity - -Current setup capacity remains expressed as: - -```text -max_num_vars -max_num_batched_polys -max_setup_len -``` - -For eligible one-hot, non-tiered proof-optimized configs, setup-envelope sizing -inflates `max_setup_len` with conservative standalone commitment footprints and -representative one- and two-precommit root shapes. -This scan is a bounded sizing policy, not a certificate that every -planner-constructible group partition fits the materialized setup. - -The planner may construct schedules for other precommitted-group counts. -Commit, prove, and verify recompute the exact matrix envelope from the selected -schedule and concrete opening layout. -They reject if that envelope exceeds `max_setup_len`. -Generic setup deserialization separately applies its field-element allocation -cap before decoding matrix contents. - -There is no public `max_commitment_groups` contract today. -Supporting a planner-derived schedule therefore does not imply that every -setup artifact has capacity for that schedule. - -## Efficiency Rules - -The multi-group root is expected to cost more than a scalar same-point batch when all -polynomials are known up front. The multi-group root pays for: - -- one `z_hat_g` segment per group; -- one B block per group; -- one A block per group in the initial multi-group relation; -- repeated B traversal and padding for unequal `K_g`; -- conservative B ranks for precommitted groups. - -The main offset is the concatenated D relation. It can size D against the number -of group `w_hat_g` segments rather than the total number of polynomials, but this -does not by itself make multi-group roots the preferred path for known-upfront -batches. - -The planner exposes three modes: - -- `G = 1` is `AkitaScheduleLookupKey::single(...)` and delegates to the scalar - schedule. -- All groups known before any commit use the existing scalar same-point batch, -unless the caller explicitly needs separate commitment objects. -- Staggered workflows currently use `ConservativeCommitmentConfig` plus - ordinary `batched_commit` for precommitted groups, then `commit_final_group` - for the final group. Each precommitted group freezes its A/B layout before the - final root selects the shared open basis. - -## Validation Rules - -At conservative precommit time: - -- the group must be nonempty; -- the caller is responsible for supplying polynomial material with the claimed - group shape; -- `log_basis` must be `min_basis(Cfg)`; -- the `CommittedGroupProfile` must be derived by the proof-optimized planner - with `basis_range = (min_basis(Cfg), min_basis(Cfg))`; -- the `CommittedGroupProfile` must determine the same `t_hat_g` shape used by - the commit witness; -- frozen `n_b` must pass `AjtaiKeyParams::try_new` for - `(derived_B_width_g, norm_B(l_outer,g))`; -- the selected params must fit setup capacity. - -At Phase 1 multi-group schedule lookup time: - -- `AkitaScheduleLookupKey::single(final_group)` must delegate to the scalar - scheduler. -- `precommitteds` must be well-formed derived group params. -- The full multi-group key must not be collapsed into a scalar total-polynomial key. -- Commit order does not impose an arity ordering: a precommitted group may have - more variables than the final group, while the final commitment and root - witness retain the final group's source arity. -- Tiered multi-group roots must return `AkitaError::InvalidSetup`. -- Multi-group folded roots must hand off to a singleton recursive suffix; multi-group - terminal root folds remain rejected until the terminal witness layout is - implemented. - -At current `commit_final_group` time: - -- `precommitteds` must be a nonempty list of well-formed - `CommittedGroupProfile`s returned by the actual earlier commits; -- the full `AkitaScheduleLookupKey` must be derivable from those exact ordered - descriptors and the final group layout; -- each precommitted group must keep its `CommittedGroupProfile` `m`, `r`, - `log_basis`, `n_a`, and B width; -- each precommitted group must use the frozen conservative B row count in the - multi-group root relation; -- the final multi-group root schedule must fit setup capacity; -- the last group commitment must match the final group's params; -- the call returns the exact `OpeningScheduleSelection` together with the - commitment and hint. - -At current prove time: - -- `ProverOpeningData` performs only intrinsic construction and alignment checks. -- Concrete prover polynomial shape is an implicit caller contract. Akita does - not validate a semantic source taxonomy before proving; bad material yields - a completeness failure. -- `G > 1` supports `SetupContributionMode::Recursive` when the folded root can - hand off to a singleton recursive suffix. -- Tiered multi-group proofs reject with `AkitaError::InvalidSetup`. - -At current verify time: - -- `OpeningClaims` must be internally consistent. -- `G > 1` with recursive setup contribution verifies against the combined - setup-index weight vector. -- The exact row selection must resolve to the ordered public commitment - profiles and frozen verifier schedule. - -- The verifier must reconstruct the `AkitaScheduleLookupKey` from the public - opening batch, setup, and config policy. -- The verifier must recompute multi-group root params from the key. -- The verifier must reject if a precommitted group's final root layout differs - from its `CommittedGroupProfile`. -- The verifier must reject if a precommitted group's B row count differs from - its frozen conservative `n_b'`. -- The verifier must recompute root `w_len` from the multi-group witness layout. -- The verifier must validate group commitment row counts before ring-switch - replay. -- All malformed sizes must return `AkitaError`, not panic. - -## Unsupported Shape Rejects - - -| Shape | Rejection point | Error | -| ----------------------------------------------- | --------------------------------------- | ---------------------------------------- | -| Tiered preset + multi-group schedule key | `runtime_schedule` / multi-group DP | `AkitaError::InvalidSetup` | -| Tiered preset + `G > 1` proof | Prove / verify entry | `AkitaError::InvalidSetup` | -| Dense grouped key missing from stock catalog | table-backed `runtime_schedule` | `AkitaError::UnsupportedSchedule` | -| Root source disagrees with commitment/catalog policy | schedule validation / generated resolution | `AkitaError::InvalidSetup` | -| Dense polynomial under one-hot source bounds | commit / prove source validation | `AkitaError::InvalidInput` | -| `G > 1` + `witness_chunk.num_chunks > 1` | schedule selection / prove / verify / relation replay | `AkitaError::InvalidSetup` / `InvalidProof` | -| Scalar table lookup collapsing `[1,3]` to `[4]` | scalar key construction / multi-group lookup | table miss or `AkitaError::InvalidSetup` | -| `log_basis != min_basis(Cfg)` at precommit | conservative layout validation / multi-group root params | `AkitaError::InvalidSetup` | - - -## Rollout Plan - -### Phase 0: Opening Claims Cleanup and Guards - -- Clean up the old flattened commitment-group routing from `OpeningClaimsLayout`. -- Make `OpeningClaimsLayout` follow the new group design: - - one shared `point`; - - ordered `groups`; - - each `PolynomialGroupClaims` has `PointVariableSelection` plus dense - evaluations and a commitment. -- Keep `OpeningClaimsLayout::new` as the scalar same-bundle constructor. -- Add `OpeningClaimsLayout::from_group_sizes` for shape-only multi-group batches. -- Bind group partition and point-variable selections in the instance descriptor. -- Add explicit rejects for unsupported multi-group proof paths: - - tiered + `G > 1`; - - recursive setup contribution + `G > 1`; - - dense polynomial multi-group root batching; - - `G > 1` combined with `witness_chunk.num_chunks > 1`; - - scalar table lookup that would collapse a multi-group key into `[sum_g K_g]`. -- Update docs that say multi-commitment same-point folded recursion is "not yet" -to point here. - -Phase 0 is implemented. The old slot/routing vocabulary is gone from -`OpeningClaimsLayout`, multi-group batch shape and descriptor binding exist, scalar -paths still work, and unsupported multi-group proof paths fail explicitly. - -### Phase 1: Scheduler and Conservative Precommit - -- Implemented `AkitaScheduleLookupKey`. -- Implemented generated/DP schedule resolution for multi-group keys without collapsing -`[K_0, K_1, ...]` into `[sum_g K_g]`. -- Threaded multi-group root counts through planner and proof-size formulas: - - `G`; - - `num_t_vectors_total = sum_g K_g`; - - `num_w_vectors_root = sum_g W_g`; - - `num_z_vectors_root = G`; - - `num_z_segments = G`. -- Implemented `CommittedGroupProfile`. -- Implemented conservative B rank selection for standalone groups through - `ConservativeCommitmentConfig`. -- Added generated multi-group table entries for selected one-hot families. -- Kept multi-group opening and multi-group root prove guarded until Phase 2. - -Phase 1 is implemented. Conservative precommit layouts are reproducible from -`PolynomialGroupLayout`, multi-group scheduler lookup/DP fallback is available -for final planning, conservative B rank selection works, and multi-group schedule -negative tests pass. - -### Phase 1.5: Final Group Commitment - -- Implemented `commit_final_group(new_group, precommitted_layouts)`. -- Recompute precommitted layouts under `ConservativeCommitmentConfig`. -- Commit the final group with the final multi-group plan. -- Return the final commitment plus hint only. - -Phase 1.5 is implemented. It validates the final-group commitment layout and -final commitment row count, but it does not produce a multi-group opening proof. - -### Phase 2: Multi-Group Opening - -- Reuse `OpeningClaimsLayout` / `CallSection.opening_batch_digest` for group - partition and point-variable selection binding. -- Reconstruct and validate the full `AkitaScheduleLookupKey` from the public - opening batch, setup, and config policy. -- Bind the final multi-group root schedule through - `PlanSection.effective_schedule_digest`. -- Implement multi-group root witness layout with `concat(w_hat_g)`. -- Route prover root B rows through per-group B computation for `G > 1`. -- Generalize root verifier row counts and terminal witness shapes. -- Support unequal `K_g`. -- Support `SetupContributionMode::Direct`. -- Add folded non-tiered two-group one-hot same-point E2E. - -Phase 2 done means: a final-group commitment can be combined with precommitted -one-hot groups to produce and verify a multi-group same-point opening proof for -unequal `K_g`, with recursive suffix folds remaining singleton. - -### Phase 3: Tables, Performance, and Broader Shapes - -- Add generated table grids for common multi-group one-hot shapes, including unequal -`K_g`. -- Add profile modes for multi-group roots. -- Add fused B kernels if repeated per-group B traversal is too slow. -- Consider per-group D commitments only in a separate spec update with a concrete -cost model and security argument. -- Consider tiered multi-group support in a separate spec update. - -Phase 3 done means: generated multi-group tables exist for the supported -multi-group grid, profile modes report multi-group vs scalar costs, and fused B -kernels land if B-row time is a bottleneck. - -## Test Matrix - -### Unit Tests - -- `OpeningClaimsLayout::from_group_sizes(nv, &[1, 3])` derives two groups. -- `[1, 3]` and `[4]` produce different opening-batch digests. -- Generated group-batch schedule lookup compares precommitted group params, - frozen group params, and `n_b`. -- Descriptor bytes change when a precommitted group's `CommittedGroupProfile` - `m`, `r`, semantic bases, `n_a`, or `n_b` changes. -- Scheduler multi-group root sizing accounts for one `z_hat_g` segment per group. -- Scheduler multi-group D width reports `total_d_w_rings = sum_g w_hat_rings_g`. -- Multi-group terminal root folds reject until the terminal witness layout exists. -- Frozen B rank uses the derived B width and norm from `l_outer,g`. -- `log_basis != min_basis(Cfg)` rejects. - -### Commit Tests - -- `ConservativeCommitmentConfig::batched_commit(group0)` commits with a - reproducible frozen layout. -- Independent conservative precommitted groups do not depend on each other. -- Undersized conservative `n_b` rejects. -- Exceeding setup capacity rejects. -- Dense policies produce exact dense precommit layouts. -- `commit_final_group(group_last, precommitted_layouts)` commits the final group - with multi-group params. -- `commit_final_group` rejects if a precommitted key cannot recompute to a valid - conservative `CommittedGroupProfile`. -- Phase 2: multi-group opening finalization uses the existing opening-batch and - effective-schedule descriptor plumbing; it does not add a handle side channel - or a params digest. - -### Prove / Verify Tests - -- Current prove/verify accept one-hot `G > 1` with direct setup contribution when the - folded multi-group root can hand off to a singleton recursive suffix. -- Current prove/verify accept one-hot `G > 1` with recursive setup contribution when the - folded multi-group root can hand off to a singleton recursive suffix. -- Current prove/verify accept planner-backed dense `G > 1` schedules. -- Current prove/verify reject tiered `G > 1` with `AkitaError::InvalidSetup`. -- Current prove/verify accept the shipped multi-group multi-chunk layout. -- Removed by PR #311: root-direct two-group round trips. -- Implemented: folded non-tiered two-group one-hot same-point round trip. -- Implemented: folded non-tiered unequal group sizes, for example `[1, 3]`. -- Implemented: suffix remains singleton after a multi-group root. -- Implemented: serialize/deserialize multi-group proofs round trip with the current descriptor schema. -- Implemented: opening-batch digest mismatch rejects. -- Implemented: reordered precommitted group vector rejects. -- Phase 2: duplicate or missing precommitted group layout derivation rejects. -- Phase 2: unknown descriptor version rejects for multi-group proofs. -- Phase 2: scalar `[4]` descriptor bytes do not verify as multi-group `[1, 3]`. -- Phase 2: swapping group commitments rejects. -- Phase 2: tampering group `1` opening rejects. -- Implemented: extension-field groups with unequal arities use one - maximum-arity EOR sumcheck; tampering the smaller group opening rejects. -- Phase 2: tampering group `1` hint or `t_hat` segment rejects. -- Phase 2: truncating one group's commitment rows rejects. -- Phase 2: changing a precommitted group's `CommittedGroupProfile` rejects. -- Phase 2: changing a precommitted group's conservative `n_b'` rejects. -- Phase 2: descriptor `[1, 3]` with proof `[4]` rejects. - -### Planner and Table Tests - -- Multi-group table lookup misses rather than collapsing to a scalar `[sum_g K_g]` -key. -- Generated multi-group entries, once emitted, match DP. -- Root `w_len` from planner matches the Phase 2 prover-built multi-group witness length. -- Singleton `G = 1` multi-group schedule lookup delegates to the scalar path. -- Phase 2 setup envelope scans include unequal partitions such as `[1, 3]`. - -### Performance Tests - -Compare multi-group `G = 2, K = [1, 3]` against scalar `[4]` under the active -one-hot preset. Collect proof bytes, B-row time, DP fallback time, and -descriptor size. - -Baseline scalar command: - -```bash -AKITA_MODE=onehot_fp128_d64 AKITA_NUM_VARS=28 cargo run --release --example profile -``` - -Multi-group command after profile mode exists: - -```bash -AKITA_MODE=onehot_fp128_d64_multi_group AKITA_NUM_VARS=28 \ - AKITA_GROUP_SIZES=1,3 cargo run --release --example profile \ - --no-default-features --features parallel,profile-ci -``` - -Pass criteria for the spec gate: +Akita supports commitments that are created separately and later opened in one +root proof. Each precommitted group carries the exact public A and B geometry +that was used to commit it. The final root schedule is selected from the final +group layout and the ordered list of those exact profiles. -```text -multi-group proof bytes >= scalar [4] proof bytes for the same num_vars -multi-group B-row time is reported separately from scalar baseline -multi-group descriptor size > scalar descriptor size when G > 1 -DP fallback time for multi-group keys is reported even when tables miss -``` +This file is the current contract. The archived record preserves earlier +designs based on `ConservativeCommitmentConfig`, reconstructed layouts, and +ordinary `batched_commit`. Those APIs have been removed. -Track B-row time from repeated per-group B traversal. -Track proof-size delta from extra `z_hat` segments and wider `r` tails. -Track DP fallback time and table hit rate. +## Canonical types -## Security Notes +`CommittedGroupProfile` is the single source of truth for a precommitted group. +It freezes: -Conservative B rank is necessary but not sufficient by itself. The security -argument also depends on: +- the polynomial group layout; +- live ring and block geometry; +- the independent inner and outer bases and digit counts; +- the exact inner and outer SIS matrices, including ranks and bounds. -- effective-schedule binding of the materialized multi-group root; -- verifier recomputation of multi-group root params from that key; -- group partition binding; -- frozen precommit layout binding for every precommitted group; -- equality between the final precommitted-group B row count and the frozen -conservative `n_b'`; -- setup capacity covering the selected matrix prefixes; -- D rank and width sized for the full concatenated root witness; -- rejecting unimplemented tiered and recursive setup-contribution combinations. +`AkitaScheduleLookupKey` contains one final group layout and an ordered list of +exact precommitted profiles. Profile order is part of the schedule and +transcript identity. -No verifier path may trust prover-supplied group layout data without recomputing -it from the public opening batch, setup, and config policy. +The final root must use every frozen profile exactly. It may choose fresh root +opening and D geometry, but it must not reconstruct or change a precommitted A +or B relation. -## Alternatives Considered +## Standalone profile selection -### Scalar re-bundling when all polynomials are known +Offline generation calls the canonical standalone planner for each supported +group layout. It searches the configured inner basis domain with the root +opening basis pinned to the minimum configured opening basis. It keeps a Pareto +frontier for diagnostics and selects by: -The caller can use the existing same-point `batched_commit` path and commit all -polynomials in one commitment object. This is the preferred path when the -polynomials are available at the same time and the caller does not need separate -commitment identities. +1. exact outgoing witness length; +2. padded A or B setup fields; +3. exact A or B setup fields; +4. canonical profile descriptor bytes. -This path avoids per-group A/B setup and avoids per-group `z_hat_g`, COMMIT, -and A blocks. It does not support workflows where earlier commitments must keep -their original identity. +There is no separate one-variant precommit selection policy. A future change to +this objective must use a real catalog identity and update this spec. -### Known-final-schedule precommit +Generated profile lookup is strict. An unlisted layout returns +`UnsupportedSchedule`. The runtime does not run the offline planner. -A caller that knows the final multi-group root layout before committing earlier -groups could freeze those exact A/B layouts instead of using the minimum-outer-basis -precommit policy. This is not a separate implemented API today. +## Commitment flow -### Shared A for identical group layouts +The current staggered flow is: -Groups with identical dimensions could share one A block and use a fresh -group-batching challenge to combine their A equations. This could reduce the -`G * n_a` A-row cost in symmetric workloads. +1. Resolve a generated `CommittedGroupProfile` for each early group. +2. Commit each early group with `commit_group` and that exact profile. +3. Pass the ordered profiles into `commit_final_group` with the final group. +4. Build the exact `AkitaScheduleLookupKey` and resolve the generated root row. +5. Commit and prove with the resolved root parameters. -This is not part of the initial multi-group opening. It needs a separate soundness -argument because the current design isolates each group with its own A relation. +`batched_commit` retains its scalar meaning. It commits one bundle under one +scalar schedule. It is not the precommit API for this flow. -### Per-group D outputs +The commitment and opening claims must use the same ordered group profiles. +Malformed, missing, reordered, or altered profiles return `AkitaError`. -The design could replace `D * concat(w_hat_g) = v` with one `D_g * w_hat_g = v_g` per group. This can make each D relation narrower, but it also sends more D -outputs and adds more relation rows. +## Planning and runtime ownership -The initial multi-group opening keeps one concatenated D relation. A per-group D design should only be -adopted if a later cost model shows a win for a supported workload. +`akita-planner` owns standalone profile search and grouped root search. +`akita-schedules` owns generated catalogs, catalog identity checks, expansion, +and strict runtime resolution. Verifier crates do not depend on the planner. -### Two-phase prove and link +Generated families carry both standalone profiles and selected grouped rows. +Generation holds a typed planning request with its key and honest fold policies +through one materialization pass. Unsupported requests are omitted. Runtime +table misses remain unsupported. -The prover could prove each group separately and then prove a linking statement -that combines the group openings. This keeps each group close to the singleton -path, but it adds extra transcript and proof material. It also moves complexity -into a new linking proof. +## Security and binding -This spec does not choose that shape because the multi-group root keeps one opening -proof and one recursive suffix. +Every matrix rank comes from the canonical role-aware SIS coverage and secure +rank lookup. The final planner cannot replace a frozen matrix with a smaller +one. Independent inner and outer bases are included in profile descriptor +bytes. The effective root schedule binds the final group, ordered precommitted +profiles, fold topology, terminal response shape, and challenge policy. -## Resolved Design Decisions +Verifier-reachable code rejects malformed data. It must not panic, allocate +from unchecked lengths, or invoke the planner. -The following choices close the open questions from the first draft: +## Acceptance criteria -1. **Public API shape:** use `ConservativeCommitmentConfig` with ordinary - `batched_commit` for precommitted groups, and expose `commit_final_group` for - the final-group commitment. Do not add a separate `commit_group` handle layer - in the initial API rollout. -2. **Setup capacity:** keep the public setup surface on `max_num_vars`, - `max_num_batched_polys`, and `max_setup_len` for Phase 1. Add an explicit - group-count setup API field only if Phase 2 envelope scans show a need. -3. **Recursive setup contribution:** explicitly delay generalization until - a later root-layout generalization. The multi-group opening phase keeps the - existing reject. -4. **Planner key exposure:** keep `AkitaScheduleLookupKey` as the canonical - config/planner key. Public final-commit callers pass - `PolynomialGroupLayout`s for precommitted groups; opening callers should use - multi-group `OpeningClaims` vectors and the effective schedule digest rather than - proof-local side channels. +- Standalone generation emits exact profiles for every supported layout. +- Profile descriptor changes alter lookup and effective schedule identity. +- `commit_group` uses the supplied profile without reconstructing it. +- `commit_final_group` uses the exact ordered profiles supplied by the caller. +- Reordered, altered, unknown, or undersized profiles reject. +- Scalar keys normalize through `AkitaScheduleLookupKey::single`. +- Grouped roots hand one compact witness to the recursive suffix. +- Prover and verifier agree on group ordering, opening claims, and schedule + descriptor bytes. +- Generated catalogs and their module wiring publish as one staged batch with + rollback. Crash durability is outside this file's contract. -## Open Questions +## Deferred work -None for the initial multi-group implementation. Revisit only if tiered multi-group or -known-final-schedule precommit become active follow-up specs. +Applications may add workload-specific profile and grouped rows to generated +catalogs. New source families, broader group grids, and new selection objectives +require explicit catalog identity and tests. They must not be inferred as +runtime fallbacks. diff --git a/specs/schedule-catalog-ownership.md b/specs/schedule-catalog-ownership.md index 9fbd38290..154f52814 100644 --- a/specs/schedule-catalog-ownership.md +++ b/specs/schedule-catalog-ownership.md @@ -517,7 +517,8 @@ pub struct GeneratedScheduleCatalogIdentity { pub ring_subfield_norm_bound: u32, pub claim_ext_degree: usize, pub chal_ext_degree: usize, - pub basis_range: (u32, u32), + pub inner_basis_range: (u32, u32), + pub opening_basis_range: (u32, u32), pub onehot_chunk_size: usize, pub tiered: bool, pub ring_dimensions: &'static [usize], diff --git a/specs/setup-offloading-planner.md b/specs/setup-offloading-planner.md index 2625e0746..1da6da5d4 100644 --- a/specs/setup-offloading-planner.md +++ b/specs/setup-offloading-planner.md @@ -41,12 +41,13 @@ suffix planning also assumes one commitment group, while complete offloading requires the successor to prove two openings together: its newly committed folded witness and the setup-prefix commitment selected by the preceding fold. -This design adds `RecursiveCommitmentConfig`, parallel to -`ConservativeCommitmentConfig`. The ordinary `Cfg` always resolves a -direct-only schedule. Selecting the recursion adapter activates setup -offloading only for the planner's genuine multi-group path. Scalar/singular -keys continue through the ordinary direct planner and ordinary generated -catalog, even under the recursion adapter. +This design adds `RecursiveCommitmentConfig`. Precommitted groups use the +generated `CommittedGroupProfile` and `commit_group` flow specified in +[`multi-group-batching.md`](multi-group-batching.md); the earlier conservative +config adapter has been removed. The ordinary `Cfg` resolves a direct-only +schedule. Selecting the recursion adapter activates setup offloading only for +the planner's genuine multi-group path. Scalar keys continue through the +ordinary direct planner and generated catalog. For each supported nonterminal edge on the genuine multi-group path, the planner considers two transitions: @@ -59,11 +60,11 @@ Offloaded: successor receives [S_prefix, W] An offloaded transition is feasible only when the successor can commit the exact prefix, the complete successor witness contracts the entering balanced witness by at least threefold, and the resulting suffix strictly reduces the -first remaining direct setup scan. The planner may select zero, one, or several +power-of-two capacity of the first remaining direct setup scan. The planner may select zero, one, or several offloaded levels. No fold index, contiguity rule, or prefix-size threshold decides the count. -The selected schedule minimizes the first remaining direct setup footprint and +The selected schedule minimizes the padded capacity of the first remaining direct setup footprint and then exact estimated proof bytes, including Stage 3. Equal candidates then use the smaller total physical setup envelope and the canonical schedule descriptor. Recursive successors use the existing multi-group representation with the setup @@ -269,6 +270,13 @@ optional setup field budget = policy.setup_field_budget minimum offload contraction = policy.min_offloaded_witness_contraction ``` +The selection objective is an explicit catalog-identity input. Recursive setup +capability and the admitted ring-dimension domain do not infer or rewrite it. +The recursion adapter selects `MinFirstDirectSetupThenPayload` for genuine +multi-group planning. Its scalar boundary and standalone precommit planning +explicitly select `MinEstimatedProofPayload` while disabling recursive setup +search. + The planner does not use artifact registry contents to decide mode. Registry contents are setup-instance state and could differ between prover and verifier. It decides from public geometry, then setup construction must materialize every @@ -1038,10 +1046,10 @@ the candidate score that decides whether and how long to offload. does not impose contiguity as a structural rule. - [x] Every selected offloaded edge contracts the entering balanced witness by at least threefold after counting both the recursive witness and padded - full-field prefix inputs, and strictly reduces the first remaining direct - setup scan. -- [x] The selected schedule lexicographically minimizes first direct setup - footprint and exact estimated proof bytes within the supported setup + full-field prefix inputs, and strictly reduces the padded capacity of the + first remaining direct setup scan. +- [x] The selected schedule lexicographically minimizes first direct padded setup + capacity and exact estimated proof bytes within the supported setup envelope. - [x] The materialized estimate reports the exact setup envelope and selected offload-edge count, and recomputation agrees with the cached DP value. @@ -1146,13 +1154,17 @@ Track: - proof bytes per fold by mode; - Stage 3 bytes per offloaded edge; - balanced-witness contraction for every selected offloaded edge; -- first remaining direct setup footprint; +- first remaining direct padded setup capacity and natural length; - number of selected offloaded edges; - verifier cycles saved by eliminating the setup scan; - exact selected proof bytes against the direct-only schedule. -The local-minimum suffix heuristic must remain within the existing recursion -bound. The planner must not enumerate a full split frontier. +The catalog identity binds `RecursiveSplitSearchPolicy`. Production catalogs +use `BoundedBalancedExtremesV1`: states through twelve reduced variables are +exhaustive, while larger states search both extremes and a radius-two window +around the balance estimate. `Exhaustive` remains available for small-domain +oracles and audited workloads. Results under the bounded policy are selected +under that named domain and are not described as globally optimal. ## Execution @@ -1228,9 +1240,10 @@ generated lookup, and DP fallback aligned. ### Exhaustive suffix candidate frontier -Rejected. Keeping all feasible splits grows quickly with recursion depth. The -existing locally minimized candidate heuristic remains the bounded planning -model; setup compatibility is an additional local filter. +Available as the `Exhaustive` catalog-bound policy for oracle coverage and +explicit workloads. Production uses `BoundedBalancedExtremesV1` because the +full frontier grows quickly with recursion depth. The policy tag prevents the +two search domains from sharing a catalog identity. ### Generic carried-opening object diff --git a/specs/sis-quantum128-scalar-n-table.md b/specs/sis-quantum128-scalar-n-table.md index 4864e3f26..c949b12d1 100644 --- a/specs/sis-quantum128-scalar-n-table.md +++ b/specs/sis-quantum128-scalar-n-table.md @@ -30,12 +30,12 @@ The generated artifact stores scalar cutoffs with key ring dimension. The role determines which ring dimensions, coefficient bounds, and ranks the generator must cover directly. -A, B, D, and F do not share one forced geometry. B and D often use the current -ring dimension or a smaller dimension. This includes dimension 32 for a 128 bit -field. A currently uses dimension 64 or larger and may use dimensions above the -other matrices. The generator filters requests through the canonical role -coverage, then deduplicates two requests only when they produce the same -scalar SIS key. +A, B, D, and compression do not share one forced geometry. Production B and D commitment +matrices use ring dimensions 64 or larger. A currently uses dimension 64 or +larger and may use dimensions above the other matrices. Smaller dimensions are +limited to the separate fixed compression cells. The generator filters requests +through the canonical role coverage, then deduplicates two requests only when +they produce the same scalar SIS key. Policy identifier: @@ -53,25 +53,27 @@ The implementation pinned by this specification uses ADPS16 quantum exponent module rank `20`, and a per-cell search cap of `6_400_000_000_000`. The exact modulus profiles are `Q32Offset99`, `Q64Offset59`, and `Q128OffsetA7F7`. -The canonical role coverage has A dimensions `64, 128, 256` for every modulus -profile, plus q128 Inner/A dimension `512`. B and D have dimensions -`32, 64, 128, 256`, and F has dimensions `32, 64, 128, 256`. Every cell has -maximum module rank `20`. A uses the -explicit planner bucket set +The canonical role coverage has Inner/A dimensions `64, 128, 256` for every +modulus profile, plus q128 Inner/A dimension `512`. Outer/B and Open/D have +dimensions `64, 128, 256`. The separate fixed compression cells use their +protocol-specific dimensions. Every commitment-matrix cell has maximum module +rank `20`. Inner/A uses the explicit planner bucket set `2, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, -16777215, 33554431, 67108863`. B, D, and F use the exact gadget anchors +16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, +2147483647, 4294967295, 8589934591, 17179869183, 34359738367`. +Outer/B and Open/D use the exact gadget anchors `3, 7, 15, 31, 63, 127, 255`. The generator accepts the complete rectangular CLI domain for reproducibility, -then discards every dimension and bound pair that is not reachable from A, B, -D, or F in the canonical coverage. The checked-in Rust files contain the -resulting scalar union. The checked-in audit is scalar-key based, so role -origins are reconstructed from the canonical coverage rather than repeated in -each audit row. This keeps runtime identity role-aware while equal scalar -cells are stored once. - -The q128 Inner/512 cell adds 520 direct estimator requests: 26 coefficient +then discards every dimension and bound pair that is not reachable from the +three commitment-matrix roles or the fixed compression cells. The checked-in +Rust files contain the resulting scalar union. The checked-in audit records +each ring origin, including its accepted and rejected boundary witnesses. The +runtime projection takes the minimum scalar cutoff when different ring origins +map to the same scalar key. + +The q128 Inner/512 cell adds 700 direct estimator requests: 35 coefficient buckets times 20 module ranks. The distinct extension digest gates these slices; the original digest cannot authorize D512. @@ -95,12 +97,15 @@ For a candidate scalar instance `(modulus_profile, B, n, m)`, run the infinity norm LGSA optimizer under the dedicated ADPS16 quantum cost model with exponent `0.2650`. -Base-table generation may use `local-minimum` discovery, but certifies its -accepted boundary and immediate rejected successor with the exhaustive -configured beta/zeta search. The additive D512 table uses the pinned -lattice-estimator-compatible local-minimum beta/zeta search directly because -its wide zeta domain is outside the exhaustive implementation's supported -range. That profile distinction is committed by the D512 extension digest. +Base-table generation uses `local-minimum` discovery, then certifies its +accepted boundary and immediate rejected successor with proven-pruned beta and +full-domain zeta search. The beta search visits values from 40 through the +capped Euclidean baseline and stops once the monotone ADPS16 reduction-cost +lower bound exceeds the best complete candidate. For fixed beta under ADPS16/LGSA, +the modeled attack minimum occurs at the complete-profile transition or its +immediate predecessor, with the zero-coordinate boundary represented by +`zeta = 0` and `zeta = 1`. Checking those candidates covers the wide D512 +domain without changing its width policy. A candidate passes only when the certified estimate returns a finite score or an explicit above-target lower bound. A finite score or represented lower bound @@ -213,10 +218,9 @@ Runtime callers use this canonical key: ```rust pub enum SisMatrixRole { - A, - B, - D, - F, + Inner, + Outer, + Open, } pub struct SisTableKey { @@ -252,19 +256,20 @@ pub struct SisRoleCell { The initial coverage follows these rules: - B and D include every ring dimension that the planner may assign to those - matrices. For the 128 bit field this includes dimension 32. + matrices. Their minimum production commitment dimension is 64. - A includes every ring dimension that the planner may assign to A. Its current minimum is 64. Its cells may use larger dimensions than B and D. - Q128 additionally exposes Inner/A dimension 512 for future mixed-ring use. This cell has ranks `1..=20` and is gated by its extension digest. -- F has its own list. It does not inherit A, B, or D coverage without an - explicit equality in the planner contract. +- Compression has its own fixed cells outside `SisMatrixRole`. It does not + inherit commitment-matrix coverage. - A new mixed dimension planner choice must update the matching role coverage and generated cells in the same change. -The spec does not force the four role cell sets to be equal. The implementation -must use the actual planner domain as the source of truth. It must not form an -extra product of all dimensions and bounds within one role. +The spec does not force the three role cell sets or compression cells to be +equal. The implementation must use the actual planner domain as the source of +truth. It must not form an extra product of all dimensions and bounds within +one role. ### Stored scalar shape @@ -398,10 +403,10 @@ Generation provenance includes: - coefficient cell rules and role coverage; - search caps and review margins. -The checked in table and audit artifact must have a shared digest. The current -compact audit does not duplicate beta and zeta witnesses or role labels on -every scalar row; those details remain generator-side evidence and the -certificate status is committed in the audit and digest. +The checked in table and audit artifact must have a shared digest. The audit +records accepted and rejected beta and zeta witnesses for every generated ring +origin. Role admission remains canonical runtime data and is committed +indirectly through the set of generated origins and the policy review. The digest is SHA3-256 over the fixed UTF-8 domain tag `akita-sis-table-digest-adps16-quantum-128bit\0`, followed in this order by the generated files @@ -414,10 +419,11 @@ The additive q128 Inner/512 coverage uses a separate digest without replacing the base artifact identity. SHA3-256 commits to the domain tag `akita-sis-table-q128-inner-d512-direct-v1\0`, the 32-byte base digest, the exact q128 modulus as a little-endian `u128`, then `(d, search_cap, max_rank)` -as little-endian `(u32, u64, u32)`, followed by the coefficient-bucket count, +as little-endian `(u32, u64, u32)`, followed by the coefficient-bucket count as +an unsigned little-endian `u64`, the buckets as little-endian `u128`s, and all widths in bucket/rank order as little-endian `u64`s. The resulting digest is -`c2027a80d84b01dbbffae571cb9bf0e9686db6e762c5a4202d5e53a306e6cace`. +`267f1d1fd2cd64fac57fb61d2a2ece92eb0e7b7dc22af4dd0229c0f28a9e1d8b`. Existing schedules retain the base digest. ## Invariants @@ -460,10 +466,9 @@ Existing schedules retain the base digest. - [x] The policy ID commits to all acceptance semantics. - [x] Exact modulus profiles replace size only family selection. - [x] Role coverage comes from the planner domain. -- [x] B and D cover every supported lower dimension, including dimension 32 for - the 128 bit field. +- [x] B and D cover every supported commitment dimension, starting at 64. - [x] A covers dimension 64 and every larger dimension the planner may choose. -- [x] F has explicit coverage. +- [x] Compression has explicit fixed-cell coverage. - [x] The scalar table is the deduplicated union of canonical reachable role cells. - [x] The generator filters unreachable rectangular CLI requests before @@ -494,7 +499,7 @@ Test these cases: - security that does not increase as `m` grows; - exact scalar equivalence across two role origins; - exact modulus mismatch rejection; -- Q128 B and D requests at dimension 32; +- rejection of B and D commitment requests below dimension 64; - A requests at dimension 64 and above; - role specific coefficient rounding; - a missing required role cell; @@ -507,10 +512,10 @@ Test these cases: Runtime performs static table lookup only. -Offline generation estimates one copy of each reachable scalar cell. Base -cells retain exhaustive boundary certification. D512 discovery and boundary -evaluation use the pinned lattice-estimator-compatible local search. The -checked-in artifact is generated offline; runtime never invokes the estimator. +Offline generation certifies every reachable ring origin. The runtime +projection deduplicates equal scalar keys. Every cell retains exhaustive-beta, +proven-pruned-zeta boundary certification. The checked-in artifact is generated +offline; runtime never invokes the estimator. ## Design notes diff --git a/specs/terminal-fold-cutover.md b/specs/terminal-fold-cutover.md index 54520efae..3f22b189e 100644 --- a/specs/terminal-fold-cutover.md +++ b/specs/terminal-fold-cutover.md @@ -185,7 +185,7 @@ New / updated assertions added by this PR: `akita-planner/src/schedule_params.rs` overrides the placeholder Direct-step shape with the true terminal shape (D-block dropped) after suffix recursion returns. Called from both - `derive_optimal_suffix_schedule` (recursive folds; recursive vector + `derive_selected_suffix_schedule` (recursive folds; recursive vector counts) and `find_optimal_schedule` (root; batched vector counts). Feature combinations covered: default (`parallel`), `zk`,