1*5f757f3fSDimitry Andric// -*- C++ -*- 2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 3*5f757f3fSDimitry Andric// 4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*5f757f3fSDimitry Andric// 8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===// 9*5f757f3fSDimitry Andric 10*5f757f3fSDimitry Andricexport namespace std { 11*5f757f3fSDimitry Andric // [rand.req.urng], uniform random bit generator requirements 12*5f757f3fSDimitry Andric using std::uniform_random_bit_generator; 13*5f757f3fSDimitry Andric 14*5f757f3fSDimitry Andric // [rand.eng.lcong], class template linear_congruential_engine 15*5f757f3fSDimitry Andric using std::linear_congruential_engine; 16*5f757f3fSDimitry Andric 17*5f757f3fSDimitry Andric // [rand.eng.mers], class template mersenne_twister_engine 18*5f757f3fSDimitry Andric using std::mersenne_twister_engine; 19*5f757f3fSDimitry Andric 20*5f757f3fSDimitry Andric // [rand.eng.sub], class template subtract_with_carry_engine 21*5f757f3fSDimitry Andric using std::subtract_with_carry_engine; 22*5f757f3fSDimitry Andric 23*5f757f3fSDimitry Andric // [rand.adapt.disc], class template discard_block_engine 24*5f757f3fSDimitry Andric using std::discard_block_engine; 25*5f757f3fSDimitry Andric 26*5f757f3fSDimitry Andric // [rand.adapt.ibits], class template independent_bits_engine 27*5f757f3fSDimitry Andric using std::independent_bits_engine; 28*5f757f3fSDimitry Andric 29*5f757f3fSDimitry Andric // [rand.adapt.shuf], class template shuffle_order_engine 30*5f757f3fSDimitry Andric using std::shuffle_order_engine; 31*5f757f3fSDimitry Andric 32*5f757f3fSDimitry Andric // [rand.predef], engines and engine adaptors with predefined parameters 33*5f757f3fSDimitry Andric using std::knuth_b; 34*5f757f3fSDimitry Andric using std::minstd_rand; 35*5f757f3fSDimitry Andric using std::minstd_rand0; 36*5f757f3fSDimitry Andric using std::mt19937; 37*5f757f3fSDimitry Andric using std::mt19937_64; 38*5f757f3fSDimitry Andric using std::ranlux24; 39*5f757f3fSDimitry Andric using std::ranlux24_base; 40*5f757f3fSDimitry Andric using std::ranlux48; 41*5f757f3fSDimitry Andric using std::ranlux48_base; 42*5f757f3fSDimitry Andric 43*5f757f3fSDimitry Andric using std::default_random_engine; 44*5f757f3fSDimitry Andric 45*5f757f3fSDimitry Andric#ifndef _LIBCPP_HAS_NO_RANDOM_DEVICE 46*5f757f3fSDimitry Andric // [rand.device], class random_device 47*5f757f3fSDimitry Andric using std::random_device; 48*5f757f3fSDimitry Andric#endif 49*5f757f3fSDimitry Andric 50*5f757f3fSDimitry Andric // [rand.util.seedseq], class seed_seq 51*5f757f3fSDimitry Andric using std::seed_seq; 52*5f757f3fSDimitry Andric 53*5f757f3fSDimitry Andric // [rand.util.canonical], function template generate_canonical 54*5f757f3fSDimitry Andric using std::generate_canonical; 55*5f757f3fSDimitry Andric 56*5f757f3fSDimitry Andric // [rand.dist.uni.int], class template uniform_int_distribution 57*5f757f3fSDimitry Andric using std::uniform_int_distribution; 58*5f757f3fSDimitry Andric 59*5f757f3fSDimitry Andric // [rand.dist.uni.real], class template uniform_real_distribution 60*5f757f3fSDimitry Andric using std::uniform_real_distribution; 61*5f757f3fSDimitry Andric 62*5f757f3fSDimitry Andric // [rand.dist.bern.bernoulli], class bernoulli_distribution 63*5f757f3fSDimitry Andric using std::bernoulli_distribution; 64*5f757f3fSDimitry Andric 65*5f757f3fSDimitry Andric // [rand.dist.bern.bin], class template binomial_distribution 66*5f757f3fSDimitry Andric using std::binomial_distribution; 67*5f757f3fSDimitry Andric 68*5f757f3fSDimitry Andric // [rand.dist.bern.geo], class template geometric_distribution 69*5f757f3fSDimitry Andric using std::geometric_distribution; 70*5f757f3fSDimitry Andric 71*5f757f3fSDimitry Andric // [rand.dist.bern.negbin], class template negative_binomial_distribution 72*5f757f3fSDimitry Andric using std::negative_binomial_distribution; 73*5f757f3fSDimitry Andric 74*5f757f3fSDimitry Andric // [rand.dist.pois.poisson], class template poisson_distribution 75*5f757f3fSDimitry Andric using std::poisson_distribution; 76*5f757f3fSDimitry Andric 77*5f757f3fSDimitry Andric // [rand.dist.pois.exp], class template exponential_distribution 78*5f757f3fSDimitry Andric using std::exponential_distribution; 79*5f757f3fSDimitry Andric 80*5f757f3fSDimitry Andric // [rand.dist.pois.gamma], class template gamma_distribution 81*5f757f3fSDimitry Andric using std::gamma_distribution; 82*5f757f3fSDimitry Andric 83*5f757f3fSDimitry Andric // [rand.dist.pois.weibull], class template weibull_distribution 84*5f757f3fSDimitry Andric using std::weibull_distribution; 85*5f757f3fSDimitry Andric 86*5f757f3fSDimitry Andric // [rand.dist.pois.extreme], class template extreme_value_distribution 87*5f757f3fSDimitry Andric using std::extreme_value_distribution; 88*5f757f3fSDimitry Andric 89*5f757f3fSDimitry Andric // [rand.dist.norm.normal], class template normal_distribution 90*5f757f3fSDimitry Andric using std::normal_distribution; 91*5f757f3fSDimitry Andric 92*5f757f3fSDimitry Andric // [rand.dist.norm.lognormal], class template lognormal_distribution 93*5f757f3fSDimitry Andric using std::lognormal_distribution; 94*5f757f3fSDimitry Andric 95*5f757f3fSDimitry Andric // [rand.dist.norm.chisq], class template chi_squared_distribution 96*5f757f3fSDimitry Andric using std::chi_squared_distribution; 97*5f757f3fSDimitry Andric 98*5f757f3fSDimitry Andric // [rand.dist.norm.cauchy], class template cauchy_distribution 99*5f757f3fSDimitry Andric using std::cauchy_distribution; 100*5f757f3fSDimitry Andric 101*5f757f3fSDimitry Andric // [rand.dist.norm.f], class template fisher_f_distribution 102*5f757f3fSDimitry Andric using std::fisher_f_distribution; 103*5f757f3fSDimitry Andric 104*5f757f3fSDimitry Andric // [rand.dist.norm.t], class template student_t_distribution 105*5f757f3fSDimitry Andric using std::student_t_distribution; 106*5f757f3fSDimitry Andric 107*5f757f3fSDimitry Andric // [rand.dist.samp.discrete], class template discrete_distribution 108*5f757f3fSDimitry Andric using std::discrete_distribution; 109*5f757f3fSDimitry Andric 110*5f757f3fSDimitry Andric // [rand.dist.samp.pconst], class template piecewise_constant_distribution 111*5f757f3fSDimitry Andric using std::piecewise_constant_distribution; 112*5f757f3fSDimitry Andric 113*5f757f3fSDimitry Andric // [rand.dist.samp.plinear], class template piecewise_linear_distribution 114*5f757f3fSDimitry Andric using std::piecewise_linear_distribution; 115*5f757f3fSDimitry Andric} // namespace std 116