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.
[ready to merge]
Currently,
Fp24
is implemented as a towerFp->Fp2->Fp4->Fp8->Fp24
. The initial choice of this was to allow XTR-based compression ofGT
elements (which we haven't implemented yet). On the application side, we don't need the compression now, but maybe we would if we decide to implement Inner Pairing Product Argument (IPPA). This PR experiment with another choice of towerFp->Fp2->Fp4->Fp12->Fp24
. On the one hand, this has the advantage of faster inversion and conjugation asFp24
would be a quadratic extension field. On the other hand, theq^4
-th power Frobenius (FrobeniusQuad()
) is slower as we don't useFp8
elements anymore (on whichFrobeniusQuad()
acts asConjugate()
). The overall speedup in pairing is negligible as these operations are not very significant. However, as we are trying to speedup inverses inFp
(#80), it might be interesting to switch to this tower.Bench: