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

Introduce loadable pseudo-random number generators. #200

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Commits on Nov 14, 2024

  1. Preparation for loadable Random Number Generators (rnglibs).

    Add data structures and definitions.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    03dc6c5 View commit details
    Browse the repository at this point in the history
  2. Add rnglib <-> runtime API and new standard functions.

    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
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    f7cb320 View commit details
    Browse the repository at this point in the history
  3. Add rnglib definitions to &features and the Unicon preprocessor

    Add "loadable RNGs" to &features.
    Add _RNG_LIBRARY to the preprocessor predefined symbols.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    aff04d4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f0af2b3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    73619a2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    061fb3f View commit details
    Browse the repository at this point in the history
  7. Add the rngIconEx loadable library.

    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.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    33548ea View commit details
    Browse the repository at this point in the history
  8. Add the rngRbt loadable library.

    Rabbit is a cryptographically secure random number generator from the
    ESTREAM project. rngRbt implements it as a loadable rng library.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    aa5bd83 View commit details
    Browse the repository at this point in the history
  9. Add the rngRlx++ loadable library.

    rngRlx++ is a reimplementation in C of the RanLux++ generator.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    58f927d View commit details
    Browse the repository at this point in the history
  10. Add the rngGSL loadable library.

    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.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    4a7d415 View commit details
    Browse the repository at this point in the history
  11. Modify the Unicon build process to include rng loadable libraries.

    Add a new argument --enable-rnglibs to configure.
    Detect the presence (or otherwise) of the GNU Scientific Library.
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    1938dca View commit details
    Browse the repository at this point in the history
  12. Add rnglib test programs.

    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    3bd8e27 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    e93f47d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    1bdbe06 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    19a0de0 View commit details
    Browse the repository at this point in the history
  16. Update build.yml to add a rnglib test build.

    Add a test for --enable-rnglibs
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    3de3a0c View commit details
    Browse the repository at this point in the history
  17. runtime: avoid name collision with getrandom() from libc [Jafar Al-Gh…

    …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
    Don-Ward committed Nov 14, 2024
    Configuration menu
    Copy the full SHA
    4186187 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    c44871b View commit details
    Browse the repository at this point in the history