__GNU_PARALLEL::_DRANDOMSHUFFLINGGLOBALDATA(3cxx)

🌸 NAME 🌸

ok so bestie, gather round β€” __gnu_parallel::_DRandomShufflingGlobalData< _RAIter > is the shared-state struct that holds Data known to every thread participating in __gnu_parallel::__parallel_random_shuffle().` Like, every thread in the shuffle party gets a copy of this and they all see the same info. teamwork makes the dream work fr fr πŸ’…

(this page lives in section 3cxx of the manual, iykyk πŸŽ€)


✨ SYNOPSIS ✨

#include <random_shuffle.h>

πŸ¦‹ Public Types

  • _DifferenceType β€” it's a typedef for _TraitsType::difference_type, no cap.
  • _TraitsType β€” a typedef for std::iterator_traits< _RAIter > β€” yes, the whole traits bundle.
  • _ValueType β€” a typedef for _TraitsType::value_type, literally the value type, periodt.

🫢 Public Member Functions

  • _DRandomShufflingGlobalData (_RAIter &__source) β€” Constructor. that's the whole description bestie, iconic of it.

πŸ‘‘ Public Attributes

  • _ThreadIndex * _M_bin_proc β€” Number of the thread that will further process the corresponding bin.
  • _DifferenceType ** _M_dist β€” Two-dimensional array to hold the thread-bin distribution.
  • int _M_num_bins β€” Number of bins to distribute to.
  • int _M_num_bits β€” Number of bits needed to address the bins.
  • _RAIter & _M_source β€” Begin iterator of the __source.
  • _DifferenceType * _M_starts β€” Start indexes of the threads' __chunks.
  • _ValueType ** _M_temporaries β€” Temporary arrays for each thread. one per thread, cute.

πŸ’– Detailed Description πŸ’–

template<typename _RAIter>
struct __gnu_parallel::_DRandomShufflingGlobalData< _RAIter >

ok so it's a template struct on _RAIter, and its whole personality is: "Data known to every thread participating in __gnu_parallel::__parallel_random_shuffle()." that's the vibe. shared data, all threads invited to the group chat. 🧚✨


🌈 Constructor & Destructor Documentation 🌈

template<typename _RAIter >
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_DRandomShufflingGlobalData (_RAIter & __source) [inline]

Constructor. takes a reference to _RAIter called __source. it's [inline] btw. that's it, that's the constructor, she's lowkey mysterious 😭


πŸ“ Member Data Documentation πŸ“

πŸ’œ _M_bin_proc

template<typename _RAIter > _ThreadIndex*
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_bin_proc

Number of the thread that will further process the corresponding bin.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

πŸ’œ _M_dist

template<typename _RAIter > _DifferenceType**
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_dist

Two-dimensional array to hold the thread-bin distribution. Dimensions are (_M_num_threads + 1) __x (_M_num_bins + 1). ✨

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

πŸ’œ _M_num_bins

template<typename _RAIter > int
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bins

Number of bins to distribute to.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

πŸ’œ _M_num_bits

template<typename _RAIter > int
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_num_bits

Number of bits needed to address the bins.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

πŸ’œ _M_source

template<typename _RAIter > _RAIter&
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_source

Begin iterator of the __source.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs_pu().

ok note the glow-up here: _M_source is only referenced by the _pu() function, not both. she's exclusive πŸ’…

πŸ’œ _M_starts

template<typename _RAIter > _DifferenceType*
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_starts

Start indexes of the threads' __chunks.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().

πŸ’œ _M_temporaries

template<typename _RAIter > _ValueType**
__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_temporaries

Temporary arrays for each thread.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__parallel_random_shuffle_drs_pu().


πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for libstdc++ from the source code. not a human author bestie, a robot did this, and honestly? slay πŸ€–βœ¨


so yeah, that's the whole page β€” footer says libstdc++ (the manual/source it came from) and the date line got absolutely chopped in the original, giving us that iconic libst__gnu_parallel:...Data< _RAIter >(3cxx) situation. love that for us. bye bestie, go shuffle something πŸ’–πŸ¦‹