RandomIterator
README.md
Go to the documentation of this file.
1 
2 [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
3 [![Documentation Status](https://readthedocs.org/projects/randomiterator/badge/?version=latest)](https://randomiterator.readthedocs.io/en/latest/?badge=latest)
4 
5 
6 Table of Contents
7 =================
8 
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)
19  * [Author](#author)
20  * [Acknowledgement](#acknowledgement)
21 
22 --------------------------------------
23 
24 ## What is it?
25 
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.
28 
29 ## Main features
30 
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.
36 
37 ## The Latest Version
38 
39 The latest release can be downloaded [here]( ).
40 
41 ## Documentation
42 
43 Read the full documentation in the [page](https://randomiterator.readthedocs.io/).
44 
45 ## Installation and requirements
46 
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.
50 
51 ## Licensing
52 
53 RandomIterator is released under the GNU General Public License version 3. Please see the file called LICENSE.
54 
55 ## Contacting the developers
56 
57 Here’s what you should do if you need help or would like to contribute:
58 
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.
62 
63 ## Acknowledgement
64 
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.