FBB::RandomMT - Class template generating random numbers
Contents
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.
Copyright
This is free software, distributed under the terms of the GNU General Public License (GPL).
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