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 theRandomNumberDistribution
requirements. It shall also satisfy theCopyConstructible
andCopyAssignable
requirements. -
T
is the associatedresult_type
. -
P
is the associatedparam_type
. It shall satisfy theCopyConstructible
,CopyAssignable
, andEqualityComparable
requirements. It also has constructors that take the same arguments of the same types as the constructors ofD
and has member functions identical to the parameter-returning getters ofD
-
d
is an object ofD
andx
,y
are potentially const objects ofD
. -
p
is a possibly constant value ofP
. -
g
,g1
,g2
are lvalues meeting theUniformRandomNumberGenerator
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(xi; 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 | |
x != 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. |
[edit] Notes
The parameters of a distribution object may be changed either permanently, by using d.param(p) or just for the duration of a single operator() call, by using d(g,p).