__GNU_PARALLEL::_DRANDOMSHUFFLINGGLOBALDATA(3)

πŸ“¦
version 16.2.1+r23+gd564253eb6c8 Β· 6 versions
, in arch rolling, centos-stream 10, fedora 43, fedora 44

πŸ’– NAME πŸ’–

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter > β€” bestie, this is the data known to every thread that's out here participating in __gnu_parallel::__parallel_random_shuffle(). It's the shared group-chat lore for the whole shuffle squad. 🫢

So like, this page lives in the Library Functions Manual, section 3, and it's a libstdc++ situation. Okurrr let's get into it. ✨


🌈 SYNOPSIS 🌈

#include <random_shuffle.h>

✨ Public Types ✨

  • _DifferenceType β€” a typedef for _TraitsType::difference_type, the type that measures how far apart things are. πŸ¦‹
  • _TraitsType β€” a typedef for std::iterator_traits< _RAIter >, literally just the traits of your iterator. Iconic.
  • _ValueType β€” a typedef for _TraitsType::value_type, aka the type of the actual things in there. πŸ’…

🫢 Public Member Functions 🫢

  • _DRandomShufflingGlobalData(_RAIter &__source) β€” the constructor. She constructs. That's it, that's the whole job. 🌸

πŸŽ€ Public Attributes πŸŽ€

  • _ThreadIndex * _M_bin_proc β€” number of the thread that will further process the corresponding bin. Each bin's got a designated handler, no cap. πŸ‘‘
  • _DifferenceType ** _M_dist β€” a two-dimensional array to hold the thread-bin distribution. So many dimensions. So much drama. πŸŒ€
  • int _M_num_bins β€” number of bins to distribute to. πŸ“
  • int _M_num_bits β€” number of bits needed to address the bins. Bit math era. ⭐
  • _RAIter & _M_source β€” begin iterator of the __source. Where it all starts, literally.
  • _DifferenceType * _M_starts β€” start indexes of the threads' __chunks. Everybody gets a starting line. 🏁
  • _ValueType ** _M_temporaries β€” temporary arrays for each thread. Scratch space, per thread, as a treat. πŸ’œ

🧚 Detailed Description 🧚

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

"Data known to every thread participating in __gnu_parallel::__parallel_random_shuffle()." πŸ’–

It's templated on _RAIter, so it adapts to whatever iterator you hand it. Main character energy but make it generic.

πŸ’… Constructor & Destructor Documentation πŸ’…

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

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

Constructor. πŸŽ€

She References _M_source β€” so yeah, the source iterator is getting held onto. That's the whole vibe.


πŸ”₯ Member Data Documentation πŸ”₯

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_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().

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_dist

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

Two-dimensional array to hold the thread-bin distribution. Its dimensions are (_M_num_threads + 1) __x__ (_M_num_bins + 1). Not me getting emotional over a matrix. 😭

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

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_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().

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_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().

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_source

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

Begin iterator of the __source. The origin story. πŸŒ…

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

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_starts

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

Start indexes of the threads' __chunks. Every chunk gets its moment. ✨

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

__gnu_parallel::_DRandomShufflingGlobalData< _RAIter >::_M_temporaries

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

Temporary arrays for each thread. Everyone gets their own lil scratchpad, obsessed. πŸ¦‹

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. πŸ€– (She's not written by a human, she's generated, and honestly? Slay.)


Okay bestie that's the whole page!! πŸ’œ Big kiss to libstdc++ for hosting it and to Doxygen for generating it, and yeah this is the <rainbow>__gnu_para... _RAIter >(3)` page, section 3 of the Library Functions Manual. Go forth and shuffle randomly, you absolute icon. πŸŽ€βœ¨πŸ’–

πŸ“¦ 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
  • centos-stream 10: gcc-toolset-15-libstdc++-docs 15.2.1-8.1.el10 Β· 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
  • centos-stream 10: gcc-toolset-16-libstdc++-docs 16.2.1-1.3.el10 Β· 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
  • centos-stream 10: libstdc++-docs 14.4.1-4.el10 Β· 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 43: libstdc++-docs 15.2.1-2.fc43 Β· 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 43: libstdc++-docs 15.3.1-1.fc43 Β· 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.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