ExRandom  3.0
exrandom::unit_uniform_distribution< RealType > Class Template Reference

Sample exactly from the unit uniform distribution. More...

#include <exrandom/unit_uniform_distribution.hpp>

Classes

struct  param_type
 Parameter type for unit_uniform_distribution. More...
 

Public Types

typedef RealType result_type
 

Public Member Functions

 unit_uniform_distribution ()
 
 unit_uniform_distribution (const param_type &)
 
void reset ()
 
param_type param () const
 
void param (const param_type &)
 
result_type min () const
 
result_type max () const
 
template<typename Generator >
result_type operator() (Generator &g)
 
template<typename Generator >
result_type operator() (Generator &g, const param_type &)
 

Friends

bool operator== (const unit_uniform_distribution< RealType > &, const unit_uniform_distribution< RealType > &)
 
bool operator!= (const unit_uniform_distribution< RealType > &, const unit_uniform_distribution< RealType > &)
 
std::ostream & operator<< (std::ostream &os, const unit_uniform_distribution< RealType > &)
 
std::istream & operator>> (std::istream &is, unit_uniform_distribution &)
 

Detailed Description

template<typename RealType = double>
class exrandom::unit_uniform_distribution< RealType >

Sample exactly from the unit uniform distribution.

This samples from the unit uniform distribution P(x) = 1, for 0 < x < 1. This is a replacement for std::uniform_real_distribution (with no parameters). It is equivalent to sampling a real number exactly from the distribution and rounding it to a floating point number. With the usual rule for rounding (round to nearest), this means that the end points of the interval can be returned, i.e., the sampling is from the closed interval, [0,1].

Template Parameters
RealTypethe floating point type of the resulting deviates. This can include various multi-precision floating point types; see u_rand::value of details.

This is a wrapper for unit_uniform_dist to turn it into a C++11 style random distribution. If the radix of RealType is 2 (the usual case), then the base for unit_uniform_dist is set to 232; otherwise (e.g., RealType is a decimal system), the base is set to the radix.

Examples
chisq_test.cpp, exrandom_test.cpp, sample_distributions.cpp, and simple_uniform.cpp.

Definition at line 42 of file unit_uniform_distribution.hpp.

Member Typedef Documentation

◆ result_type

template<typename RealType = double>
typedef RealType exrandom::unit_uniform_distribution< RealType >::result_type

The type of the range of the distribution.

Definition at line 47 of file unit_uniform_distribution.hpp.

Constructor & Destructor Documentation

◆ unit_uniform_distribution() [1/2]

template<typename RealType = double>
exrandom::unit_uniform_distribution< RealType >::unit_uniform_distribution ( )
inlineexplicit

Constructs an uniform distribution.

Definition at line 64 of file unit_uniform_distribution.hpp.

◆ unit_uniform_distribution() [2/2]

template<typename RealType = double>
exrandom::unit_uniform_distribution< RealType >::unit_uniform_distribution ( const param_type )
inlineexplicit

Constructs an uniform distribution with a parameter.

The parameter is ignored because it has no state.

Definition at line 72 of file unit_uniform_distribution.hpp.

Member Function Documentation

◆ reset()

template<typename RealType = double>
void exrandom::unit_uniform_distribution< RealType >::reset ( )
inline

Resets the distribution state.

Definition at line 78 of file unit_uniform_distribution.hpp.

◆ param() [1/2]

template<typename RealType = double>
param_type exrandom::unit_uniform_distribution< RealType >::param ( ) const
inline
Returns
the parameter set of the distribution.

Definition at line 83 of file unit_uniform_distribution.hpp.

◆ param() [2/2]

template<typename RealType = double>
void exrandom::unit_uniform_distribution< RealType >::param ( const param_type )
inline

Sets the parameter set of the distribution.

The function does not because a param_type has no state.

Definition at line 90 of file unit_uniform_distribution.hpp.

◆ min()

template<typename RealType = double>
result_type exrandom::unit_uniform_distribution< RealType >::min ( ) const
inline
Returns
the greatest lower bound value of the distribution.

Definition at line 95 of file unit_uniform_distribution.hpp.

◆ max()

template<typename RealType = double>
result_type exrandom::unit_uniform_distribution< RealType >::max ( ) const
inline
Returns
the least upper bound value of the distribution.

Definition at line 100 of file unit_uniform_distribution.hpp.

◆ operator()() [1/2]

template<typename RealType = double>
template<typename Generator >
result_type exrandom::unit_uniform_distribution< RealType >::operator() ( Generator &  g)
inline
Template Parameters
Generatorthe type of g.
Parameters
gthe random generator engine.
Returns
an uniform uniform deviate.

Definition at line 109 of file unit_uniform_distribution.hpp.

◆ operator()() [2/2]

template<typename RealType = double>
template<typename Generator >
result_type exrandom::unit_uniform_distribution< RealType >::operator() ( Generator &  g,
const param_type  
)
inline
Template Parameters
Generatorthe type of g.
Parameters
gthe random generator engine.
Returns
an uniform uniform deviate.

Definition at line 119 of file unit_uniform_distribution.hpp.

Friends And Related Function Documentation

◆ operator==

template<typename RealType = double>
bool operator== ( const unit_uniform_distribution< RealType > &  ,
const unit_uniform_distribution< RealType > &   
)
friend

Compare two unit_uniform_distributions.

Returns
true.

Definition at line 127 of file unit_uniform_distribution.hpp.

◆ operator!=

template<typename RealType = double>
bool operator!= ( const unit_uniform_distribution< RealType > &  ,
const unit_uniform_distribution< RealType > &   
)
friend

Contrast two unit_uniform_distributions.

Returns
false.

Definition at line 136 of file unit_uniform_distribution.hpp.

◆ operator<<

template<typename RealType = double>
std::ostream& operator<< ( std::ostream &  os,
const unit_uniform_distribution< RealType > &   
)
friend

Inserts a unit_uniform_distribution random number distribution into the output stream os.

Parameters
osan output stream.
Returns
os.

This function does nothing because this distribution has no state.

Definition at line 150 of file unit_uniform_distribution.hpp.

◆ operator>>

template<typename RealType = double>
std::istream& operator>> ( std::istream &  is,
unit_uniform_distribution< RealType > &   
)
friend

Extracts a unit_uniform_distribution random number distribution from the input stream is.

Parameters
isan input stream.
Returns
is.

This function does nothing because this distribution has no state.

Definition at line 164 of file unit_uniform_distribution.hpp.


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