Expression  | Return type  | Pre/post-condition  | Complexity  | 
S::result_type  | T  | ||
S()  | Creates a seed sequence
    with the same initial state as all other default-constructed seed sequences
    of type S.  | constant  | |
S(ib,ie)  | Creates a seed sequence
    having internal state
    that depends on some or all of the bits
    of the supplied sequence [ib,ie).  | ||
S(il)  | Same as S(il.begin(), il.end()).  | same as S(il.begin(), il.end())  | |
q.generate(rb,re)  | void  | ||
r.size()  | size_t  | The number of 32-bit units
    that would be copied
    by a call to r.param.  | constant  | 
r.param(ob)  | void  | Copies to the given destination
    a sequence of 32-bit units
    that can be provided
    to the constructor of a second object of type S,
    and that would reproduce in that second object
    a state indistinguishable
    from the state of the first object.  | 
Expression  | Return type  | Pre/post-condition  | Complexity  | 
E()  | Creates an engine
    with the same initial state
    as all other default-constructed engines
    of type E.  | ||
E(x)  | Creates an engine
    that compares equal to x.  | ||
E(s)  | Creates an engine
      with initial state determined by s.  | ||
E(q)240  | Creates an engine
    with an initial state
    that depends on a sequence
    produced by one call
    to q.generate.  | same as complexity of q.generate
    called on a sequence
    whose length is size of state  | |
e.seed()  | void  | Postconditions: e == E().  | same as E()  | 
e.seed(s)  | void  | Postconditions: e == E(s).  | same as E(s)  | 
e.seed(q)  | void  | Postconditions: e == E(q).  | same as E(q)  | 
e()  | T  | per [rand.req.urng]  | |
e.discard(z)241  | void  | no worse than the complexity
    of z consecutive calls e()  | |
x == y  | bool  | ||
x != y  | bool  | !(x == y).  | 
os << x
is >> v
A::A();
bool operator==(const A& a1, const A& a2);
A::A(result_type s);
template<class Sseq> A::A(Sseq& q);
void seed();
void seed(result_type s);
template<class Sseq> void seed(Sseq& q);
Expression  | Return type  | Pre/post-condition  | Complexity  | 
D::result_type  | T  | ||
D::param_type  | P  | ||
D()  | Creates a distribution whose behavior is indistinguishable
    from that of any other newly default-constructed distribution
    of type D.  | constant  | |
D(p)  | Creates a distribution whose behavior is indistinguishable
    from that of a distribution
    newly constructed directly from the values used to construct p.  | same as p's construction  | |
d.reset()  | void  | constant  | |
x.param()  | P  | no worse than the complexity of D(p)  | |
d.param(p)  | void  | Postconditions: d.param() == p.  | no worse than the complexity of D(p)  | 
d(g)  | T  | With ,
    the sequence of numbers
    returned by successive invocations
    with the same object g
    is randomly distributed
    according to the associated
      p(z |{p})
    or
      
    function.  | amortized constant number of invocations of g  | 
d(g,p)  | T  | The sequence of numbers
    returned by successive invocations
    with the same objects g and p
    is randomly distributed
    according to the associated
      p(z |{p})
    or
      
    function.  | amortized constant number of invocations of g  | 
x.min()  | T  | Returns glb.  | constant  | 
x.max()  | T  | Returns lub.  | constant  | 
x == y  | bool  | constant  | |
x != y  | bool  | !(x == y).  | same as x == y.  | 
os << x
is >> d
explicit linear_congruential_engine(result_type s);
template<class Sseq> explicit linear_congruential_engine(Sseq& q);
explicit mersenne_twister_engine(result_type value);
template<class Sseq> explicit mersenne_twister_engine(Sseq& q);
explicit subtract_with_carry_engine(result_type value);
template<class Sseq> explicit subtract_with_carry_engine(Sseq& q);
explicit philox_engine(result_type value);
template<class Sseq> explicit philox_engine(Sseq& q);
void set_counter(const array<result_type, n>& c);
using minstd_rand0 =
      linear_congruential_engine<uint_fast32_t, 16'807, 0, 2'147'483'647>;
using minstd_rand =
      linear_congruential_engine<uint_fast32_t, 48'271, 0, 2'147'483'647>;
using mt19937 =
      mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31,
       0x9908'b0df, 11, 0xffff'ffff, 7, 0x9d2c'5680, 15, 0xefc6'0000, 18, 1'812'433'253>;
using mt19937_64 =
      mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,
       0xb502'6f5a'a966'19e9, 29, 0x5555'5555'5555'5555, 17,
       0x71d6'7fff'eda6'0000, 37, 0xfff7'eee0'0000'0000, 43, 6'364'136'223'846'793'005>;
using ranlux24_base =
      subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>;
using ranlux48_base =
      subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>;
using ranlux24 = discard_block_engine<ranlux24_base, 223, 23>;
using ranlux48 = discard_block_engine<ranlux48_base, 389, 11>;
using knuth_b = shuffle_order_engine<minstd_rand0,256>;
using philox4x32 =
      philox_engine<uint_fast32_t, 32, 4, 10,
       0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85>;
using philox4x64 =
      philox_engine<uint_fast64_t, 64, 4, 10,
       0xCA5A826395121157, 0x9E3779B97F4A7C15, 0xD2E7470EE14C6C93, 0xBB67AE8584CAA73B>;
explicit random_device(const string& token);
double entropy() const noexcept;
result_type operator()();
seed_seq() noexcept;
template<class T>
  seed_seq(initializer_list<T> il);
template<class InputIterator>
  seed_seq(InputIterator begin, InputIterator end);
template<class RandomAccessIterator>
  void generate(RandomAccessIterator begin, RandomAccessIterator end);
size_t size() const noexcept;
template<class OutputIterator>
  void param(OutputIterator dest) const;
template<class RealType, size_t digits, class URBG>
  RealType generate_canonical(URBG& g);
explicit uniform_int_distribution(IntType a, IntType b = numeric_limits<IntType>::max());
result_type a() const;
result_type b() const;
explicit uniform_real_distribution(RealType a, RealType b = 1.0);
result_type a() const;
result_type b() const;
explicit bernoulli_distribution(double p);
double p() const;
explicit binomial_distribution(IntType t, double p = 0.5);
IntType t() const;
double p() const;
explicit geometric_distribution(double p);
double p() const;
explicit negative_binomial_distribution(IntType k, double p = 0.5);
IntType k() const;
double p() const;
explicit poisson_distribution(double mean);
double mean() const;
explicit exponential_distribution(RealType lambda);
RealType lambda() const;
explicit gamma_distribution(RealType alpha, RealType beta = 1.0);
RealType alpha() const;
RealType beta() const;
explicit weibull_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit extreme_value_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit normal_distribution(RealType mean, RealType stddev = 1.0);
RealType mean() const;
RealType stddev() const;
explicit lognormal_distribution(RealType m, RealType s = 1.0);
RealType m() const;
RealType s() const;
explicit chi_squared_distribution(RealType n);
RealType n() const;
explicit cauchy_distribution(RealType a, RealType b = 1.0);
RealType a() const;
RealType b() const;
explicit fisher_f_distribution(RealType m, RealType n = 1);
RealType m() const;
RealType n() const;
explicit student_t_distribution(RealType n);
RealType n() const;
discrete_distribution();
template<class InputIterator>
  discrete_distribution(InputIterator firstW, InputIterator lastW);
discrete_distribution(initializer_list<double> wl);
template<class UnaryOperation>
  discrete_distribution(size_t nw, double xmin, double xmax, UnaryOperation fw);
vector<double> probabilities() const;
piecewise_constant_distribution();
template<class InputIteratorB, class InputIteratorW>
  piecewise_constant_distribution(InputIteratorB firstB, InputIteratorB lastB,
                                  InputIteratorW firstW);
template<class UnaryOperation>
  piecewise_constant_distribution(initializer_list<RealType> bl, UnaryOperation fw);
template<class UnaryOperation>
  piecewise_constant_distribution(size_t nw, RealType xmin, RealType xmax, UnaryOperation fw);
vector<result_type> intervals() const;
vector<result_type> densities() const;
piecewise_linear_distribution();
template<class InputIteratorB, class InputIteratorW>
  piecewise_linear_distribution(InputIteratorB firstB, InputIteratorB lastB,
                                InputIteratorW firstW);
template<class UnaryOperation>
  piecewise_linear_distribution(initializer_list<RealType> bl, UnaryOperation fw);
template<class UnaryOperation>
  piecewise_linear_distribution(size_t nw, RealType xmin, RealType xmax, UnaryOperation fw);
vector<result_type> intervals() const;
vector<result_type> densities() const;
int rand();
void srand(unsigned int seed);