glucat 0.12.0
glucat::random_generator< Scalar_T > Class Template Reference

Random number generator with single instance per Scalar_T. More...

#include <random.h>

Public Member Functions

 random_generator (const random_generator &)=delete
 
auto operator= (const random_generator &) -> random_generator &=delete
 
auto uniform () -> Scalar_T
 
auto normal () -> Scalar_T
 

Static Public Member Functions

static auto generator () -> random_generator &
 Single instance of Random number generator.
 

Private Member Functions

 random_generator ()
 
 ~random_generator ()=default
 

Private Attributes

std::mt19937 uint_gen
 
std::uniform_real_distribution< double > uniform_dist
 
std::normal_distribution< double > normal_dist
 

Static Private Attributes

static const unsigned long seed = 19590921UL
 

Friends

class friend_for_private_destructor
 

Detailed Description

template<typename Scalar_T>
class glucat::random_generator< Scalar_T >

Random number generator with single instance per Scalar_T.

Definition at line 42 of file random.h.

Constructor & Destructor Documentation

◆ random_generator() [1/2]

template<typename Scalar_T >
glucat::random_generator< Scalar_T >::random_generator ( const random_generator< Scalar_T > & )
delete

◆ random_generator() [2/2]

template<typename Scalar_T >
glucat::random_generator< Scalar_T >::random_generator ( )
inlineprivate

Definition at line 61 of file random.h.

References glucat::random_generator< Scalar_T >::seed.

◆ ~random_generator()

template<typename Scalar_T >
glucat::random_generator< Scalar_T >::~random_generator ( )
privatedefault

Member Function Documentation

◆ generator()

template<typename Scalar_T >
static auto glucat::random_generator< Scalar_T >::generator ( ) -> random_generator&
inlinestatic

Single instance of Random number generator.

Definition at line 51 of file random.h.

◆ normal()

template<typename Scalar_T >
auto glucat::random_generator< Scalar_T >::normal ( ) -> Scalar_T
inline

Definition at line 70 of file random.h.

References glucat::random_generator< Scalar_T >::normal_dist.

◆ operator=()

template<typename Scalar_T >
auto glucat::random_generator< Scalar_T >::operator= ( const random_generator< Scalar_T > & ) -> random_generator &=delete
delete

◆ uniform()

template<typename Scalar_T >
auto glucat::random_generator< Scalar_T >::uniform ( ) -> Scalar_T
inline

Definition at line 68 of file random.h.

References glucat::random_generator< Scalar_T >::uniform_dist.

Friends And Related Symbol Documentation

◆ friend_for_private_destructor

template<typename Scalar_T >
friend class friend_for_private_destructor
friend

Friend declaration to avoid compiler warning: "... only defines a private destructor and has no friends" Ref: Carlos O'Ryan, ACE http://doc.ece.uci.edu

Definition at line 48 of file random.h.

Member Data Documentation

◆ normal_dist

template<typename Scalar_T >
std::normal_distribution<double> glucat::random_generator< Scalar_T >::normal_dist
private

Definition at line 59 of file random.h.

Referenced by glucat::random_generator< Scalar_T >::normal().

◆ seed

template<typename Scalar_T >
const unsigned long glucat::random_generator< Scalar_T >::seed = 19590921UL
staticprivate

Definition at line 55 of file random.h.

Referenced by glucat::random_generator< Scalar_T >::random_generator().

◆ uint_gen

template<typename Scalar_T >
std::mt19937 glucat::random_generator< Scalar_T >::uint_gen
private

Definition at line 57 of file random.h.

◆ uniform_dist

template<typename Scalar_T >
std::uniform_real_distribution<double> glucat::random_generator< Scalar_T >::uniform_dist
private

Definition at line 58 of file random.h.

Referenced by glucat::random_generator< Scalar_T >::uniform().


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