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