logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

FBB::RandomMT - Class template generating random numbers

Author

       Frank B. Brokken (f.b.brokken@rug.nl).

libbobcat-dev_6.07.01                               2005-2025                             FBB::RandomMT(3bobcat)

Bobcat

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

Bobcat Project Files

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       Debian Bobcat project files:

       o      libbobcat6: debian package containing the shared library, changelog and copyright note;

       o      libbobcat-dev:  debian package containing the static library, headers, manual pages, and developer
              info;

Bugs

       None Reported.

Constructors

       o      RandomMT<typenameType=size_t>::RandomMT(Typeminimum,Typemaximum,size_tmtSeed):
              The Type template type parameter can be any integral or floating  point  type.  If  not  specified
              size_t  is  used.  The  parameters  minimum  and  maximum define the range of the generated random
              values. minimum must be less or equal to maximum, or an exception is thrown. The mtSeed  parameter
              is used to initialize (seed) the mt19937 Mercenne Twister.

       The default copy and move constructors and assignment operators are available.

Description

       The  class  template RandomMT uses the std::mt19937 Mercenne Twister to produce random numbers. The class
       template has one template type parameter, which can be any integral or floating point  type.  By  default
       size_t-valued random numbers are generated.

Example

       #include <iostream>

       #include <bobcat/randommt>

       using namespace std;
       using namespace FBB;

       int main(int argc, char **argv)
       try
       {
           if (argc == 1)
           {
               cout << "arg[1]: minimum value, arg[2]: maximum value,\n"
                       "arg[3]: (optional) seed (or time(0))\n";
               return 0;
           }

           // specify, e.g., RandomMt<double> to generate random double values
           RandomMT<> rmt( stoull(argv[1]), stoull(argv[2]),
                         argc >= 4 ? stoull(argv[3]) : time(0) );

           while (true)
           {
               cout << rmt() << "\n"
                       "Enter: next";
               cin.ignore(1000, ’\n’);
           }

       }
       catch (exception const &exc)
       {
           cerr << exc.what() << ’\n’;
       }

Files

bobcat/randommt - defines the class interface

Inherits From

       -

Name

       FBB::RandomMT - Class template generating random numbers

Namespace

FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

Overloaded Operators

       o      Typeoperator()():
              The function call operator returns the next random value.

See Also

bobcat(7), irandstream(3bobcat), rand(3), randbuf(3bobcat), srand(3)

Synopsis

#include<bobcat/randommt>
       Linking option: -lbobcat

See Also