C++ concepts: RandomNumberDistribution
From cppreference.com
A RandomNumberDistribution is a function object returning random numbers according to a probability density function p(x) or a discrete probability distribution P(x
i).
[edit] Requirements
This section is incomplete |
- D is a class meeting the RandomNumberDistribution requirements. It shall also satisfy the CopyConstructible and CopyAssignable requirements.
- T is the associated result_type.
- P is the associated param_type. It shall satisfy the CopyConstructible, CopyAssignable, and EqualityComparable requirements.
- d is an object of D and x,y are potentially const objects of D.
- p is a possibly constant value of P.
- g,g1,g2 are lvalues meeting the UniformRandomNumberGenerator concept.
- os is an lvalue of std::basic_ostream.
- is is an lvalue of std::basic_istream.
Expression | Type | Notes | Complexity |
---|---|---|---|
D::result_type | T | An arithmetic type | compile-time |
D::param_type | P | compile-time | |
D() | constant | ||
D(p) | Same as p's construction | ||
d.reset() | void | Resets the internal state of the distribution object. After a call to this function, the next call to operator() on the distribution object will not be dependent on previous calls to operator(). | constant |
x.param() | P | No worse than D(p) | |
d.param(p) | void | No worse than D(p) | |
d(g) | T | d(g, d.param()) | Same as d(g, d.param()) |
d(g,p) | T | When called with the same g and p parameter it returns a sequence of numbers distributed according to p(x;p) or P(x i;p) |
Amortized constant number of incovations of g |
x.min() | T | The greatest lower bound returned by operator() | constant |
x.max() | T | The least upper bound returned by operator() | constant |
x == y | bool | constant | |
y != y | bool | !(x == y) | constant |
os << x | Reference to the type of os | Writes a textual representation of the distribution parameters and internal state to os as textual representation. The formatting flags and fill character of os are unchanged. | |
is >> d | Reference to the type of is | Restores the distribution parameters and internal state with data read from is. The formatting flags of is are unchanged. The data must have been written using a stream with the same locale, CharT and Traits template parameters, otherwise the behavior is undefined. If bad input is encountered, is.setstate(std::ios::failbit) is called, which may throw std::ios_base::failure. d is unchanged in that case. |