Skip to content
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

Replaced some overflowing muls with wrapping muls #40

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

NCGThompson
Copy link
Contributor

overflowing_muls are slow, and likely will be even after #21 is mixed. This pull request makes the number of overflowing_muls in all pow functions O(1) with exp. Also, I256::checked_mul now uses umulc rather than imulc.

I didn't benchmark the pows, so I was conservative with what I tried to optimize. If pow is being called a lot with high exponents, it might be worth taking a closer look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant