[rand.synopsis] (original) (raw)

29 Numerics library [numerics]

29.5 Random number generation [rand]

29.5.2 Header synopsis [rand.synopsis]

#include <initializer_list> namespace std { template<class G> concept uniform_random_bit_generator = see below; template<class UIntType, UIntType a, UIntType c, UIntType m> class linear_congruential_engine; template<class UIntType, size_t w, size_t n, size_t m, size_t r, UIntType a, size_t u, UIntType d, size_t s, UIntType b, size_t t, UIntType c, size_t l, UIntType f> class mersenne_twister_engine;template<class UIntType, size_t w, size_t s, size_t r> class subtract_with_carry_engine; template<class Engine, size_t p, size_t r> class discard_block_engine; template<class Engine, size_t w, class UIntType> class independent_bits_engine; template<class Engine, size_t k> class shuffle_order_engine;template<class UIntType, size_t w, size_t n, size_t r, UIntType... consts> class philox_engine;using minstd_rand0 = see below; using minstd_rand = see below; using mt19937 = see below; using mt19937_64 = see below; using ranlux24_base = see below; using ranlux48_base = see below; using ranlux24 = see below; using ranlux48 = see below; using knuth_b = see below;using philox4x32 = see below;using philox4x64 = see below;using default_random_engine = see below;class random_device;class seed_seq;template<class RealType, size_t digits, class URBG> RealType generate_canonical(URBG& g);namespace ranges { template<class R, class G> requires output_range<R, invoke_result_t<G&>> && uniform_random_bit_generator<remove_cvref_t<G>> constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g);template<class G, output_iterator<invoke_result_t<G&>> O, sentinel_for<O> S> requires uniform_random_bit_generator<remove_cvref_t<G>> constexpr O generate_random(O first, S last, G&& g);template<class R, class G, class D> requires output_range<R, invoke_result_t<D&, G&>> && invocable<D&, G&> && uniform_random_bit_generator<remove_cvref_t<G>> && is_arithmetic_v<invoke_result_t<D&, G&>> constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g, D&& d);template<class G, class D, output_iterator<invoke_result_t<D&, G&>> O, sentinel_for<O> S> requires invocable<D&, G&> && uniform_random_bit_generator<remove_cvref_t<G>> && is_arithmetic_v<invoke_result_t<D&, G&>> constexpr O generate_random(O first, S last, G&& g, D&& d);} template<class IntType = int> class uniform_int_distribution; template<class RealType = double> class uniform_real_distribution;class bernoulli_distribution;template<class IntType = int> class binomial_distribution;template<class IntType = int> class geometric_distribution;template<class IntType = int> class negative_binomial_distribution;template<class IntType = int> class poisson_distribution;template<class RealType = double> class exponential_distribution;template<class RealType = double> class gamma_distribution;template<class RealType = double> class weibull_distribution;template<class RealType = double> class extreme_value_distribution;template<class RealType = double> class normal_distribution;template<class RealType = double> class lognormal_distribution;template<class RealType = double> class chi_squared_distribution;template<class RealType = double> class cauchy_distribution;template<class RealType = double> class fisher_f_distribution;template<class RealType = double> class student_t_distribution;template<class IntType = int> class discrete_distribution;template<class RealType = double> class piecewise_constant_distribution;template<class RealType = double> class piecewise_linear_distribution;}