STD::INDEPENDENT_BITS_ENGINE(3cxx)

🌸 std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > 🌸

okay bestie, sit down, hydrate, and let me tell you about this little icon from the <random> header β€” it's <pink>libstdc++</pink>'s std::independent_bits_engine`, and honestly? she's giving very specific, very powerful, lowkey-underrated main character energy πŸ’…


✨ SYNOPSIS ✨

#include <random>

πŸŽ€ Public Types

  • typedef _UIntType result_type β€” the type of the value she actually hands you.

🫢 Public Member Functions

  • independent_bits_engine () β€” Constructs a default independent_bits_engine engine.
  • independent_bits_engine (_RandomNumberEngine &&__rng) β€” Move constructs a independent_bits_engine engine.
  • template<typename _Sseq , typename = _If_seed_seq<_Sseq>> independent_bits_engine (_Sseq &__q) β€” Generator construct a independent_bits_engine engine.
  • independent_bits_engine (const _RandomNumberEngine &__rng) β€” Copy constructs a independent_bits_engine engine.
  • independent_bits_engine (result_type __s) β€” Seed constructs a independent_bits_engine engine.
  • const _RandomNumberEngine & base () const noexcept β€” Gets a const reference to the underlying generator engine object.
  • void discard (unsigned long long __z) β€” Discard a sequence of random numbers.
  • result_type operator() () β€” Gets the next value in the generated random number sequence.
  • void seed () β€” Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.
  • template<typename _Sseq > _If_seed_seq< _Sseq > seed (_Sseq &__q) β€” Reseeds the independent_bits_engine object with the given seed sequence.
  • void seed (result_type __s) β€” Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.

⭐ Static Public Member Functions

  • static constexpr result_type max () β€” Gets the maximum value in the generated random number range.
  • static constexpr result_type min () β€” Gets the minimum value in the generated random number range.

πŸ¦‹ Friends

  • bool operator== (const independent_bits_engine &__lhs, const independent_bits_engine &__rhs) β€” Compares two independent_bits_engine random number generator objects of the same type for equality.
  • template<typename _CharT , typename _Traits > std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType > &__x) β€” Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input stream __is.

πŸ’– Detailed Description πŸ’–

template<typename _RandomNumberEngine, size_t __w, typename _UIntType>
class std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >

So like β€” `"Produces random numbers by combining random numbers from some base engine to produce random numbers with a specified number of bits __w.

fr fr, that's the whole bit. She takes your base engine's output, smushes a few of those draws together, and gives you back numbers of exactly __w bits. iconic behaviour, no notes 🌈

Since: C++11 ✨


πŸ“ Member Typedef Documentation πŸ“

typedef _UIntType β€” result_type

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
typedef _UIntType std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::result_type

The type of the generated random value. that's it, that's the typedef πŸ’œ


🧚 Constructor & Destructor Documentation 🧚

πŸŽ€ independent_bits_engine () β€” default ctor

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine () [inline]

Constructs a default independent_bits_engine engine. The underlying engine is default constructed as well. cute, effortless, zero-argument slay ✨


πŸŽ€ independent_bits_engine (const _RandomNumberEngine & __rng) β€” copy ctor

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
std::independent_bits_engine< _RandomNumberEngine, __w, _UIntType >::independent_bits_engine (const _RandomNumberEngine & __rng) [inline], [explicit]

Copy constructs a independent_bits_engine engine. Copies an existing base class random number generator.

Parameters

  • __rng β€” An existing (base class) engine object.

πŸŽ€ independent_bits_engine (_RandomNumberEngine && __rng) β€” move ctor

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::independent_bits_engine (_RandomNumberEngine && __rng) [inline], [explicit]

Move constructs a independent_bits_engine engine. Copies an existing base class random number generator.

Parameters

  • __rng β€” An existing (base class) engine object.
yes bestie, the docs literally say "copies" for the move constructor too β€” I'm just telling you what it says πŸ™ˆ

πŸŽ€ independent_bits_engine (result_type __s) β€” seed ctor

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::independent_bits_engine (result_type __s) [inline], [explicit]

Seed constructs a independent_bits_engine engine. Constructs the underlying generator engine seeded with __s.

Parameters

  • __s β€” A seed value for the base class engine.

πŸŽ€ independent_bits_engine (_Sseq & __q) β€” seed-sequence ctor

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
template<typename _Sseq , typename = _If_seed_seq<_Sseq>>
std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::independent_bits_engine (_Sseq & __q) [inline], [explicit]

Generator construct a independent_bits_engine engine.

Parameters

  • __q β€” A seed sequence.

🌸 Member Function Documentation 🌸

πŸ’… base ()

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
const _RandomNumberEngine & std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::base () const [inline], [noexcept]

Gets a const reference to the underlying generator engine object. peek at the engine under the engine, iykyk πŸ‘‘


πŸ’… discard (unsigned long long __z)

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
void std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::discard (unsigned long long __z) [inline]

Discard a sequence of random numbers. just yeet __z of them into the void πŸ’€


πŸ’… max ()

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
static constexpr result_type std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::max () [inline], [static], [constexpr]

Gets the maximum value in the generated random number range.


πŸ’… min ()

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
static constexpr result_type std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::min () [inline], [static], [constexpr]

Gets the minimum value in the generated random number range.


πŸ’… operator() ()

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::result_type std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::operator() ()

Gets the next value in the generated random number sequence. the moment you've all been waiting for ✨

References std::__lg(), std::numeric_limits< _Tp >::max(), and std::numeric_limits< _Tp >::min().


πŸ’… seed ()

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
void std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::seed () [inline]

Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.


πŸ’… seed (_Sseq & __q)

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
template<typename _Sseq > _If_seed_seq< _Sseq > std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::seed (_Sseq & __q) [inline]

Reseeds the independent_bits_engine object with the given seed sequence.

Parameters

  • __q β€” A seed generator function.

πŸ’… seed (result_type __s)

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
void std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType >::seed (result_type __s) [inline]

Reseeds the independent_bits_engine object with the default seed for the underlying base class generator engine.

okay so real talk β€” the docs say "default seed" here even though there's an __s parameter sitting right there 😭 I'm reporting, not explaining πŸ’€

🫢 operator==

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
bool operator== (const independent_bits_engine< _RandomNumberEngine , __w , _UIntType > & __lhs, const independent_bits_engine< _RandomNumberEngine , __w , _UIntType > & __rhs) [friend]

Compares two independent_bits_engine random number generator objects of the same type for equality.

Parameters

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

Returns

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

like, are y'all gonna produce the exact same infinity of numbers? that's the vibe check πŸ¦‹


🫢 operator>>

template<typename _RandomNumberEngine , size_t __w , typename _UIntType >
template<typename _CharT , typename _Traits > std::basic_istream< _CharT , _Traits > & operator>> (std::basic_istream< _CharT , _Traits > & __is, std::independent_bits_engine< _RandomNumberEngine , __w , _UIntType > & __x) [friend]

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

Parameters

  • __is β€” An input stream.
  • __x β€” A independent_bits_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. yes bestie, a robot wrote this, and I'm just the messenger πŸ’œ


okay that's the whole page, mwah 🫢 stay hydrated, seed your engines, and remember β€” the footer said libstdstd::independe..._w, _UIntType >(3cxx), which is the libstdc++ manual, page std::independe..._w, _UIntType >(3cxx), and yeah the title got truncated by the formatter and honestly? relatable. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from