crypto: Fold the pairing line coefficients into one function - #1639
Draft
chfast wants to merge 1 commit into
Draft
crypto: Fold the pairing line coefficients into one function#1639chfast wants to merge 1 commit into
chfast wants to merge 1 commit into
Conversation
lin_func and lin_func_and_add computed the same line coefficients: t[0] = (x0 − U2)·z0³ is −H·z0³ for H = U2 − x0, and t[1] and t[2] match term for term. Make lin_func the single implementation, returning the H and R terms the addition needs so lin_func_and_add only adds the point update; z0² and z0³ are no longer needed there since Z3 = H·z0. Its doc comment was a copy of lin_func_and_add's, describing an addition lin_func does not perform and a P2 parameter neither function has. The always_inline is load-bearing: without it the struct return costs about 0.3%, with it the change is instruction-neutral.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1639 +/- ##
==========================================
- Coverage 97.71% 97.71% -0.01%
==========================================
Files 171 171
Lines 15607 15597 -10
Branches 3610 3610
==========================================
- Hits 15251 15241 -10
Misses 269 269
Partials 87 87
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
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.
lin_func and lin_func_and_add computed the same line coefficients:
t[0] = (x0 − U2)·z0³ is −H·z0³ for H = U2 − x0, and t[1] and t[2] match
term for term. Make lin_func the single implementation, returning the H
and R terms the addition needs, so lin_func_and_add contributes only the
point update; z0² and z0³ drop out of it because Z3 = H·z0. Its doc
comment described an addition it does not perform and a P2 parameter that
exists in neither function.
Draft because of a codegen risk: the operation counts are unchanged, but
the naive form regresses about 0.3% since the 128-byte LineTerms return
blocks optimization. always_inline on lin_func brings it back to neutral.
That makes the attribute load-bearing, which is worth a closer look before
a readability change lands on this path.
🤖 Generated with Claude Code