---
name: "__gnu_parallel::_DRandomShufflingGlobalData"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::_DRandomShufflingGlobalData"
---

# \_\_gnu\_parallel::\_DRandomShufflingGlobalData(3)

Data known to every thread participating in \_\_gnu\_parallel::\_\_parallel\_random\_shuffle().

## NAME

\_\_gnu\_parallel::\_DRandomShufflingGlobalData\< \_RAIter \> - Data known to every thread participating in \_\_gnu\_parallel::\_\_parallel\_random\_shuffle().

## SYNOPSIS

\#include \<random\_shuffle.h\>

### Public Types

typedef \_TraitsType::difference\_type **\_DifferenceType**\
 typedef **std::iterator\_traits**\< \_RAIter \> **\_TraitsType**\
 typedef \_TraitsType::value\_type **\_ValueType**\

### Public Member Functions

**\_DRandomShufflingGlobalData** (\_RAIter &\_\_source)\
 Constructor.

### 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.

## Detailed Description

### template\<typename \_RAIter\>

struct \_\_gnu\_parallel::\_DRandomShufflingGlobalData\< \_RAIter \>"Data known to every thread participating in \_\_gnu\_parallel::\_\_parallel\_random\_shuffle().

## Constructor & Destructor Documentation

### template\<typename \_RAIter\> \_\_gnu\_parallel::\_DRandomShufflingGlobalData\< \_RAIter \>::\_DRandomShufflingGlobalData (\_RAIter & \_\_source) \[inline\]

Constructor.

References **\_M\_source**.

## Member Data Documentation

### 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()**.

### template\<typename \_RAIter\> \_DifferenceType\*\* \_\_gnu\_parallel::\_DRandomShufflingGlobalData\< \_RAIter \>::\_M\_dist

Two-dimensional array to hold the thread-bin distribution. Dimensions (\_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()**.

### 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()**.

### 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()**.

### template\<typename \_RAIter\> \_RAIter& \_\_gnu\_parallel::\_DRandomShufflingGlobalData\< \_RAIter \>::\_M\_source

Begin iterator of the \_\_source.

Referenced by **\_DRandomShufflingGlobalData()**, and **\_\_gnu\_parallel::\_\_parallel\_random\_shuffle\_drs\_pu()**.

### 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()**.

### 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.
