-
Notifications
You must be signed in to change notification settings - Fork 28
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
Introduce loadable pseudo-random number generators. #200
Open
Don-Ward
wants to merge
18
commits into
uniconproject:master
Choose a base branch
from
Don-Ward:PrngLib
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains 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
Don-Ward
force-pushed
the
PrngLib
branch
3 times, most recently
from
March 15, 2021 20:19
f292b54
to
1bf0fdf
Compare
etherx-dev
approved these changes
Apr 13, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My head hurts... but i know that stumbling upon this project just made it worthwhile lol.
Don-Ward
force-pushed
the
PrngLib
branch
2 times, most recently
from
January 13, 2022 22:27
e88b1c1
to
5f062e4
Compare
Don-Ward
force-pushed
the
PrngLib
branch
2 times, most recently
from
February 28, 2022 21:02
c78a020
to
e8ea554
Compare
Don-Ward
force-pushed
the
PrngLib
branch
2 times, most recently
from
March 10, 2022 22:41
1a957f6
to
b8f887c
Compare
Don-Ward
force-pushed
the
PrngLib
branch
2 times, most recently
from
March 15, 2022 12:11
ed0a88d
to
6be1d9d
Compare
After initial feedback, it was decided to split up the PR into several smaller commits |
Don-Ward
force-pushed
the
PrngLib
branch
2 times, most recently
from
April 17, 2024 18:31
3372e74
to
27d1067
Compare
Add data structures and definitions.
Add runtime routines callable by a rnglib: getRngState getInitialBits putErrorCode Add rnglib routines callable by the runtime: startRng putSeed getRandomFpt getErrorText getRandomBits -- optional getRandomInt -- optional Add new standard functions: loadrng rngbits rngbitstring rngval
Add "loadable RNGs" to &features. Add _RNG_LIBRARY to the preprocessor predefined symbols.
RngIconEx is a reimplemtation of the (Icon) built-in generator as a loadable rnglib. It serves as an example for how implement a loadable rng library.
Rabbit is a cryptographically secure random number generator from the ESTREAM project. rngRbt implements it as a loadable rng library.
rngRlx++ is a reimplementation in C of the RanLux++ generator.
rngGSL isn't a random number generator as such; it provides an interface to the generators in the GNU Scientific Library, if that is installed.
Add a new argument --enable-rnglibs to configure. Detect the presence (or otherwise) of the GNU Scientific Library.
Add a test for --enable-rnglibs
…araibeh] This is a slight rework of commit 27b385c. It is needed because the PRNG code uses unicon_getrandom() in fmisc.r as well as init.r
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
N.B. The PRNG interface introduced here is subject to review and may change.
PRNGs are per-thread and may be changed with the new loadrng() standard
function. Two PRNGs are present:
IconEx A reimplementation of the traditional generator
as a loadable library.
Rabbit A cryptographically strong PRNG from the eSTREAM project.
Other PRNGs -- probably RanLux and the Mersenne Twister -- will follow.