update 2-adic generator to 0x64fdd1a46201e246
#1579
Merged
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.
0x64fdd1a46201e246^(2^30) == 0x1000000000000
holds modulo p, as desired. we don't actually change the FFT in this PR; but this paves the way for that as a future change.upon changing the main 2^32nd root of unity of Goldilocks, a few auxiliary values also need to change. these include:
MULTIPLICATIVE_GROUP_GENERATOR^((p - 1) / 2^32) == POWER_OF_TWO_GENERATOR
holds. this isn't too hard to construct; essentially, it amounts to finding a multiplicative generator ofX^2 - 7
, we now get 2^33-order 2-adicity; the valueEXT_POWER_OF_TWO_GENERATOR
needs to be a primitive 2^33nd root of unity which moreover liftsPOWER_OF_TWO_GENERATOR
, in the sense thatEXT_POWER_OF_TWO_GENERATOR^2 = POWER_OF_TWO_GENERATOR
. this is a bit tricky to do; we were able to construct this efficiently using essentially a Pohlig–Hellman-type idea.EXT_MULTIPLICATIVE_GROUP_GENERATOR
ofEXT_MULTIPLICATIVE_GROUP_GENERATOR^((p^2 - 1) / 2^33) == EXT_POWER_OF_TWO_GENERATOR
holds.we also need to do something analogous for the quartic and quintic extensions.