You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
StephanTLavavej
changed the title
Optimized divisionless implementation of minstd<random>: Optimized divisionless implementation of minstd_rand, minstd_rand0Mar 3, 2025
Thanks! I pushed a conflict-free merge with main (as we had updated Google Benchmark), followed by commits to simplify the code and expand the comment.
We merge PRs simultaneously to our GitHub and MSVC-internal repos in a semi-manual process, batched up to save time. Your PR will be part of the next batch; I'll post comments here as I prepare it for merging, likely next week.
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.
I have traced the optimization to the following paper:
Carta, David F. "Two fast implementations of the βminimal standardβ random number generator."Β Communications of the ACMΒ 33, no. 1 (1990): 87-88.
BEFORE:
Benchmark Time CPU Iterations
BM_lcg 4.44 ns 4.45 ns 154482759
AFTER:
Benchmark Time CPU Iterations
BM_lcg 2.09 ns 2.09 ns 344615385
Double the speed