# 28 Numerics library [numerics]

## 28.5 Random number generation [rand]

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

#### 28.5.9.4.4 Class template weibull_distribution[rand.dist.pois.weibull]

A weibull_distribution random number distribution produces random numbers x  ≥ 0 distributed according to the probability density function
namespace std { template<class RealType = double> class weibull_distribution { public: // types using result_type = RealType; using param_type = unspecified; // constructor and reset functions weibull_distribution() : weibull_distribution(1.0) {} explicit weibull_distribution(RealType a, RealType b = 1.0); explicit weibull_distribution(const param_type& parm); void reset(); // equality operators friend bool operator==(const weibull_distribution& x, const weibull_distribution& y); // 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; // inserters and extractors template<class charT, class traits> friend basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const weibull_distribution& x); template<class charT, class traits> friend basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, weibull_distribution& x); }; }
```explicit weibull_distribution(RealType a, RealType b = 1.0); ```
Preconditions: and .
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.