31 #ifndef _GLIBCXX_PARALLEL_EQUALLY_SPLIT_H 
   32 #define _GLIBCXX_PARALLEL_EQUALLY_SPLIT_H 1 
   46   template<
typename _DifferenceType, 
typename _OutputIterator>
 
   51       _DifferenceType __chunk_length = __n / __num_threads;
 
   52       _DifferenceType __num_longer_chunks = __n % __num_threads;
 
   53       _DifferenceType __pos = 0;
 
   57       __pos += ((__i < __num_longer_chunks)
 
   58             ? (__chunk_length + 1) : __chunk_length);
 
   73   template<
typename _DifferenceType>
 
   79       _DifferenceType __chunk_length = __n / __num_threads;
 
   80       _DifferenceType __num_longer_chunks = __n % __num_threads;
 
   81       if (__thread_no < __num_longer_chunks)
 
   82     return __thread_no * (__chunk_length + 1);
 
   84     return __num_longer_chunks * (__chunk_length + 1)
 
   85           + (__thread_no - __num_longer_chunks) * __chunk_length;
 
_OutputIterator __equally_split(_DifferenceType __n, _ThreadIndex __num_threads, _OutputIterator __s)
function to split a sequence into parts of almost equal size. 
uint16_t _ThreadIndex
Unsigned integer to index a thread number. The maximum thread number (for each processor) must fit in...
_DifferenceType __equally_split_point(_DifferenceType __n, _ThreadIndex __num_threads, _ThreadIndex __thread_no)
function to split a sequence into parts of almost equal size. 
GNU parallel code for public use.