arithmetic: Rewrite limbs_reduce_once.
#2435
Open
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.
Move the function to
arithmeticfromlimb. This is step towards moving all arithmetic out oflimb.Change the signature so that the reduction is done separately instead of in-place. It was already being done separately in
bigintand it costs very little, if anything, to do the same in the other caller inec.Optimize the implementation to take advantage of the fact that
randado not alias each other. To do so, replaceLIMBS_reduce_oncewith two separate helper functions,LIMBS_subandLIMBS_cmov.As part of doing this, ensure we're not passing any empty slices to the relevant C code.