tmp/tmprx0a0mme/{from.md → to.md}
RENAMED
|
@@ -4,65 +4,94 @@
|
|
| 4 |
#include <initializer_list> // see [initializer.list.syn]
|
| 5 |
|
| 6 |
namespace std {
|
| 7 |
// [rand.req.urng], uniform random bit generator requirements
|
| 8 |
template<class G>
|
| 9 |
-
concept uniform_random_bit_generator = see below;
|
| 10 |
|
| 11 |
// [rand.eng.lcong], class template linear_congruential_engine
|
| 12 |
template<class UIntType, UIntType a, UIntType c, UIntType m>
|
| 13 |
-
class linear_congruential_engine;
|
| 14 |
|
| 15 |
// [rand.eng.mers], class template mersenne_twister_engine
|
| 16 |
template<class UIntType, size_t w, size_t n, size_t m, size_t r,
|
| 17 |
UIntType a, size_t u, UIntType d, size_t s,
|
| 18 |
UIntType b, size_t t,
|
| 19 |
UIntType c, size_t l, UIntType f>
|
| 20 |
class mersenne_twister_engine;
|
| 21 |
|
| 22 |
// [rand.eng.sub], class template subtract_with_carry_engine
|
| 23 |
template<class UIntType, size_t w, size_t s, size_t r>
|
| 24 |
-
class subtract_with_carry_engine;
|
| 25 |
|
| 26 |
// [rand.adapt.disc], class template discard_block_engine
|
| 27 |
template<class Engine, size_t p, size_t r>
|
| 28 |
-
class discard_block_engine;
|
| 29 |
|
| 30 |
// [rand.adapt.ibits], class template independent_bits_engine
|
| 31 |
template<class Engine, size_t w, class UIntType>
|
| 32 |
-
class independent_bits_engine;
|
| 33 |
|
| 34 |
// [rand.adapt.shuf], class template shuffle_order_engine
|
| 35 |
template<class Engine, size_t k>
|
| 36 |
class shuffle_order_engine;
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
// [rand.predef], engines and engine adaptors with predefined parameters
|
| 39 |
-
using minstd_rand0 = see below;
|
| 40 |
-
using minstd_rand = see below;
|
| 41 |
-
using mt19937 = see below;
|
| 42 |
-
using mt19937_64 = see below;
|
| 43 |
-
using ranlux24_base = see below;
|
| 44 |
-
using ranlux48_base = see below;
|
| 45 |
-
using ranlux24 = see below;
|
| 46 |
-
using ranlux48 = see below;
|
| 47 |
using knuth_b = see below;
|
|
|
|
|
|
|
| 48 |
|
| 49 |
using default_random_engine = see below;
|
| 50 |
|
| 51 |
// [rand.device], class random_device
|
| 52 |
class random_device;
|
| 53 |
|
| 54 |
// [rand.util.seedseq], class seed_seq
|
| 55 |
class seed_seq;
|
| 56 |
|
| 57 |
// [rand.util.canonical], function template generate_canonical
|
| 58 |
-
template<class RealType, size_t
|
| 59 |
RealType generate_canonical(URBG& g);
|
| 60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
// [rand.dist.uni.int], class template uniform_int_distribution
|
| 62 |
template<class IntType = int>
|
| 63 |
-
class uniform_int_distribution;
|
| 64 |
|
| 65 |
// [rand.dist.uni.real], class template uniform_real_distribution
|
| 66 |
template<class RealType = double>
|
| 67 |
class uniform_real_distribution;
|
| 68 |
|
|
|
|
| 4 |
#include <initializer_list> // see [initializer.list.syn]
|
| 5 |
|
| 6 |
namespace std {
|
| 7 |
// [rand.req.urng], uniform random bit generator requirements
|
| 8 |
template<class G>
|
| 9 |
+
concept uniform_random_bit_generator = see below; // freestanding
|
| 10 |
|
| 11 |
// [rand.eng.lcong], class template linear_congruential_engine
|
| 12 |
template<class UIntType, UIntType a, UIntType c, UIntType m>
|
| 13 |
+
class linear_congruential_engine; // partially freestanding
|
| 14 |
|
| 15 |
// [rand.eng.mers], class template mersenne_twister_engine
|
| 16 |
template<class UIntType, size_t w, size_t n, size_t m, size_t r,
|
| 17 |
UIntType a, size_t u, UIntType d, size_t s,
|
| 18 |
UIntType b, size_t t,
|
| 19 |
UIntType c, size_t l, UIntType f>
|
| 20 |
class mersenne_twister_engine;
|
| 21 |
|
| 22 |
// [rand.eng.sub], class template subtract_with_carry_engine
|
| 23 |
template<class UIntType, size_t w, size_t s, size_t r>
|
| 24 |
+
class subtract_with_carry_engine; // partially freestanding
|
| 25 |
|
| 26 |
// [rand.adapt.disc], class template discard_block_engine
|
| 27 |
template<class Engine, size_t p, size_t r>
|
| 28 |
+
class discard_block_engine; // partially freestanding
|
| 29 |
|
| 30 |
// [rand.adapt.ibits], class template independent_bits_engine
|
| 31 |
template<class Engine, size_t w, class UIntType>
|
| 32 |
+
class independent_bits_engine; // partially freestanding
|
| 33 |
|
| 34 |
// [rand.adapt.shuf], class template shuffle_order_engine
|
| 35 |
template<class Engine, size_t k>
|
| 36 |
class shuffle_order_engine;
|
| 37 |
|
| 38 |
+
// [rand.eng.philox], class template philox_engine
|
| 39 |
+
template<class UIntType, size_t w, size_t n, size_t r, UIntType... consts>
|
| 40 |
+
class philox_engine; // partially freestanding
|
| 41 |
+
|
| 42 |
// [rand.predef], engines and engine adaptors with predefined parameters
|
| 43 |
+
using minstd_rand0 = see below; // freestanding
|
| 44 |
+
using minstd_rand = see below; // freestanding
|
| 45 |
+
using mt19937 = see below; // freestanding
|
| 46 |
+
using mt19937_64 = see below; // freestanding
|
| 47 |
+
using ranlux24_base = see below; // freestanding
|
| 48 |
+
using ranlux48_base = see below; // freestanding
|
| 49 |
+
using ranlux24 = see below; // freestanding
|
| 50 |
+
using ranlux48 = see below; // freestanding
|
| 51 |
using knuth_b = see below;
|
| 52 |
+
using philox4x32 = see below; // freestanding
|
| 53 |
+
using philox4x64 = see below; // freestanding
|
| 54 |
|
| 55 |
using default_random_engine = see below;
|
| 56 |
|
| 57 |
// [rand.device], class random_device
|
| 58 |
class random_device;
|
| 59 |
|
| 60 |
// [rand.util.seedseq], class seed_seq
|
| 61 |
class seed_seq;
|
| 62 |
|
| 63 |
// [rand.util.canonical], function template generate_canonical
|
| 64 |
+
template<class RealType, size_t digits, class URBG>
|
| 65 |
RealType generate_canonical(URBG& g);
|
| 66 |
|
| 67 |
+
namespace ranges {
|
| 68 |
+
// [alg.rand.generate], generate_random
|
| 69 |
+
template<class R, class G>
|
| 70 |
+
requires output_range<R, invoke_result_t<G&>> &&
|
| 71 |
+
uniform_random_bit_generator<remove_cvref_t<G>>
|
| 72 |
+
constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g);
|
| 73 |
+
|
| 74 |
+
template<class G, output_iterator<invoke_result_t<G&>> O, sentinel_for<O> S>
|
| 75 |
+
requires uniform_random_bit_generator<remove_cvref_t<G>>
|
| 76 |
+
constexpr O generate_random(O first, S last, G&& g);
|
| 77 |
+
|
| 78 |
+
template<class R, class G, class D>
|
| 79 |
+
requires output_range<R, invoke_result_t<D&, G&>> && invocable<D&, G&> &&
|
| 80 |
+
uniform_random_bit_generator<remove_cvref_t<G>> &&
|
| 81 |
+
is_arithmetic_v<invoke_result_t<D&, G&>>
|
| 82 |
+
constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g, D&& d);
|
| 83 |
+
|
| 84 |
+
template<class G, class D, output_iterator<invoke_result_t<D&, G&>> O, sentinel_for<O> S>
|
| 85 |
+
requires invocable<D&, G&> && uniform_random_bit_generator<remove_cvref_t<G>> &&
|
| 86 |
+
is_arithmetic_v<invoke_result_t<D&, G&>>
|
| 87 |
+
constexpr O generate_random(O first, S last, G&& g, D&& d);
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
// [rand.dist.uni.int], class template uniform_int_distribution
|
| 91 |
template<class IntType = int>
|
| 92 |
+
class uniform_int_distribution; // partially freestanding
|
| 93 |
|
| 94 |
// [rand.dist.uni.real], class template uniform_real_distribution
|
| 95 |
template<class RealType = double>
|
| 96 |
class uniform_real_distribution;
|
| 97 |
|