# 26 Numerics library [numerics]

## 26.6 Random number generation [rand]

### 26.6.9 Random number distribution class templates [rand.dist]

#### 26.6.9.5.1 Class template normal_­distribution[rand.dist.norm.normal]

A normal_­distribution random number distribution produces random numbers x distributed according to the probability density function
The distribution parameters μ and σ are also known as this distribution's mean and standard deviation.
template<class RealType = double> class normal_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructors and reset functions normal_distribution() : normal_distribution(0.0) {} explicit normal_distribution(RealType mean, RealType stddev = 1.0); explicit normal_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType mean() const; RealType stddev() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit normal_distribution(RealType mean, RealType stddev = 1.0); ```
Preconditions: .
Remarks: mean and stddev correspond to the respective parameters of the distribution.
```RealType mean() const; ```
Returns: The value of the mean parameter with which the object was constructed.
```RealType stddev() const; ```
Returns: The value of the stddev parameter with which the object was constructed.

#### 26.6.9.5.2 Class template lognormal_­distribution[rand.dist.norm.lognormal]

A lognormal_­distribution random number distribution produces random numbers distributed according to the probability density function
template<class RealType = double> class lognormal_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions lognormal_distribution() : lognormal_distribution(0.0) {} explicit lognormal_distribution(RealType m, RealType s = 1.0); explicit lognormal_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType m() const; RealType s() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit lognormal_distribution(RealType m, RealType s = 1.0); ```
Preconditions: .
Remarks: m and s correspond to the respective parameters of the distribution.
```RealType m() const; ```
Returns: The value of the m parameter with which the object was constructed.
```RealType s() const; ```
Returns: The value of the s parameter with which the object was constructed.

#### 26.6.9.5.3 Class template chi_­squared_­distribution[rand.dist.norm.chisq]

A chi_­squared_­distribution random number distribution produces random numbers distributed according to the probability density function
template<class RealType = double> class chi_squared_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions chi_squared_distribution() : chi_squared_distribution(1.0) {} explicit chi_squared_distribution(RealType n); explicit chi_squared_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType n() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit chi_squared_distribution(RealType n); ```
Preconditions: .
Remarks: n corresponds to the parameter of the distribution.
```RealType n() const; ```
Returns: The value of the n parameter with which the object was constructed.

#### 26.6.9.5.4 Class template cauchy_­distribution[rand.dist.norm.cauchy]

A cauchy_­distribution random number distribution produces random numbers x distributed according to the probability density function
template<class RealType = double> class cauchy_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions cauchy_distribution() : cauchy_distribution(0.0) {} explicit cauchy_distribution(RealType a, RealType b = 1.0); explicit cauchy_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType a() const; RealType b() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit cauchy_distribution(RealType a, RealType b = 1.0); ```
Preconditions: .
Remarks: a and b correspond to the respective parameters of the distribution.
```RealType a() const; ```
Returns: The value of the a parameter with which the object was constructed.
```RealType b() const; ```
Returns: The value of the b parameter with which the object was constructed.

#### 26.6.9.5.5 Class template fisher_­f_­distribution[rand.dist.norm.f]

A fisher_­f_­distribution random number distribution produces random numbers distributed according to the probability density function
template<class RealType = double> class fisher_f_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions fisher_f_distribution() : fisher_f_distribution(1.0) {} explicit fisher_f_distribution(RealType m, RealType n = 1.0); explicit fisher_f_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType m() const; RealType n() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit fisher_f_distribution(RealType m, RealType n = 1); ```
Preconditions: and .
Remarks: m and n correspond to the respective parameters of the distribution.
```RealType m() const; ```
Returns: The value of the m parameter with which the object was constructed.
```RealType n() const; ```
Returns: The value of the n parameter with which the object was constructed.

#### 26.6.9.5.6 Class template student_­t_­distribution[rand.dist.norm.t]

A student_­t_­distribution random number distribution produces random numbers x distributed according to the probability density function
template<class RealType = double> class student_t_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions student_t_distribution() : student_t_distribution(1.0) {} explicit student_t_distribution(RealType n); explicit student_t_distribution(const param_type& parm); void reset(); // generating functions template<class URBG> result_type operator()(URBG& g); template<class URBG> result_type operator()(URBG& g, const param_type& parm); // property functions RealType n() const; param_type param() const; void param(const param_type& parm); result_type min() const; result_type max() const; };
```explicit student_t_distribution(RealType n); ```
Preconditions: .
Remarks: n corresponds to the parameter of the distribution.
```RealType n() const; ```
Returns: The value of the n parameter with which the object was constructed.