Skip to content

Replaced some overflowing muls with wrapping muls#40

Open
NCGThompson wants to merge 2 commits into
nlordell:mainfrom
NCGThompson:better-exponents
Open

Replaced some overflowing muls with wrapping muls#40
NCGThompson wants to merge 2 commits into
nlordell:mainfrom
NCGThompson:better-exponents

Conversation

@NCGThompson
Copy link
Copy Markdown
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