##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# C++ concepts: RandomNumberDistribution

From cppreference.com
< cpp‎ | concept

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. |

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/concept/RandomNumberDistribution&oldid=49416"
Category:

- Todo without reason