Replaced some overflowing muls with wrapping muls #40
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.
overflowing_mul
s are slow, and likely will be even after #21 is mixed. This pull request makes the number ofoverflowing_mul
s in allpow
functions O(1) withexp
. Also,I256::checked_mul
now usesumulc
rather thanimulc
.I didn't benchmark the
pow
s, so I was conservative with what I tried to optimize. Ifpow
is being called a lot with high exponents, it might be worth taking a closer look.