2 [](https://www.gnu.org/licenses/gpl-3.0)
3 [](https://randomiterator.readthedocs.io/en/latest/?badge=latest)
9 * [What is it?](#what-is-it)
10 * [Main features](#main-features)
11 * [The Latest Version](#the-latest-version)
12 * [Documentation](#documentation)
13 * [Reference manual](#reference-manual)
14 * [Users guide](#users-guide)
15 * [Installation and requirements](#installation-and-requirements)
16 * [Examples](#examples)
17 * [Licensing](#licensing)
18 * [Contact the developers](#contact-the-developers)
20 * [Acknowledgement](#acknowledgement)
22 --------------------------------------
26 RandomIterator is a small library providing iterators pointing to streams of pseudorandom numbers.
27 The library deploys lazy-evaluation and is intented for usage on multi-thread calculations.
31 1. Five primary generators: Philox, ARS and Threefry from [Random123](https://ieeexplore.ieee.org/abstract/document/6114424) and Squares3 and Squares4, which are natively implemented.
32 2. Completly thread-safe.
33 3. Compatibility with all C++ distributions defined in the standard library.
34 4. For each seed, the ```random_iterator::Stream<Distribution, Engine>``` manages up to $`{2}^{32}`$ streams, with length $`{2}^{64}`$.
35 5. When instantiated to produce 64bit output, like ```double``` ou ```uint64_t```, each stream can provide up to 128EB of data.
39 The latest release can be downloaded [here]( ).
43 Read the full documentation in the [page](https://randomiterator.readthedocs.io/).
45 ## Installation and requirements
47 RandomIterator is a header-only library with no dependencies. So, it is only necessary
48 to drop the ``random_iterator`` directory, which contains the library source code somewhere
49 reachable to the compiler and include the ``random_iterator/Stream.cpp`` in the project code.
53 RandomIterator is released under the GNU General Public License version 3. Please see the file called LICENSE.
55 ## Contacting the developers
57 Here’s what you should do if you need help or would like to contribute:
59 * If you found a bug or what to ask any question, use GitLab issues.
60 * If you have an idea, suggestion or whatever, use GitHub issues.
61 * If you want to contribute, submit a pull request.
65 The authors acknowledge support by the High Performance and Cloud Computing Group
66 at the Zentrum für Datenverarbeitung of the University of Tübingen, the state of Baden-
67 Württemberg through bwHPC and the German Research Foundation (DFG) through grant
68 no. INST 37/935-1 FUGG.