Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix test_fft for BLS12-381 domain 2^32 * 3 #547

Merged
merged 1 commit into from
Dec 17, 2022
Merged

Fix test_fft for BLS12-381 domain 2^32 * 3 #547

merged 1 commit into from
Dec 17, 2022

Conversation

weikengchen
Copy link
Member

@weikengchen weikengchen commented Dec 17, 2022

Description

In some TurboPlonk implementations, a degree-five gate is being used. So, there are two domains being used.

  • one 2^k
  • another one 2^k * 2 * 3 (to allow degree-five gates and some hiding degrees)

To allow the algorithm to use a mixed-radix domain (instead of 2^k * 2 * 2 * 2), we want to add the small subgroup base for BLS12-381's Fr. However, the test_fft test appears to be insufficient for 2^32 already, not to mention 2^32 * 3.

Note that this improvement is important in practice because it saves 25% of the MSM when using Lagrange bases.

Also, the test_fft only tests 0..ADICITY, but it should be 0..=ADICITY.


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (master)
  • Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Re-reviewed Files changed in the GitHub PR explorer

N/A:

  • Wrote unit tests
  • Updated relevant documentation in the code
  • Added a relevant changelog entry to the Pending section in CHANGELOG.md

@Pratyush Pratyush merged commit d5f00ca into master Dec 17, 2022
@Pratyush Pratyush deleted the fft-for-bls branch December 17, 2022 06:42
andrewmilson added a commit to andrewmilson/algebra that referenced this pull request Jan 1, 2023
* upstream/master: (29 commits)
  Fix some clippy lints (arkworks-rs#570)
  Correct tag name & complete command suggestion (arkworks-rs#569)
  Open a "release-PR" against a `releases` branch (arkworks-rs#566)
  Allow to overwrite default impl of `msm` in TwistedEdwards form (arkworks-rs#567)
  Remove poly-benches. (arkworks-rs#558)
  DO NOT MERGE YET. Release 0.4 (arkworks-rs#512)
  otherwise downstream users that have not migrated will not see warning (arkworks-rs#563)
  use `into_bigint()` in `Debug` for `Fp<P, N>` (arkworks-rs#562)
  Add `frobenius_map_in_place` (arkworks-rs#557)
  Fix test_sw_properties for some cofactor groups (arkworks-rs#555)
  Move h2c tests to test-templates (arkworks-rs#554)
  impl `CanonicalSerialize/Deserialize` for `BigUint` (arkworks-rs#551)
  Fix MontFp issue in fields with 64 * k bits (arkworks-rs#550)
  Fix tests for Modulus plus one div four (arkworks-rs#552)
  fix (arkworks-rs#547)
  Rename all `*Parameters` to `*Config` (arkworks-rs#545)
  Fix doc-comment on `SWUMap` and CamelCase `(CO)DOMAIN`
  Small cleanups in hash-to-curve (arkworks-rs#544)
  Allow to overwrite the default implementation of `msm` (arkworks-rs#528)
  Move `multi_miller_loop` and `final_exponentiation` into `BW6Config` (arkworks-rs#542)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants