Open
Conversation
SmoothSubgroupDomain for fields with low two-adicity (BW6-767 Fr has TWO_ADICITY=1), using Good-Thomas + Rader's and Cooley-Tukey + Rader's mixed-radix FFT strategies. - domain type is now generic (D: EvaluationDomain<F>) throughout piop, utils, transcript modules - domain size 1034 (2×11×47) for BW6-767 - BW6-767 GLV endomorphism constants - parallelized with rayon
Thread D: EvaluationDomain<F> through all core structs so both Radix2 (BW6-761) and SmoothSubgroup (BW6-767) domains work transparently.
Three issues fixed: 1. fork fflonk to remove TWO_ADICITY check in KZG SRS generation 2. find_multiple_domain ensures 2x/4x domains are proper multiples of base domain size 3. remove power-of-2 assumptions in PIOP (rotate_left, vanishing poly eval, last-point indexing) BW6-767 APK proof: 773 bytes, keyset 1033, domain 1034.
compute_block_size() finds the largest divisor of domain_size that fits in the field bit capacity, replacing hardcoded 256. Adds packed scheme test for BW6-767 (block=94, 11 chunks).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on the work previously started here #47
Summary
instancesmodule with concrete configurations for both BLS12-377/BW6-761 and BLS12-381/BW6-767.SmoothSubgroupDomainfor fields like BW6-767 Fr (TWO_ADICITY=1), using Good-Thomas + Rader's and Cooley-Tukey + Rader's mixed-radix FFT strategies. Domain size 1034 (2×11×47) for BW6-767.D: EvaluationDomain<F>through all core structs so bothRadix2(BW6-761) andSmoothSubgroup(BW6-767) domains work transparently.TWO_ADICITYcheck in KZG SRS generation, ensure 2x/4x domains are proper multiples of base domain size, and remove power-of-2 assumptions in PIOP (rotate_left, vanishing poly eval, last-point indexing).compute_block_size()finds the largest divisor of domain size that fits in the field bit capacity, replacing the hardcoded 256-bit block size.Results
BW6-767 APK proof: 773 bytes, keyset size 1033, domain size 1034.
Testing
cargo testpasses for existing BW6-761 testsbw6_767_apkintegration test passescompute_endotest