strumpack::random::RandomGenerator< real_t, E, D > Class Template Reference

Class for a random number generator. More...

#include <RandomWrapper.hpp>

Inheritance diagram for strumpack::random::RandomGenerator< real_t, E, D >:
Collaboration diagram for strumpack::random::RandomGenerator< real_t, E, D >:

Public Member Functions

 RandomGenerator ()
 
 RandomGenerator (std::size_t s)
 
void seed (std::size_t s)
 
void seed (std::seed_seq &s)
 
void seed (std::uint32_t i, std::uint32_t j)
 
real_t get ()
 
real_t get (std::uint32_t i, std::uint32_t j)
 
int flops_per_prng ()
 

Detailed Description

template<typename real_t, typename E, typename D>
class strumpack::random::RandomGenerator< real_t, E, D >

Class for a random number generator.

Template Parameters
real_tfloat or double
Ethe random number engine: std::mt19937 or std::minstd_rand
Dthe random number distribution: std::uniform_real_distribution or std::normal_distribution
See also
RandomGeneratorBase

Constructor & Destructor Documentation

◆ RandomGenerator() [1/2]

template<typename real_t , typename E , typename D >
strumpack::random::RandomGenerator< real_t, E, D >::RandomGenerator ( )
inline

Default constructor, using seed 0.

◆ RandomGenerator() [2/2]

template<typename real_t , typename E , typename D >
strumpack::random::RandomGenerator< real_t, E, D >::RandomGenerator ( std::size_t  s)
inline

Constructor using seed s.

Member Function Documentation

◆ flops_per_prng()

template<typename real_t , typename E , typename D >
int strumpack::random::RandomGenerator< real_t, E, D >::flops_per_prng ( )
inlinevirtual

Return the (approximate) number of flops required to generate a random number.

Implements strumpack::random::RandomGeneratorBase< real_t >.

◆ get() [1/2]

template<typename real_t , typename E , typename D >
real_t strumpack::random::RandomGenerator< real_t, E, D >::get ( )
inlinevirtual

get the next random element.

Implements strumpack::random::RandomGeneratorBase< real_t >.

◆ get() [2/2]

template<typename real_t , typename E , typename D >
real_t strumpack::random::RandomGenerator< real_t, E, D >::get ( std::uint32_t  i,
std::uint32_t  j 
)
inlinevirtual

Get a (reproducible) element for a specific 2d point.

Implements strumpack::random::RandomGeneratorBase< real_t >.

◆ seed() [1/3]

template<typename real_t , typename E , typename D >
void strumpack::random::RandomGenerator< real_t, E, D >::seed ( std::seed_seq &  s)
inlinevirtual

Seed with a seed sequence.

Implements strumpack::random::RandomGeneratorBase< real_t >.

◆ seed() [2/3]

template<typename real_t , typename E , typename D >
void strumpack::random::RandomGenerator< real_t, E, D >::seed ( std::size_t  s)
inlinevirtual

Seed with value s.

Implements strumpack::random::RandomGeneratorBase< real_t >.

◆ seed() [3/3]

template<typename real_t , typename E , typename D >
void strumpack::random::RandomGenerator< real_t, E, D >::seed ( std::uint32_t  i,
std::uint32_t  j 
)
inlinevirtual

Seed with two values (for instance 2 coordinates, point in a matrix). Can be used to get reproducible (pseudo-random) matrix elements.

Implements strumpack::random::RandomGeneratorBase< real_t >.


The documentation for this class was generated from the following file: