glucat 0.13.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 normal_dist, seed, uint_gen, and uniform_dist.

◆ ~random_generator()

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

Member Function Documentation

◆ generator()

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

Single instance of Random number generator.

Definition at line 51 of file random.h.

References random_generator().

◆ normal()

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

Definition at line 70 of file random.h.

References normal_dist.

◆ operator=()

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

References random_generator().

◆ uniform()

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

Definition at line 68 of file random.h.

References uniform_dist.

◆ 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.

References friend_for_private_destructor.

Referenced by friend_for_private_destructor.

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 normal(), and random_generator().

◆ 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 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.

Referenced by random_generator().

◆ 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 random_generator(), and uniform().


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