-
Notifications
You must be signed in to change notification settings - Fork 407
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
perf: PairingCheck
for BN254, BLS12-381, BLS12-377 and BW6-761
#1365
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Look great to me!
Thanks for the great work! ❤️
…perf/pairing-check
PairingCheck
for BN254 and BLS12-381PairingCheck
for BN254, BLS12-381 and BLS12-377
PairingCheck
for BN254, BLS12-381 and BLS12-377PairingCheck
for BN254, BLS12-381, BLS12-377 and BW6-761
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. However I think currently there is too much copied implementation. It works, but in the future when we want to target more optimizations/refactors then I'm afraid we could have mismatch between different code paths.
I would try to refactor common parts into separate functions and then use function calls instead. I can have a try at it.
Right, I'll try to refactor some bits. |
Description
This PR saves the squarings previously needed in
AssertFinalExpIsOne
forPairingCheck
for BN254, BLS12-381, BLS12-377 and BW6-761 elliptic curves.See discussion #1347.
Type of change
How has this been tested?
TestPairingCheckTestSolve
tests pass.How has this been benchmarked?
The PR saves:
Checklist:
golangci-lint
does not output errors locally