xref: /aosp_15_r20/external/cronet/third_party/libc++/src/modules/std/random.cppm (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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