MCKL
Monte Carlo Kernel Library
Classes | Public Types | Public Member Functions | Friends | List of all members
mckl::UniformBitsDistribution< UIntType > Class Template Reference

Uniform bits distribution. More...

#include <mckl/random/internal/common.hpp>

Classes

class  param_type
 

Public Types

using distribution_type = UniformBitsDistribution< UIntType >
 
using result_type = UIntType
 

Public Member Functions

 UniformBitsDistribution ()=default
 
 UniformBitsDistribution (const param_type &)
 
 UniformBitsDistribution (param_type &&)
 
result_type max () const
 
result_type min () const
 
template<typename RNGType >
result_type operator() (RNGType &rng, const param_type &param)
 
template<typename RNGType >
void operator() (RNGType &rng, std::size_t n, result_type *r)
 
template<typename RNGType >
void operator() (RNGType &rng, std::size_t n, result_type *r, const param_type &param)
 
template<typename RNGType >
result_type operator() (RNGType &rng)
 
const param_typeparam () const
 
void param (const param_type &param)
 
void param (param_type &&param)
 
void reset ()
 

Friends

bool operator!= (const distribution_type &dist1, const distribution_type &dist2)
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const distribution_type &dist)
 
bool operator== (const distribution_type &dist1, const distribution_type &dist2)
 
template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, distribution_type &dist)
 

Detailed Description

template<typename UIntType>
class mckl::UniformBitsDistribution< UIntType >

Uniform bits distribution.

For a given unsigned integer type UIntType with \(W\) bits, the output will be unsigned integers on the set \(\{0,\dots,2^W - 1\}\) regardless of the range of the input RNGType

Definition at line 1087 of file random/internal/common.hpp.

Member Typedef Documentation

◆ distribution_type

template<typename UIntType>
using mckl::UniformBitsDistribution< UIntType >::distribution_type = UniformBitsDistribution< UIntType >

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ result_type

template<typename UIntType>
using mckl::UniformBitsDistribution< UIntType >::result_type = UIntType

Definition at line 127 of file uniform_bits_distribution.hpp.

Constructor & Destructor Documentation

◆ UniformBitsDistribution() [1/3]

template<typename UIntType>
mckl::UniformBitsDistribution< UIntType >::UniformBitsDistribution ( )
default

◆ UniformBitsDistribution() [2/3]

template<typename UIntType>
mckl::UniformBitsDistribution< UIntType >::UniformBitsDistribution ( const param_type )
inlineexplicit

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ UniformBitsDistribution() [3/3]

template<typename UIntType>
mckl::UniformBitsDistribution< UIntType >::UniformBitsDistribution ( param_type &&  )
inlineexplicit

Definition at line 127 of file uniform_bits_distribution.hpp.

Member Function Documentation

◆ max()

template<typename UIntType>
result_type mckl::UniformBitsDistribution< UIntType >::max ( ) const
inline

Definition at line 133 of file uniform_bits_distribution.hpp.

◆ min()

template<typename UIntType>
result_type mckl::UniformBitsDistribution< UIntType >::min ( ) const
inline

Definition at line 131 of file uniform_bits_distribution.hpp.

◆ operator()() [1/4]

template<typename UIntType>
template<typename RNGType >
result_type mckl::UniformBitsDistribution< UIntType >::operator() ( RNGType &  rng)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator()() [2/4]

template<typename UIntType>
template<typename RNGType >
result_type mckl::UniformBitsDistribution< UIntType >::operator() ( RNGType &  rng,
const param_type param 
)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator()() [3/4]

template<typename UIntType>
template<typename RNGType >
void mckl::UniformBitsDistribution< UIntType >::operator() ( RNGType &  rng,
std::size_t  n,
result_type r,
const param_type param 
)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator()() [4/4]

template<typename UIntType>
template<typename RNGType >
void mckl::UniformBitsDistribution< UIntType >::operator() ( RNGType &  rng,
std::size_t  n,
result_type r 
)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ param() [1/3]

template<typename UIntType>
const param_type& mckl::UniformBitsDistribution< UIntType >::param ( ) const
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ param() [2/3]

template<typename UIntType>
void mckl::UniformBitsDistribution< UIntType >::param ( const param_type param)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ param() [3/3]

template<typename UIntType>
void mckl::UniformBitsDistribution< UIntType >::param ( param_type &&  param)
inline

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ reset()

template<typename UIntType>
void mckl::UniformBitsDistribution< UIntType >::reset ( )
inline

Definition at line 135 of file uniform_bits_distribution.hpp.

Friends And Related Function Documentation

◆ operator!=

template<typename UIntType>
bool operator!= ( const distribution_type dist1,
const distribution_type dist2 
)
friend

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator<<

template<typename UIntType>
template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& operator<< ( std::basic_ostream< CharT, Traits > &  os,
const distribution_type dist 
)
friend

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator==

template<typename UIntType>
bool operator== ( const distribution_type dist1,
const distribution_type dist2 
)
friend

Definition at line 127 of file uniform_bits_distribution.hpp.

◆ operator>>

template<typename UIntType>
template<typename CharT , typename Traits >
std::basic_istream<CharT, Traits>& operator>> ( std::basic_istream< CharT, Traits > &  is,
distribution_type dist 
)
friend

Definition at line 127 of file uniform_bits_distribution.hpp.