#include <initializer_list>
namespace std {
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;
typedef see below minstd_rand0;
typedef see below minstd_rand;
typedef see below mt19937;
typedef see below mt19937_64;
typedef see below ranlux24_base;
typedef see below ranlux48_base;
typedef see below ranlux24;
typedef see below ranlux48;
typedef see below knuth_b;
typedef see below default_random_engine;
class random_device;
class seed_seq;
template<class RealType, size_t bits, class URNG>
RealType generate_canonical(URNG& g);
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;
}