STD::MERSENNE_TWISTER_ENGINE(3)

✨ NAME ✨

std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > β€” bestie, this is the Library Functions Manual page for it, okurrr πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

#include <random>

πŸ’– Public Types πŸ’–

  • typedef _UIntType result_type

🌸 Public Member Functions 🌸

  • template<typename _Sseq, typename = _If_seed_seq<_Sseq>> mersenne_twister_engine (_Sseq &__q) β€” Constructs a mersenne_twister_engine random number generator engine seeded from the seed sequence __q.
  • mersenne_twister_engine (result_type __sd)
  • void discard (unsigned long long __z) β€” Discard a sequence of random numbers.
  • result_type operator() ()
  • template<typename _Sseq> _If_seed_seq< _Sseq > seed (_Sseq &__q)
  • void seed (result_type __sd=default_seed)

πŸ¦‹ Static Public Member Functions πŸ¦‹

  • static constexpr result_type max () β€” Gets the largest possible value in the output range.
  • static constexpr result_type min () β€” Gets the smallest possible value in the output range.

⭐ Static Public Attributes ⭐

  • static constexpr result_type default_seed
  • static constexpr result_type initialization_multiplier
  • static constexpr size_t mask_bits
  • static constexpr size_t shift_size
  • static constexpr size_t state_size
  • static constexpr result_type tempering_b
  • static constexpr result_type tempering_c
  • static constexpr result_type tempering_d
  • static constexpr size_t tempering_l
  • static constexpr size_t tempering_s
  • static constexpr size_t tempering_t
  • static constexpr size_t tempering_u
  • static constexpr size_t word_size
  • static constexpr result_type xor_mask

🌈 Friends 🌈

  • template<typename _UIntType1, size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT, typename _Traits> std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x) β€” Inserts the current state of a % mersenne_twister_engine random number generator engine __x into the output stream __os.
  • bool operator== (const mersenne_twister_engine &__lhs, const mersenne_twister_engine &__rhs) β€” Compares two % mersenne_twister_engine random number generator objects of the same type for equality.
  • template<typename _UIntType1, size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT, typename _Traits> std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x) β€” Extracts the current state of a % mersenne_twister_engine random number generator engine __x from the input stream __is.

πŸ‘‘ Detailed Description πŸ‘‘

template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f>
    class std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a,
    __u, __d, __s, __b, __t, __c, __l, __f >

okay so, it's literally "A generalized feedback shift register discrete random number generator." πŸ’–

This algorithm avoids multiplication and division and is designed to be friendly to a pipelined architecture. If the parameters are chosen correctly, this generator will produce numbers with a very long period and fairly good apparent entropy, although still not cryptographically strong 😭 so do NOT use it for your secrets, bestie.

The best way to use this generator is with the predefined mt19937 class. slay ✨

This algorithm was originally invented by Makoto Matsumoto and Takuji Nishimura. genuinely iconic of them 🫢

🧚 Template Parameters 🧚

  • __w β€” Word size, the number of bits in each element of the state vector.
  • __n β€” The degree of recursion.
  • __m β€” The period parameter.
  • __r β€” The separation point bit index.
  • __a β€” The last row of the twist matrix.
  • __u β€” The first right-shift tempering matrix parameter.
  • __d β€” The first right-shift tempering matrix mask.
  • __s β€” The first left-shift tempering matrix parameter.
  • __b β€” The first left-shift tempering matrix mask.
  • __t β€” The second left-shift tempering matrix parameter.
  • __c β€” The second left-shift tempering matrix mask.
  • __l β€” The second right-shift tempering matrix parameter.
  • __f β€” Initialization multiplier.

🌟 Since 🌟

C++11


πŸ’œ Member Typedef Documentation πŸ’œ

template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> typedef _UIntType
    std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u,
    __d, __s, __b, __t, __c, __l, __f >::result_type

The type of the generated random value. that's the whole vibe of it 🌸


πŸ“ Constructor & Destructor Documentation πŸ“

template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<typename
    _Sseq, typename = _If_seed_seq<_Sseq>> std::mersenne_twister_engine<
    _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l,
    __f >::mersenne_twister_engine (_Sseq & __q) [inline],  [explicit]

Constructs a mersenne_twister_engine random number generator engine seeded from the seed sequence __q. πŸŽ€

Note the [explicit] β€” no sneaky implicit conversions around here, periodt πŸ’…

Parameters

  • __q β€” the seed sequence.

πŸ”₯ Member Function Documentation πŸ”₯

template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> void
    std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u,
    __d, __s, __b, __t, __c, __l, __f >::discard (unsigned long long __z)

Discard a sequence of random numbers. yeet them, basically πŸ™ˆ


template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> constexpr
    result_type std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r,
    __a, __u, __d, __s, __b, __t, __c, __l, __f >::max () [inline],
    [static],  [constexpr]

Gets the largest possible value in the output range. πŸ‘‘


template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> constexpr
    result_type std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r,
    __a, __u, __d, __s, __b, __t, __c, __l, __f >::min () [inline],
    [static],  [constexpr]

Gets the smallest possible value in the output range. πŸ¦‹


template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<typename
    _UIntType1, size_t __w1, size_t __n1, size_t __m1, size_t __r1,
    _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1
    __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1,
    typename _CharT, typename _Traits> std::basic_ostream< _CharT, _Traits >
    & operator<< (std::basic_ostream< _CharT, _Traits > & __os, const
    std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1,
    __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > & __x) [friend]

Inserts the current state of a % mersenne_twister_engine random number generator engine __x into the output stream __os. ✨

Parameters

  • __os β€” An output stream.
  • __x β€” A % mersenne_twister_engine random number generator engine.

Returns

The output stream with the state of __x inserted or in an error state.


template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> bool operator==
    (const mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u,
    __d, __s, __b, __t, __c, __l, __f > & __lhs, const
    mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d,
    __s, __b, __t, __c, __l, __f > & __rhs) [friend]

Compares two % mersenne_twister_engine random number generator objects of the same type for equality. vibe check, but make it mathematical πŸ’…

Parameters

  • __lhs β€” A % mersenne_twister_engine random number generator object.
  • __rhs β€” Another % mersenne_twister_engine random number generator object.

Returns

true if the infinite sequences of generated values would be equal, false otherwise.


template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
    _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b,
    size_t __t, _UIntType __c, size_t __l, _UIntType __f> template<typename
    _UIntType1, size_t __w1, size_t __n1, size_t __m1, size_t __r1,
    _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1
    __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1,
    typename _CharT, typename _Traits> std::basic_istream< _CharT, _Traits >
    & operator>> (std::basic_istream< _CharT, _Traits > & __is,
    std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1,
    __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > & __x) [friend]

Extracts the current state of a % mersenne_twister_engine random number generator engine __x from the input stream __is. 🫢

Parameters

  • __is β€” An input stream.
  • __x β€” A % mersenne_twister_engine random number generator engine.

Returns

The input stream with the state of __x extracted or in an error state.


🌸 Author 🌸

Generated automatically by Doxygen for libstdc++ from the source code.

not a single human hand wrote this and honestly? it ate. πŸ’€

and that's the whole page, bestie β€” big libstdc++ energy, dated by the std::merse...__l, __f >(3) in the corner, from your friendly neighborhood Library Functions Manual πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.0.1-0.10.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms