MSaito / MTToolBox

C++ library to make GF(2) linear pseudo-random number generators
Other
37 stars 5 forks source link

Currently almost of all documents of this project are written in Japanese. See README.jp.utf8.txt

MTToolBox: a pseudo random number generator developing library.

doxygen documents http://msaito.github.io/MTToolBox/en/ doxygen documents http://msaito.github.io/MTToolBox/ (Japanese) github project https://github.com/MSaito/MTToolBox (Japanese)

This README is written by M. Saito

  1. First

MTToolBox is a library for developing pseudo random number generators(PRNGs) written in C++ language. MTToolBox is made by arranging tools used for developing SFMT, dSFMT, MTGP and TinyMT. In this meaning, the library is reliable.

Tools were changing while developing above PRNGs. I've rewritten tools for MTToolBox. So in this meaning, the library is not reliable.proved. Users can make and run samples in samples directory, then can check the library.

MTToolBox is a library to develop GF(2)-linear PRNGs, it is not usable to develop other types PRNGs. Only exception is to use MTToolBox to develop PRNG which is a combination of GF(2)-linear state transition function and non-GF(2)-linear output function.

Because Saito is not very good at C++, there may be many mistakes in the library. Saito expects that expert users will correct the mistakes.

  1. Dependent Libraries

NTL version 6.0 or later http://www.shoup.net/ntl/ using calculation of GF(2)polynomials. To use NTL, MTToolBox is written in C++.

shared_ptr: C++/tr1 or C++11

openssl http://www.openssl.org/ using in MTGP sample. openssl is optional.

  1. Interface Changed At Version 1.0, Interface has been changed. In almost template class, second template parameter is removed. This is concerned with that the parameter of setUpParam is changed to ParameterGenerator class. The class has two method getUint32() and getUint64(), use one of them instead of generate().