xref: /freebsd/contrib/llvm-project/libcxx/modules/std/random.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
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