IAP GITLAB

Skip to content
Snippets Groups Projects
Commit abb1088f authored by Antonio Augusto Alves Junior's avatar Antonio Augusto Alves Junior
Browse files

adding manual pages

parents fd229808 9d1ef291
No related branches found
No related tags found
No related merge requests found
# RandomIterator # RandomIterator
<<<<<<< HEAD
Iterator library for lazy calculation and parallel access of counter-based random numbers. Iterator library for lazy calculation and parallel access of counter-based random numbers.
=======
Table of Contents
=================
* [What is it?](#what-is-it)
* [Main features](#main-features)
* [The Latest Version](#the-latest-version)
* [Documentation](#documentation)
* [Reference manual](#reference-manual)
* [Users guide](#users-guide)
* [Installation and requirements](#installation-and-requirements)
* [Examples](#examples)
* [Licensing](#licensing)
* [Contact the developers](#contact-the-developers)
* [Author](#author)
* [Acknowledgement](#acknowledgement)
--------------------------------------
## What is it?
RandomIterator is a small library providing iterators pointing to streams of pseudorandom numbers.
The library deploys lazy-evaluation and is intented for usage on multi-thread calculations.
## Main features
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.
2. Completly thread-safe.
3. Compatibility with all C++ distributions defined in the standard library.
4. For each seed, the ```random_iterator::Stream<Distribution, Engine>``` manages up to $`{2}^{32}`$ streams, with length $`{2}^{64}`$.
5. When instantiated to produce 64bit output, like ```double``` ou ```uint64_t```, each stream can provide up to 128EB of data.
## The Latest Version
Documentation
-------------
### Reference manual
The complete and updated [Doxygen](http://www.doxygen.org/) source code documentation in HTML format is available at the
[Reference documentation]( ) web-page.
It is also possible to browse the documentation by class, file or name using the links:
1.[classes]( )
2.[files]( )
3.[names]( )
### Examples:
```
#include <random_iterator/Stream.hpp>
#include <random>
#include <iostream>
...
//generator
random_iterator::philox RNG(0x548c9decbce65295);
//std distribution
std::uniform_real_distribution<double>
uniform_dist(0.0, 1.0);
//streams
auto uniform_stream = random_iterator::make_stream( uniform_dist, RNG, 0);
//using range semantics
for(auto unf : uniform_stream)
std::cout << unf << std::endl;
//using subscript operator
for(size_t i=0; i < 100; ++i)
std::cout << uniform_stream[i] << std::endl;
...
```
## Installation and requirements
RandomIterator iterator is a header-only library with no dependences.
## Licensing
RandomIterator is released under the GNU General Public License version 3. Please see the file called LICENSE.
## Contacting the developers
Here’s what you should do if you need help or would like to contribute:
* If you found a bug or what to ask any question, use GitLab issues.
* If you have an idea, suggestion or whatever, use GitHub issues.
* If you want to contribute, submit a pull request.
## Acknowledgement
The authors acknowledge support by the High Performance and Cloud Computing Group
at the Zentrum für Datenverarbeitung of the University of Tübingen, the state of Baden-
Württemberg through bwHPC and the German Research Foundation (DFG) through grant
no. INST 37/935-1 FUGG.
>>>>>>> 9d1ef2916d7343e70f55033883e86d61ffe0bda9
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment