Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > bfb47da7e0322bcb0e23e4b1838d9db9 > files > 1620

libstdc++-docs-8.4.0-1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libstdc++: __gnu_parallel Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libstdc++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a01575.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">__gnu_parallel Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09431.html">__accumulate_binop_reduct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09399.html">__accumulate_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09411.html">__adjacent_difference_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09347.html">__adjacent_find_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09295.html">__binder1st</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09299.html">__binder2nd</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09395.html">__count_if_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09391.html">__count_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09371.html">__fill_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09355.html">__find_first_of_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09343.html">__find_if_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09363.html">__for_each_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09367.html">__generate_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09339.html">__generic_find_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09359.html">__generic_for_each_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09407.html">__identity_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09403.html">__inner_product_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09427.html">__max_element_reduct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09423.html">__min_element_reduct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09351.html">__mismatch_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09527.html">__multiway_merge_3_variant_sentinel_switch</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09531.html">__multiway_merge_3_variant_sentinel_switch&lt; true, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09535.html">__multiway_merge_4_variant_sentinel_switch</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09539.html">__multiway_merge_4_variant_sentinel_switch&lt; true, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09543.html">__multiway_merge_k_variant_sentinel_switch</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09547.html">__multiway_merge_k_variant_sentinel_switch&lt; false, __stable, _RAIterIterator, _RAIter3, _DifferenceTp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09387.html">__replace_if_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09383.html">__replace_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09375.html">__transform1_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09379.html">__transform2_selector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09291.html">__unary_negate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09611.html">_DRandomShufflingGlobalData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09615.html">_DRSSorterPU</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09419.html">_DummyReduct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09287.html">_EqualFromLess</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09303.html">_EqualTo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09515.html">_GuardedIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09435.html">_IteratorPair</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09439.html">_IteratorTriple</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09711.html">_Job</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09307.html">_Less</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09507.html">_Lexicographic</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09511.html">_LexicographicReverse</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09451.html">_LoserTree</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09455.html">_LoserTree&lt; false, _Tp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09443.html">_LoserTreeBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09467.html">_LoserTreePointer</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09471.html">_LoserTreePointer&lt; false, _Tp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09459.html">_LoserTreePointerBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09499.html">_LoserTreePointerUnguarded</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09503.html">_LoserTreePointerUnguarded&lt; false, _Tp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09491.html">_LoserTreePointerUnguardedBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09523.html">_LoserTreeTraits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09483.html">_LoserTreeUnguarded</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09487.html">_LoserTreeUnguarded&lt; false, _Tp, _Compare &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09475.html">_LoserTreeUnguardedBase</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09323.html">_Multiplies</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09415.html">_Nothing</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09559.html">_Piece</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09315.html">_Plus</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09563.html">_PMWMSSortingData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09335.html">_PseudoSequence</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09331.html">_PseudoSequenceIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09283.html">_QSBThreadLocal</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09607.html">_RandomNumber</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09603.html">_RestrictedBoundedConcurrentQueue</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09551.html">_SamplingSorter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09555.html">_SamplingSorter&lt; false, _RAIter, _StrictWeakOrdering &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09635.html">_Settings</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09567.html">_SplitConsistently</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09575.html">_SplitConsistently&lt; false, _RAIter, _Compare, _SortingPlacesIterator &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09571.html">_SplitConsistently&lt; true, _RAIter, _Compare, _SortingPlacesIterator &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09695.html">balanced_quicksort_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09651.html">balanced_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09703.html">constant_size_blocks_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09647.html">default_parallel_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09707.html">equal_split_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09671.html">exact_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09667.html">find_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09699.html">growing_blocks_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09683.html">multiway_mergesort_exact_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09687.html">multiway_mergesort_sampling_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09679.html">multiway_mergesort_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09663.html">omp_loop_static_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09659.html">omp_loop_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09643.html">parallel_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09691.html">quicksort_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09675.html">sampling_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09639.html">sequential_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a09655.html">unbalanced_tag</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad8a0790a8380d657d3e238ec3f26d584"><td class="memItemLeft" align="right" valign="top">typedef unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#ad8a0790a8380d657d3e238ec3f26d584">_BinIndex</a></td></tr>
<tr class="separator:ad8a0790a8380d657d3e238ec3f26d584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1171c39f9e5afad6392c7aeefb81115"><td class="memItemLeft" align="right" valign="top">typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a></td></tr>
<tr class="separator:aa1171c39f9e5afad6392c7aeefb81115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cbb61a4863a306daa23823d89f9bef1"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a1cbb61a4863a306daa23823d89f9bef1">_SequenceIndex</a></td></tr>
<tr class="separator:a1cbb61a4863a306daa23823d89f9bef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05e502e51bfc3233671730f74a44dc6a"><td class="memItemLeft" align="right" valign="top">typedef uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a></td></tr>
<tr class="separator:a05e502e51bfc3233671730f74a44dc6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:abfff682f83a1eacf1b43ad2b33a1954f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#abfff682f83a1eacf1b43ad2b33a1954f">_AlgorithmStrategy</a> { <b>heuristic</b>, 
<b>force_sequential</b>, 
<b>force_parallel</b>
 }</td></tr>
<tr class="separator:abfff682f83a1eacf1b43ad2b33a1954f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a75203febda4d2e4fab646bf6a94252"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a1a75203febda4d2e4fab646bf6a94252">_FindAlgorithm</a> { <b>GROWING_BLOCKS</b>, 
<b>CONSTANT_SIZE_BLOCKS</b>, 
<b>EQUAL_SPLIT</b>
 }</td></tr>
<tr class="separator:a1a75203febda4d2e4fab646bf6a94252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf16f5ba3af149689c7ed95309b7e91d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#abf16f5ba3af149689c7ed95309b7e91d">_MultiwayMergeAlgorithm</a> { <b>LOSER_TREE</b>
 }</td></tr>
<tr class="separator:abf16f5ba3af149689c7ed95309b7e91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76f6cbf29b1b8d57762cce1ed9bd01a8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">_Parallelism</a> { <br />
&#160;&#160;<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8a7e6aa054fd848be925726fcf7b4eb3ce">sequential</a>, 
<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8ac530f35e669c50e9676af20454e1676f">parallel_unbalanced</a>, 
<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8a44044e5486122945728060ea6de7d32c">parallel_balanced</a>, 
<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8ad1e39d5a03b2603328b50ada20730bd0">parallel_omp_loop</a>, 
<br />
&#160;&#160;<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8aa5624cdd99806daed0060c56908fd043">parallel_omp_loop_static</a>, 
<a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8aec9d9a6b7777354079bb906baaec2ff4">parallel_taskqueue</a>
<br />
 }</td></tr>
<tr class="separator:a76f6cbf29b1b8d57762cce1ed9bd01a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a4a811c81e2fb4a7722ee69762c7380"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a6a4a811c81e2fb4a7722ee69762c7380">_PartialSumAlgorithm</a> { <b>RECURSIVE</b>, 
<b>LINEAR</b>
 }</td></tr>
<tr class="separator:a6a4a811c81e2fb4a7722ee69762c7380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35bfabad218af713f172257aecd8414e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a35bfabad218af713f172257aecd8414e">_SortAlgorithm</a> { <b>MWMS</b>, 
<b>QS</b>, 
<b>QS_BALANCED</b>
 }</td></tr>
<tr class="separator:a35bfabad218af713f172257aecd8414e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace24b9f316fde5ea598815403cfd02bb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#ace24b9f316fde5ea598815403cfd02bb">_SplittingAlgorithm</a> { <b>SAMPLING</b>, 
<b>EXACT</b>
 }</td></tr>
<tr class="separator:ace24b9f316fde5ea598815403cfd02bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4096ee6025f5c32e1524971c2eae0407"><td class="memTemplParams" colspan="2"><a id="a4096ee6025f5c32e1524971c2eae0407"></a>
template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a4096ee6025f5c32e1524971c2eae0407"><td class="memTemplItemLeft" align="right" valign="top">_Tp&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__add_omp</b> (volatile _Tp *__ptr, _Tp __addend)</td></tr>
<tr class="separator:a4096ee6025f5c32e1524971c2eae0407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9807ee5cc58530be7b997207e2bf1f3"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _DifferenceTp &gt; </td></tr>
<tr class="memitem:ab9807ee5cc58530be7b997207e2bf1f3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ab9807ee5cc58530be7b997207e2bf1f3">__calc_borders</a> (_RAIter __elements, _DifferenceTp __length, _DifferenceTp *__off)</td></tr>
<tr class="separator:ab9807ee5cc58530be7b997207e2bf1f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9209142c30164030551903748dd4206a"><td class="memTemplParams" colspan="2"><a id="a9209142c30164030551903748dd4206a"></a>
template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a9209142c30164030551903748dd4206a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__cas_omp</b> (volatile _Tp *__ptr, _Tp __comparand, _Tp __replacement)</td></tr>
<tr class="separator:a9209142c30164030551903748dd4206a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd4441e0f846fee44966195a91e9e68"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:accd4441e0f846fee44966195a91e9e68"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#accd4441e0f846fee44966195a91e9e68">__compare_and_swap</a> (volatile _Tp *__ptr, _Tp __comparand, _Tp __replacement)</td></tr>
<tr class="separator:accd4441e0f846fee44966195a91e9e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e1bf93702dd25b08e296ef85aa0c7fb"><td class="memTemplParams" colspan="2"><a id="a8e1bf93702dd25b08e296ef85aa0c7fb"></a>
template&lt;typename _IIter , typename _OutputIterator &gt; </td></tr>
<tr class="memitem:a8e1bf93702dd25b08e296ef85aa0c7fb"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__copy_tail</b> (<a class="el" href="a07767.html">std::pair</a>&lt; _IIter, _IIter &gt; __b, <a class="el" href="a07767.html">std::pair</a>&lt; _IIter, _IIter &gt; __e, _OutputIterator __r)</td></tr>
<tr class="separator:a8e1bf93702dd25b08e296ef85aa0c7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee3989c0ed2561801b8a6c0282008cca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#aee3989c0ed2561801b8a6c0282008cca">__decode2</a> (<a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a> __x, int &amp;__a, int &amp;__b)</td></tr>
<tr class="separator:aee3989c0ed2561801b8a6c0282008cca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56184d12b3d8f441fc14150b15a091c7"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _DifferenceTp &gt; </td></tr>
<tr class="memitem:a56184d12b3d8f441fc14150b15a091c7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a56184d12b3d8f441fc14150b15a091c7">__determine_samples</a> (<a class="el" href="a09563.html">_PMWMSSortingData</a>&lt; _RAIter &gt; *__sd, _DifferenceTp __num_samples)</td></tr>
<tr class="separator:a56184d12b3d8f441fc14150b15a091c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fcc29eb3f2d9c83756a9d99b4105b3b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#a7fcc29eb3f2d9c83756a9d99b4105b3b">__encode2</a> (int __a, int __b)</td></tr>
<tr class="separator:a7fcc29eb3f2d9c83756a9d99b4105b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac799255921e70b0378d145924d673f9c"><td class="memTemplParams" colspan="2">template&lt;typename _DifferenceType , typename _OutputIterator &gt; </td></tr>
<tr class="memitem:ac799255921e70b0378d145924d673f9c"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac799255921e70b0378d145924d673f9c">__equally_split</a> (_DifferenceType __n, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads, _OutputIterator __s)</td></tr>
<tr class="separator:ac799255921e70b0378d145924d673f9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e3a77cb920e419144b72d6d20167dfd"><td class="memTemplParams" colspan="2">template&lt;typename _DifferenceType &gt; </td></tr>
<tr class="memitem:a8e3a77cb920e419144b72d6d20167dfd"><td class="memTemplItemLeft" align="right" valign="top">_DifferenceType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a8e3a77cb920e419144b72d6d20167dfd">__equally_split_point</a> (_DifferenceType __n, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __thread_no)</td></tr>
<tr class="separator:a8e3a77cb920e419144b72d6d20167dfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a5a84c8a6049cd3cc83968c6eae088"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a56a5a84c8a6049cd3cc83968c6eae088"><td class="memTemplItemLeft" align="right" valign="top">_Tp&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a56a5a84c8a6049cd3cc83968c6eae088">__fetch_and_add</a> (volatile _Tp *__ptr, _Tp __addend)</td></tr>
<tr class="separator:a56a5a84c8a6049cd3cc83968c6eae088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f2d50d4b5c617ce47d37a162e6081a"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </td></tr>
<tr class="memitem:a98f2d50d4b5c617ce47d37a162e6081a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; _RAIter1, _RAIter2 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a98f2d50d4b5c617ce47d37a162e6081a">__find_template</a> (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred, _Selector __selector)</td></tr>
<tr class="separator:a98f2d50d4b5c617ce47d37a162e6081a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac66b8076d51f825a7e92eb10a905e089"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </td></tr>
<tr class="memitem:ac66b8076d51f825a7e92eb10a905e089"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; _RAIter1, _RAIter2 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac66b8076d51f825a7e92eb10a905e089">__find_template</a> (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred, _Selector __selector, <a class="el" href="a09707.html">equal_split_tag</a>)</td></tr>
<tr class="separator:ac66b8076d51f825a7e92eb10a905e089"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a023cf3e54446506e67f08c073d02f7f1"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </td></tr>
<tr class="memitem:a023cf3e54446506e67f08c073d02f7f1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; _RAIter1, _RAIter2 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a023cf3e54446506e67f08c073d02f7f1">__find_template</a> (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred, _Selector __selector, <a class="el" href="a09699.html">growing_blocks_tag</a>)</td></tr>
<tr class="separator:a023cf3e54446506e67f08c073d02f7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64084e4cc27edb342d9fe25566c8003a"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </td></tr>
<tr class="memitem:a64084e4cc27edb342d9fe25566c8003a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07767.html">std::pair</a>&lt; _RAIter1, _RAIter2 &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a64084e4cc27edb342d9fe25566c8003a">__find_template</a> (_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred, _Selector __selector, <a class="el" href="a09703.html">constant_size_blocks_tag</a>)</td></tr>
<tr class="separator:a64084e4cc27edb342d9fe25566c8003a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ebbe56e1b059cba72c3d706307a0e50"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _UserOp , typename _Functionality , typename _Red , typename _Result &gt; </td></tr>
<tr class="memitem:a0ebbe56e1b059cba72c3d706307a0e50"><td class="memTemplItemLeft" align="right" valign="top">_UserOp&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a0ebbe56e1b059cba72c3d706307a0e50">__for_each_template_random_access</a> (_IIter __begin, _IIter __end, _UserOp __user_op, _Functionality &amp;__functionality, _Red __reduction, _Result __reduction_start, _Result &amp;__output, typename std::iterator_traits&lt; _IIter &gt;::difference_type __bound, <a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">_Parallelism</a> __parallelism_tag)</td></tr>
<tr class="separator:a0ebbe56e1b059cba72c3d706307a0e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c48efb47ea3e00a7ef666d595ae185"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </td></tr>
<tr class="memitem:a12c48efb47ea3e00a7ef666d595ae185"><td class="memTemplItemLeft" align="right" valign="top">_Op&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a12c48efb47ea3e00a7ef666d595ae185">__for_each_template_random_access_ed</a> (_RAIter __begin, _RAIter __end, _Op __o, _Fu &amp;__f, _Red __r, _Result __base, _Result &amp;__output, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __bound)</td></tr>
<tr class="separator:a12c48efb47ea3e00a7ef666d595ae185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a5228179a033ede58cd143f66cdf354"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </td></tr>
<tr class="memitem:a6a5228179a033ede58cd143f66cdf354"><td class="memTemplItemLeft" align="right" valign="top">_Op&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a6a5228179a033ede58cd143f66cdf354">__for_each_template_random_access_omp_loop</a> (_RAIter __begin, _RAIter __end, _Op __o, _Fu &amp;__f, _Red __r, _Result __base, _Result &amp;__output, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __bound)</td></tr>
<tr class="separator:a6a5228179a033ede58cd143f66cdf354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfc9f0a346a7f323e8a3ba07b772587d"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </td></tr>
<tr class="memitem:adfc9f0a346a7f323e8a3ba07b772587d"><td class="memTemplItemLeft" align="right" valign="top">_Op&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#adfc9f0a346a7f323e8a3ba07b772587d">__for_each_template_random_access_omp_loop_static</a> (_RAIter __begin, _RAIter __end, _Op __o, _Fu &amp;__f, _Red __r, _Result __base, _Result &amp;__output, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __bound)</td></tr>
<tr class="separator:adfc9f0a346a7f323e8a3ba07b772587d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14bdca2e9c62cde7dd8478d972f60272"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </td></tr>
<tr class="memitem:a14bdca2e9c62cde7dd8478d972f60272"><td class="memTemplItemLeft" align="right" valign="top">_Op&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a14bdca2e9c62cde7dd8478d972f60272">__for_each_template_random_access_workstealing</a> (_RAIter __begin, _RAIter __end, _Op __op, _Fu &amp;__f, _Red __r, _Result __base, _Result &amp;__output, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __bound)</td></tr>
<tr class="separator:a14bdca2e9c62cde7dd8478d972f60272"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa72851b809c2b314bc09580c3512f281"><td class="memItemLeft" align="right" valign="top"><a id="aa72851b809c2b314bc09580c3512f281"></a>
<a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>__get_max_threads</b> ()</td></tr>
<tr class="separator:aa72851b809c2b314bc09580c3512f281"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c63a760ea14f4f5c43aa39f36c0e8ea"><td class="memItemLeft" align="right" valign="top"><a id="a8c63a760ea14f4f5c43aa39f36c0e8ea"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>__is_parallel</b> (const <a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">_Parallelism</a> __p)</td></tr>
<tr class="separator:a8c63a760ea14f4f5c43aa39f36c0e8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34e76513fa46ae5c7bc8c45677289112"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a34e76513fa46ae5c7bc8c45677289112"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a34e76513fa46ae5c7bc8c45677289112">__is_sorted</a> (_IIter __begin, _IIter __end, _Compare __comp)</td></tr>
<tr class="separator:a34e76513fa46ae5c7bc8c45677289112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74914ea59d68887b517e12c90189dbcd"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a74914ea59d68887b517e12c90189dbcd"><td class="memTemplItemLeft" align="right" valign="top">_RAIter&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a74914ea59d68887b517e12c90189dbcd">__median_of_three_iterators</a> (_RAIter __a, _RAIter __b, _RAIter __c, _Compare __comp)</td></tr>
<tr class="separator:a74914ea59d68887b517e12c90189dbcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0059cd13cc6ab70692f8309ad92cb548"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a0059cd13cc6ab70692f8309ad92cb548"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a0059cd13cc6ab70692f8309ad92cb548">__merge_advance</a> (_RAIter1 &amp;__begin1, _RAIter1 __end1, _RAIter2 &amp;__begin2, _RAIter2 __end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)</td></tr>
<tr class="separator:a0059cd13cc6ab70692f8309ad92cb548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8deacd343b40dc77deeb1a8e515e7358"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a8deacd343b40dc77deeb1a8e515e7358"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a8deacd343b40dc77deeb1a8e515e7358">__merge_advance_movc</a> (_RAIter1 &amp;__begin1, _RAIter1 __end1, _RAIter2 &amp;__begin2, _RAIter2 __end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)</td></tr>
<tr class="separator:a8deacd343b40dc77deeb1a8e515e7358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a83f26ee291502fd0ccf83a566817c7"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a9a83f26ee291502fd0ccf83a566817c7"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a9a83f26ee291502fd0ccf83a566817c7">__merge_advance_usual</a> (_RAIter1 &amp;__begin1, _RAIter1 __end1, _RAIter2 &amp;__begin2, _RAIter2 __end2, _OutputIterator __target, _DifferenceTp __max_length, _Compare __comp)</td></tr>
<tr class="separator:a9a83f26ee291502fd0ccf83a566817c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1626ed7bbe2eb745a31f18728d73f4e"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _Compare &gt; </td></tr>
<tr class="memitem:af1626ed7bbe2eb745a31f18728d73f4e"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#af1626ed7bbe2eb745a31f18728d73f4e">__parallel_merge_advance</a> (_RAIter1 &amp;__begin1, _RAIter1 __end1, _RAIter2 &amp;__begin2, _RAIter2 __end2, _RAIter3 __target, typename std::iterator_traits&lt; _RAIter1 &gt;::difference_type __max_length, _Compare __comp)</td></tr>
<tr class="separator:af1626ed7bbe2eb745a31f18728d73f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4196b48ff7ecf5ca0f8f2cdee8681c5"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter1 , typename _RAIter3 , typename _Compare &gt; </td></tr>
<tr class="memitem:ac4196b48ff7ecf5ca0f8f2cdee8681c5"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac4196b48ff7ecf5ca0f8f2cdee8681c5">__parallel_merge_advance</a> (_RAIter1 &amp;__begin1, _RAIter1 __end1, _RAIter1 &amp;__begin2, _RAIter1 __end2, _RAIter3 __target, typename std::iterator_traits&lt; _RAIter1 &gt;::difference_type __max_length, _Compare __comp)</td></tr>
<tr class="separator:ac4196b48ff7ecf5ca0f8f2cdee8681c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1567c37a7562eaee17d13ebda1172586"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a1567c37a7562eaee17d13ebda1172586"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a1567c37a7562eaee17d13ebda1172586">__parallel_nth_element</a> (_RAIter __begin, _RAIter __nth, _RAIter __end, _Compare __comp)</td></tr>
<tr class="separator:a1567c37a7562eaee17d13ebda1172586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe60c5cc3788e1b1602175af0057d3f8"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:abe60c5cc3788e1b1602175af0057d3f8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#abe60c5cc3788e1b1602175af0057d3f8">__parallel_partial_sort</a> (_RAIter __begin, _RAIter __middle, _RAIter __end, _Compare __comp)</td></tr>
<tr class="separator:abe60c5cc3788e1b1602175af0057d3f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf4a05b6f849cae06f9fb6098eb0628"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </td></tr>
<tr class="memitem:a0cf4a05b6f849cae06f9fb6098eb0628"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a0cf4a05b6f849cae06f9fb6098eb0628">__parallel_partial_sum</a> (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation __bin_op)</td></tr>
<tr class="separator:a0cf4a05b6f849cae06f9fb6098eb0628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adeded88310546a7c54d73464bee998e2"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </td></tr>
<tr class="memitem:adeded88310546a7c54d73464bee998e2"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#adeded88310546a7c54d73464bee998e2">__parallel_partial_sum_basecase</a> (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation __bin_op, typename std::iterator_traits&lt; _IIter &gt;::value_type __value)</td></tr>
<tr class="separator:adeded88310546a7c54d73464bee998e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63017e821c2b4ff9f90c3641bc45f001"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </td></tr>
<tr class="memitem:a63017e821c2b4ff9f90c3641bc45f001"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a63017e821c2b4ff9f90c3641bc45f001">__parallel_partial_sum_linear</a> (_IIter __begin, _IIter __end, _OutputIterator __result, _BinaryOperation __bin_op, typename std::iterator_traits&lt; _IIter &gt;::difference_type __n)</td></tr>
<tr class="separator:a63017e821c2b4ff9f90c3641bc45f001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa56788b479955dd136d6af173d2cae0b"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Predicate &gt; </td></tr>
<tr class="memitem:aa56788b479955dd136d6af173d2cae0b"><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aa56788b479955dd136d6af173d2cae0b">__parallel_partition</a> (_RAIter __begin, _RAIter __end, _Predicate __pred, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:aa56788b479955dd136d6af173d2cae0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e78b59cb50c8e14ebf6990016af7342"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </td></tr>
<tr class="memitem:a6e78b59cb50c8e14ebf6990016af7342"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a6e78b59cb50c8e14ebf6990016af7342">__parallel_random_shuffle</a> (_RAIter __begin, _RAIter __end, _RandomNumberGenerator __rng=<a class="el" href="a09607.html">_RandomNumber</a>())</td></tr>
<tr class="separator:a6e78b59cb50c8e14ebf6990016af7342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9152bade9629217427f065780bc3f4c2"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </td></tr>
<tr class="memitem:a9152bade9629217427f065780bc3f4c2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a9152bade9629217427f065780bc3f4c2">__parallel_random_shuffle_drs</a> (_RAIter __begin, _RAIter __end, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __n, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads, _RandomNumberGenerator &amp;__rng)</td></tr>
<tr class="separator:a9152bade9629217427f065780bc3f4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab52b56076dd965bea099a7187e621d0b"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </td></tr>
<tr class="memitem:ab52b56076dd965bea099a7187e621d0b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ab52b56076dd965bea099a7187e621d0b">__parallel_random_shuffle_drs_pu</a> (<a class="el" href="a09615.html">_DRSSorterPU</a>&lt; _RAIter, _RandomNumberGenerator &gt; *__pus)</td></tr>
<tr class="separator:ab52b56076dd965bea099a7187e621d0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb75bc882413dc8cba7fce93c5eaaaf0"><td class="memTemplParams" colspan="2"><a id="abb75bc882413dc8cba7fce93c5eaaaf0"></a>
template&lt;typename _IIter , typename _OutputIterator , typename _Compare &gt; </td></tr>
<tr class="memitem:abb75bc882413dc8cba7fce93c5eaaaf0"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_set_difference</b> (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _OutputIterator __result, _Compare __comp)</td></tr>
<tr class="separator:abb75bc882413dc8cba7fce93c5eaaaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2d25a01058104978680d0b5d934b54f"><td class="memTemplParams" colspan="2"><a id="aa2d25a01058104978680d0b5d934b54f"></a>
template&lt;typename _IIter , typename _OutputIterator , typename _Compare &gt; </td></tr>
<tr class="memitem:aa2d25a01058104978680d0b5d934b54f"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_set_intersection</b> (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _OutputIterator __result, _Compare __comp)</td></tr>
<tr class="separator:aa2d25a01058104978680d0b5d934b54f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6dc994e2f7245b108300cc529ee7410"><td class="memTemplParams" colspan="2"><a id="ad6dc994e2f7245b108300cc529ee7410"></a>
template&lt;typename _IIter , typename _OutputIterator , typename _Operation &gt; </td></tr>
<tr class="memitem:ad6dc994e2f7245b108300cc529ee7410"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_set_operation</b> (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _OutputIterator __result, _Operation __op)</td></tr>
<tr class="separator:ad6dc994e2f7245b108300cc529ee7410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567012d512340614386402b7e3234ec6"><td class="memTemplParams" colspan="2"><a id="a567012d512340614386402b7e3234ec6"></a>
template&lt;typename _IIter , typename _OutputIterator , typename _Compare &gt; </td></tr>
<tr class="memitem:a567012d512340614386402b7e3234ec6"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_set_symmetric_difference</b> (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _OutputIterator __result, _Compare __comp)</td></tr>
<tr class="separator:a567012d512340614386402b7e3234ec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56bac3b8498aadcd3ce073422f0b9822"><td class="memTemplParams" colspan="2"><a id="a56bac3b8498aadcd3ce073422f0b9822"></a>
template&lt;typename _IIter , typename _OutputIterator , typename _Compare &gt; </td></tr>
<tr class="memitem:a56bac3b8498aadcd3ce073422f0b9822"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_set_union</b> (_IIter __begin1, _IIter __end1, _IIter __begin2, _IIter __end2, _OutputIterator __result, _Compare __comp)</td></tr>
<tr class="separator:a56bac3b8498aadcd3ce073422f0b9822"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05674fa7702fc8a86b415dc193dcfd9a"><td class="memTemplParams" colspan="2"><a id="a05674fa7702fc8a86b415dc193dcfd9a"></a>
template&lt;bool __stable, typename _RAIter , typename _Compare , typename _Parallelism &gt; </td></tr>
<tr class="memitem:a05674fa7702fc8a86b415dc193dcfd9a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__parallel_sort</b> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">_Parallelism</a> __parallelism)</td></tr>
<tr class="separator:a05674fa7702fc8a86b415dc193dcfd9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1edbc983766e29af55322f9c983277ac"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a1edbc983766e29af55322f9c983277ac"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a1edbc983766e29af55322f9c983277ac">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09679.html">multiway_mergesort_tag</a> __parallelism)</td></tr>
<tr class="separator:a1edbc983766e29af55322f9c983277ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac609a343c5522586ce1561c1390fab46"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:ac609a343c5522586ce1561c1390fab46"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac609a343c5522586ce1561c1390fab46">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09683.html">multiway_mergesort_exact_tag</a> __parallelism)</td></tr>
<tr class="separator:ac609a343c5522586ce1561c1390fab46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81d9cc449b9b4122d5f4471dfdf02a78"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a81d9cc449b9b4122d5f4471dfdf02a78"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a81d9cc449b9b4122d5f4471dfdf02a78">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09687.html">multiway_mergesort_sampling_tag</a> __parallelism)</td></tr>
<tr class="separator:a81d9cc449b9b4122d5f4471dfdf02a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceaaa622c34d2f28ba6bf79241fcee36"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:aceaaa622c34d2f28ba6bf79241fcee36"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aceaaa622c34d2f28ba6bf79241fcee36">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09691.html">quicksort_tag</a> __parallelism)</td></tr>
<tr class="separator:aceaaa622c34d2f28ba6bf79241fcee36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a000f037b08d237d140dd6144a11fb73f"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a000f037b08d237d140dd6144a11fb73f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a000f037b08d237d140dd6144a11fb73f">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09695.html">balanced_quicksort_tag</a> __parallelism)</td></tr>
<tr class="separator:a000f037b08d237d140dd6144a11fb73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2c2fb5ed2754de7c1acc336b62b57b0"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:af2c2fb5ed2754de7c1acc336b62b57b0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#af2c2fb5ed2754de7c1acc336b62b57b0">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09647.html">default_parallel_tag</a> __parallelism)</td></tr>
<tr class="separator:af2c2fb5ed2754de7c1acc336b62b57b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa47b469dd82347dd63c3996eda2e237b"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:aa47b469dd82347dd63c3996eda2e237b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aa47b469dd82347dd63c3996eda2e237b">__parallel_sort</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a09643.html">parallel_tag</a> __parallelism)</td></tr>
<tr class="separator:aa47b469dd82347dd63c3996eda2e237b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac416a1c7e347b429bbf7a8fb17e847b2"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:ac416a1c7e347b429bbf7a8fb17e847b2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac416a1c7e347b429bbf7a8fb17e847b2">__parallel_sort_qs</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:ac416a1c7e347b429bbf7a8fb17e847b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06c506308856b684737d24944a93a42e"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a06c506308856b684737d24944a93a42e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a06c506308856b684737d24944a93a42e">__parallel_sort_qs_conquer</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:a06c506308856b684737d24944a93a42e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55defa3d8e8ca7b4e52330b9afc0b1ce"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a55defa3d8e8ca7b4e52330b9afc0b1ce"><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a55defa3d8e8ca7b4e52330b9afc0b1ce">__parallel_sort_qs_divide</a> (_RAIter __begin, _RAIter __end, _Compare __comp, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __pivot_rank, typename std::iterator_traits&lt; _RAIter &gt;::difference_type __num_samples, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:a55defa3d8e8ca7b4e52330b9afc0b1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4093dd098b32542e3d3f43ebd4c6f940"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a4093dd098b32542e3d3f43ebd4c6f940"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a4093dd098b32542e3d3f43ebd4c6f940">__parallel_sort_qsb</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:a4093dd098b32542e3d3f43ebd4c6f940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15f31ee1c15e180d0d838571cd6c8b24"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , class _OutputIterator , class _BinaryPredicate &gt; </td></tr>
<tr class="memitem:a15f31ee1c15e180d0d838571cd6c8b24"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a15f31ee1c15e180d0d838571cd6c8b24">__parallel_unique_copy</a> (_IIter __first, _IIter __last, _OutputIterator __result, _BinaryPredicate __binary_pred)</td></tr>
<tr class="separator:a15f31ee1c15e180d0d838571cd6c8b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b3bd19508b4e34708a1dc647f5bc131"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , class _OutputIterator &gt; </td></tr>
<tr class="memitem:a3b3bd19508b4e34708a1dc647f5bc131"><td class="memTemplItemLeft" align="right" valign="top">_OutputIterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a3b3bd19508b4e34708a1dc647f5bc131">__parallel_unique_copy</a> (_IIter __first, _IIter __last, _OutputIterator __result)</td></tr>
<tr class="separator:a3b3bd19508b4e34708a1dc647f5bc131"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d9c5686c4621822c7c3cdd015f7e693"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a8d9c5686c4621822c7c3cdd015f7e693"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a8d9c5686c4621822c7c3cdd015f7e693">__qsb_conquer</a> (<a class="el" href="a09283.html">_QSBThreadLocal</a>&lt; _RAIter &gt; **__tls, _RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __iam, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads, bool __parent_wait)</td></tr>
<tr class="separator:a8d9c5686c4621822c7c3cdd015f7e693"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc19882fd22d39e54475d41fd981ac49"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:afc19882fd22d39e54475d41fd981ac49"><td class="memTemplItemLeft" align="right" valign="top">std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#afc19882fd22d39e54475d41fd981ac49">__qsb_divide</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:afc19882fd22d39e54475d41fd981ac49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7565d258aacb02328cef6eb2781ab711"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:a7565d258aacb02328cef6eb2781ab711"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a7565d258aacb02328cef6eb2781ab711">__qsb_local_sort_with_helping</a> (<a class="el" href="a09283.html">_QSBThreadLocal</a>&lt; _RAIter &gt; **__tls, _Compare &amp;__comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __iam, bool __wait)</td></tr>
<tr class="separator:a7565d258aacb02328cef6eb2781ab711"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06421834042f49edbb2abb2dd931315d"><td class="memTemplParams" colspan="2">template&lt;typename _RandomNumberGenerator &gt; </td></tr>
<tr class="memitem:a06421834042f49edbb2abb2dd931315d"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a06421834042f49edbb2abb2dd931315d">__random_number_pow2</a> (int __logp, _RandomNumberGenerator &amp;__rng)</td></tr>
<tr class="separator:a06421834042f49edbb2abb2dd931315d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8e1f6dc07de01f28bf591339cf8aa9c"><td class="memTemplParams" colspan="2">template&lt;typename _Size &gt; </td></tr>
<tr class="memitem:ae8e1f6dc07de01f28bf591339cf8aa9c"><td class="memTemplItemLeft" align="right" valign="top">_Size&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ae8e1f6dc07de01f28bf591339cf8aa9c">__rd_log2</a> (_Size __n)</td></tr>
<tr class="separator:ae8e1f6dc07de01f28bf591339cf8aa9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9105a85041ac81dba62d60dc669ec169"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a9105a85041ac81dba62d60dc669ec169"><td class="memTemplItemLeft" align="right" valign="top">_Tp&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a9105a85041ac81dba62d60dc669ec169">__round_up_to_pow2</a> (_Tp __x)</td></tr>
<tr class="separator:a9105a85041ac81dba62d60dc669ec169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e654f03e48e80a0c73db7ad88e8a86"><td class="memTemplParams" colspan="2">template&lt;typename __RAIter1 , typename __RAIter2 , typename _Pred &gt; </td></tr>
<tr class="memitem:af1e654f03e48e80a0c73db7ad88e8a86"><td class="memTemplItemLeft" align="right" valign="top">__RAIter1&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#af1e654f03e48e80a0c73db7ad88e8a86">__search_template</a> (__RAIter1 __begin1, __RAIter1 __end1, __RAIter2 __begin2, __RAIter2 __end2, _Pred __pred)</td></tr>
<tr class="separator:af1e654f03e48e80a0c73db7ad88e8a86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ccf0d17d06a0cdd449939227e55bd9d"><td class="memTemplParams" colspan="2">template&lt;bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a5ccf0d17d06a0cdd449939227e55bd9d"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a5ccf0d17d06a0cdd449939227e55bd9d">__sequential_multiway_merge</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;__sentinel, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:a5ccf0d17d06a0cdd449939227e55bd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9ee237cbbdd03ed217714a05e5a8868"><td class="memTemplParams" colspan="2">template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </td></tr>
<tr class="memitem:aa9ee237cbbdd03ed217714a05e5a8868"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aa9ee237cbbdd03ed217714a05e5a8868">__sequential_random_shuffle</a> (_RAIter __begin, _RAIter __end, _RandomNumberGenerator &amp;__rng)</td></tr>
<tr class="separator:aa9ee237cbbdd03ed217714a05e5a8868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf42868b36ffd42054d85449f63b12aa"><td class="memTemplParams" colspan="2">template&lt;typename _IIter &gt; </td></tr>
<tr class="memitem:adf42868b36ffd42054d85449f63b12aa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#adf42868b36ffd42054d85449f63b12aa">__shrink</a> (<a class="el" href="a07923.html">std::vector</a>&lt; _IIter &gt; &amp;__os_starts, size_t &amp;__count_to_two, size_t &amp;__range_length)</td></tr>
<tr class="separator:adf42868b36ffd42054d85449f63b12aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade684b015a28793b63a9e8f14c096066"><td class="memTemplParams" colspan="2">template&lt;typename _IIter &gt; </td></tr>
<tr class="memitem:ade684b015a28793b63a9e8f14c096066"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ade684b015a28793b63a9e8f14c096066">__shrink_and_double</a> (<a class="el" href="a07923.html">std::vector</a>&lt; _IIter &gt; &amp;__os_starts, size_t &amp;__count_to_two, size_t &amp;__range_length, const bool __make_twice)</td></tr>
<tr class="separator:ade684b015a28793b63a9e8f14c096066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa76236af73146ae89f726921bc3f2cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#aaa76236af73146ae89f726921bc3f2cb">__yield</a> ()</td></tr>
<tr class="separator:aaa76236af73146ae89f726921bc3f2cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3be0fcbf87a1f43b3ecd406841e7b0d"><td class="memTemplParams" colspan="2">template&lt;typename _IIter , typename _FunctorType &gt; </td></tr>
<tr class="memitem:ad3be0fcbf87a1f43b3ecd406841e7b0d"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ad3be0fcbf87a1f43b3ecd406841e7b0d">list_partition</a> (const _IIter __begin, const _IIter __end, _IIter *__starts, size_t *__lengths, const int __num_parts, _FunctorType &amp;__f, int __oversampling=0)</td></tr>
<tr class="separator:ad3be0fcbf87a1f43b3ecd406841e7b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa05dc1fa1f8a513888fd311ea7b39aa3"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:aa05dc1fa1f8a513888fd311ea7b39aa3"><td class="memTemplItemLeft" align="right" valign="top">const _Tp &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aa05dc1fa1f8a513888fd311ea7b39aa3">max</a> (const _Tp &amp;__a, const _Tp &amp;__b)</td></tr>
<tr class="separator:aa05dc1fa1f8a513888fd311ea7b39aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a694c714713cacc857e126157b5472448"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a694c714713cacc857e126157b5472448"><td class="memTemplItemLeft" align="right" valign="top">const _Tp &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a694c714713cacc857e126157b5472448">min</a> (const _Tp &amp;__a, const _Tp &amp;__b)</td></tr>
<tr class="separator:a694c714713cacc857e126157b5472448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade1f4c5da0794c4f1a09465d4aee6c1d"><td class="memTemplParams" colspan="2">template&lt;typename _RanSeqs , typename _RankType , typename _RankIterator , typename _Compare &gt; </td></tr>
<tr class="memitem:ade1f4c5da0794c4f1a09465d4aee6c1d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ade1f4c5da0794c4f1a09465d4aee6c1d">multiseq_partition</a> (_RanSeqs __begin_seqs, _RanSeqs __end_seqs, _RankType __rank, _RankIterator __begin_offsets, _Compare __comp=<a class="el" href="a07379.html">std::less</a>&lt; typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RanSeqs &gt;::value_type::first_type &gt;::value_type &gt;())</td></tr>
<tr class="separator:ade1f4c5da0794c4f1a09465d4aee6c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f665a2f83172d9e12b8332ce573d5d"><td class="memTemplParams" colspan="2">template&lt;typename _Tp , typename _RanSeqs , typename _RankType , typename _Compare &gt; </td></tr>
<tr class="memitem:a68f665a2f83172d9e12b8332ce573d5d"><td class="memTemplItemLeft" align="right" valign="top">_Tp&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a68f665a2f83172d9e12b8332ce573d5d">multiseq_selection</a> (_RanSeqs __begin_seqs, _RanSeqs __end_seqs, _RankType __rank, _RankType &amp;__offset, _Compare __comp=<a class="el" href="a07379.html">std::less</a>&lt; _Tp &gt;())</td></tr>
<tr class="separator:a68f665a2f83172d9e12b8332ce573d5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25294b0a47406aefa9ebc5e0c151d0ce"><td class="memTemplParams" colspan="2">template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a25294b0a47406aefa9ebc5e0c151d0ce"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a25294b0a47406aefa9ebc5e0c151d0ce">multiway_merge</a> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>)</td></tr>
<tr class="separator:a25294b0a47406aefa9ebc5e0c151d0ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac25efc956562ab237b7b6cb733060c6a"><td class="memTemplParams" colspan="2"><a id="ac25efc956562ab237b7b6cb733060c6a"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:ac25efc956562ab237b7b6cb733060c6a"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09671.html">__gnu_parallel::exact_tag</a> __tag)</td></tr>
<tr class="separator:ac25efc956562ab237b7b6cb733060c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c908c501ec9005517a88a3004ff6a75"><td class="memTemplParams" colspan="2"><a id="a8c908c501ec9005517a88a3004ff6a75"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a8c908c501ec9005517a88a3004ff6a75"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09675.html">__gnu_parallel::sampling_tag</a> __tag)</td></tr>
<tr class="separator:a8c908c501ec9005517a88a3004ff6a75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18da5adc61694c1f0c3f7735fa8daf2e"><td class="memTemplParams" colspan="2"><a id="a18da5adc61694c1f0c3f7735fa8daf2e"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a18da5adc61694c1f0c3f7735fa8daf2e"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09643.html">parallel_tag</a> __tag=<a class="el" href="a09643.html">parallel_tag</a>(0))</td></tr>
<tr class="separator:a18da5adc61694c1f0c3f7735fa8daf2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4569fbe5bdf414f0970bdc38875cdc2f"><td class="memTemplParams" colspan="2"><a id="a4569fbe5bdf414f0970bdc38875cdc2f"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a4569fbe5bdf414f0970bdc38875cdc2f"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09647.html">default_parallel_tag</a> __tag)</td></tr>
<tr class="separator:a4569fbe5bdf414f0970bdc38875cdc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ee9d79b73a6f85ae97e472312ba411e"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename RAI, typename C &gt; class iterator, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a7ee9d79b73a6f85ae97e472312ba411e"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a7ee9d79b73a6f85ae97e472312ba411e">multiway_merge_3_variant</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:a7ee9d79b73a6f85ae97e472312ba411e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4af8f9977aa36823357bce35be6c946"><td class="memTemplParams" colspan="2">template&lt;template&lt; typename RAI, typename C &gt; class iterator, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:ac4af8f9977aa36823357bce35be6c946"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ac4af8f9977aa36823357bce35be6c946">multiway_merge_4_variant</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:ac4af8f9977aa36823357bce35be6c946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567621588e461a8759651e29cd964ab9"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType &gt; </td></tr>
<tr class="memitem:a567621588e461a8759651e29cd964ab9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a567621588e461a8759651e29cd964ab9">multiway_merge_exact_splitting</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _DifferenceType __length, _DifferenceType __total_length, _Compare __comp, <a class="el" href="a07923.html">std::vector</a>&lt; <a class="el" href="a07767.html">std::pair</a>&lt; _DifferenceType, _DifferenceType &gt; &gt; *__pieces)</td></tr>
<tr class="separator:a567621588e461a8759651e29cd964ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a150b06a4da2cf1cff673d1b6242c27fa"><td class="memTemplParams" colspan="2">template&lt;typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a150b06a4da2cf1cff673d1b6242c27fa"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a150b06a4da2cf1cff673d1b6242c27fa">multiway_merge_loser_tree</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:a150b06a4da2cf1cff673d1b6242c27fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a686704fa4da0a4fdbc6800fe46048366"><td class="memTemplParams" colspan="2">template&lt;typename UnguardedLoserTree , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a686704fa4da0a4fdbc6800fe46048366"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a686704fa4da0a4fdbc6800fe46048366">multiway_merge_loser_tree_sentinel</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;__sentinel, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:a686704fa4da0a4fdbc6800fe46048366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ffd0c9da50da6118291d38f95d44b52"><td class="memTemplParams" colspan="2">template&lt;typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a3ffd0c9da50da6118291d38f95d44b52"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a3ffd0c9da50da6118291d38f95d44b52">multiway_merge_loser_tree_unguarded</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;__sentinel, _DifferenceTp __length, _Compare __comp)</td></tr>
<tr class="separator:a3ffd0c9da50da6118291d38f95d44b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e39d3891745fd0e244fb125bf34ce8b"><td class="memTemplParams" colspan="2">template&lt;bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType &gt; </td></tr>
<tr class="memitem:a0e39d3891745fd0e244fb125bf34ce8b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a0e39d3891745fd0e244fb125bf34ce8b">multiway_merge_sampling_splitting</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _DifferenceType __length, _DifferenceType __total_length, _Compare __comp, <a class="el" href="a07923.html">std::vector</a>&lt; <a class="el" href="a07767.html">std::pair</a>&lt; _DifferenceType, _DifferenceType &gt; &gt; *__pieces)</td></tr>
<tr class="separator:a0e39d3891745fd0e244fb125bf34ce8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d6e76ac42b48f0033139352dcb0418f"><td class="memTemplParams" colspan="2">template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a4d6e76ac42b48f0033139352dcb0418f"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a4d6e76ac42b48f0033139352dcb0418f">multiway_merge_sentinels</a> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>)</td></tr>
<tr class="separator:a4d6e76ac42b48f0033139352dcb0418f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5228d191a298cdaa42baacdfc821cc12"><td class="memTemplParams" colspan="2"><a id="a5228d191a298cdaa42baacdfc821cc12"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a5228d191a298cdaa42baacdfc821cc12"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09671.html">__gnu_parallel::exact_tag</a> __tag)</td></tr>
<tr class="separator:a5228d191a298cdaa42baacdfc821cc12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5db4fbc41fff695834ee6d0cbc91f8c6"><td class="memTemplParams" colspan="2"><a id="a5db4fbc41fff695834ee6d0cbc91f8c6"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a5db4fbc41fff695834ee6d0cbc91f8c6"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09675.html">sampling_tag</a> __tag)</td></tr>
<tr class="separator:a5db4fbc41fff695834ee6d0cbc91f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc0ae12fb2b2ce342e71691226729f1f"><td class="memTemplParams" colspan="2"><a id="adc0ae12fb2b2ce342e71691226729f1f"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:adc0ae12fb2b2ce342e71691226729f1f"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09643.html">parallel_tag</a> __tag=<a class="el" href="a09643.html">parallel_tag</a>(0))</td></tr>
<tr class="separator:adc0ae12fb2b2ce342e71691226729f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb7509d5d4e88c17013e7f7a0fe539d5"><td class="memTemplParams" colspan="2"><a id="acb7509d5d4e88c17013e7f7a0fe539d5"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:acb7509d5d4e88c17013e7f7a0fe539d5"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09647.html">default_parallel_tag</a> __tag)</td></tr>
<tr class="separator:acb7509d5d4e88c17013e7f7a0fe539d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14c854d00d1321cf1ee7f6d12fb955c4"><td class="memTemplParams" colspan="2">template&lt;bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Splitter , typename _Compare &gt; </td></tr>
<tr class="memitem:a14c854d00d1321cf1ee7f6d12fb955c4"><td class="memTemplItemLeft" align="right" valign="top">_RAIter3&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#a14c854d00d1321cf1ee7f6d12fb955c4">parallel_multiway_merge</a> (_RAIterIterator __seqs_begin, _RAIterIterator __seqs_end, _RAIter3 __target, _Splitter __splitter, _DifferenceTp __length, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:a14c854d00d1321cf1ee7f6d12fb955c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae193ac43730550b537828a117dd2797f"><td class="memTemplParams" colspan="2">template&lt;bool __stable, bool __exact, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:ae193ac43730550b537828a117dd2797f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#ae193ac43730550b537828a117dd2797f">parallel_sort_mwms</a> (_RAIter __begin, _RAIter __end, _Compare __comp, <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a> __num_threads)</td></tr>
<tr class="separator:ae193ac43730550b537828a117dd2797f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf84903cd78722fcd19b20ccb69c47e4"><td class="memTemplParams" colspan="2">template&lt;bool __stable, bool __exact, typename _RAIter , typename _Compare &gt; </td></tr>
<tr class="memitem:aaf84903cd78722fcd19b20ccb69c47e4"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a01575.html#aaf84903cd78722fcd19b20ccb69c47e4">parallel_sort_mwms_pu</a> (<a class="el" href="a09563.html">_PMWMSSortingData</a>&lt; _RAIter &gt; *__sd, _Compare &amp;__comp)</td></tr>
<tr class="separator:aaf84903cd78722fcd19b20ccb69c47e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27f5da3fdd4d5f56eecd6a078ec7bae2"><td class="memTemplParams" colspan="2"><a id="a27f5da3fdd4d5f56eecd6a078ec7bae2"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a27f5da3fdd4d5f56eecd6a078ec7bae2"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>)</td></tr>
<tr class="separator:a27f5da3fdd4d5f56eecd6a078ec7bae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb955a1aae5a2ad2e59e5f990625c678"><td class="memTemplParams" colspan="2"><a id="aeb955a1aae5a2ad2e59e5f990625c678"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:aeb955a1aae5a2ad2e59e5f990625c678"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09671.html">__gnu_parallel::exact_tag</a> __tag)</td></tr>
<tr class="separator:aeb955a1aae5a2ad2e59e5f990625c678"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18b727aab25037e289fecb8d9861963a"><td class="memTemplParams" colspan="2"><a id="a18b727aab25037e289fecb8d9861963a"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a18b727aab25037e289fecb8d9861963a"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09675.html">sampling_tag</a> __tag)</td></tr>
<tr class="separator:a18b727aab25037e289fecb8d9861963a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31162912a5b53056b8971c3ec0e718ba"><td class="memTemplParams" colspan="2"><a id="a31162912a5b53056b8971c3ec0e718ba"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a31162912a5b53056b8971c3ec0e718ba"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09643.html">parallel_tag</a> __tag=<a class="el" href="a09643.html">parallel_tag</a>(0))</td></tr>
<tr class="separator:a31162912a5b53056b8971c3ec0e718ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a008a4daae19578fd8b00d789387f039f"><td class="memTemplParams" colspan="2"><a id="a008a4daae19578fd8b00d789387f039f"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a008a4daae19578fd8b00d789387f039f"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09647.html">default_parallel_tag</a> __tag)</td></tr>
<tr class="separator:a008a4daae19578fd8b00d789387f039f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a907b298f67ecf4627e9db5d8e1e8d8a5"><td class="memTemplParams" colspan="2"><a id="a907b298f67ecf4627e9db5d8e1e8d8a5"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a907b298f67ecf4627e9db5d8e1e8d8a5"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>)</td></tr>
<tr class="separator:a907b298f67ecf4627e9db5d8e1e8d8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4bef8eb5bc6bb03b812eb3246e02de4"><td class="memTemplParams" colspan="2"><a id="ab4bef8eb5bc6bb03b812eb3246e02de4"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:ab4bef8eb5bc6bb03b812eb3246e02de4"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09671.html">__gnu_parallel::exact_tag</a> __tag)</td></tr>
<tr class="separator:ab4bef8eb5bc6bb03b812eb3246e02de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba7d273f820b57f9e0c709dbf68e6ee8"><td class="memTemplParams" colspan="2"><a id="aba7d273f820b57f9e0c709dbf68e6ee8"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:aba7d273f820b57f9e0c709dbf68e6ee8"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09675.html">sampling_tag</a> __tag)</td></tr>
<tr class="separator:aba7d273f820b57f9e0c709dbf68e6ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f4a6f141791040bebf482b269b3be2b"><td class="memTemplParams" colspan="2"><a id="a5f4a6f141791040bebf482b269b3be2b"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a5f4a6f141791040bebf482b269b3be2b"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09643.html">parallel_tag</a> __tag=<a class="el" href="a09643.html">parallel_tag</a>(0))</td></tr>
<tr class="separator:a5f4a6f141791040bebf482b269b3be2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9214bff1fbf949614c5f7f7d6fe129c3"><td class="memTemplParams" colspan="2"><a id="a9214bff1fbf949614c5f7f7d6fe129c3"></a>
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </td></tr>
<tr class="memitem:a9214bff1fbf949614c5f7f7d6fe129c3"><td class="memTemplItemLeft" align="right" valign="top">_RAIterOut&#160;</td><td class="memTemplItemRight" valign="bottom"><b>stable_multiway_merge_sentinels</b> (_RAIterPairIterator __seqs_begin, _RAIterPairIterator __seqs_end, _RAIterOut __target, _DifferenceTp __length, _Compare __comp, <a class="el" href="a09647.html">default_parallel_tag</a> __tag)</td></tr>
<tr class="separator:a9214bff1fbf949614c5f7f7d6fe129c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:add7da76e5782016cb1271e7537f0e94b"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#add7da76e5782016cb1271e7537f0e94b">_CASable_bits</a></td></tr>
<tr class="separator:add7da76e5782016cb1271e7537f0e94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad26f1c0a23abae27911dfbd0560a6048"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01575.html#ad26f1c0a23abae27911dfbd0560a6048">_CASable_mask</a></td></tr>
<tr class="separator:ad26f1c0a23abae27911dfbd0560a6048"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>GNU parallel code for public use. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="ad8a0790a8380d657d3e238ec3f26d584"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8a0790a8380d657d3e238ec3f26d584">&#9670;&nbsp;</a></span>_BinIndex</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned short <a class="el" href="a01575.html#ad8a0790a8380d657d3e238ec3f26d584">__gnu_parallel::_BinIndex</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type to hold the index of a bin. </p>
<p>Since many variables of this type are allocated, it should be chosen as small as possible. </p>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00047">47</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

</div>
</div>
<a id="aa1171c39f9e5afad6392c7aeefb81115"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1171c39f9e5afad6392c7aeefb81115">&#9670;&nbsp;</a></span>_CASable</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int64_t <a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">__gnu_parallel::_CASable</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Longest compare-and-swappable integer type on this platform. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00127">127</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a1cbb61a4863a306daa23823d89f9bef1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cbb61a4863a306daa23823d89f9bef1">&#9670;&nbsp;</a></span>_SequenceIndex</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="a01575.html#a1cbb61a4863a306daa23823d89f9bef1">__gnu_parallel::_SequenceIndex</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unsigned integer to index __elements. The total number of elements for each algorithm must fit into this type. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00117">117</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a05e502e51bfc3233671730f74a44dc6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05e502e51bfc3233671730f74a44dc6a">&#9670;&nbsp;</a></span>_ThreadIndex</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint16_t <a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">__gnu_parallel::_ThreadIndex</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unsigned integer to index a thread number. The maximum thread number (for each processor) must fit into this type. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00123">123</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="abfff682f83a1eacf1b43ad2b33a1954f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfff682f83a1eacf1b43ad2b33a1954f">&#9670;&nbsp;</a></span>_AlgorithmStrategy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#abfff682f83a1eacf1b43ad2b33a1954f">__gnu_parallel::_AlgorithmStrategy</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Strategies for run-time algorithm selection: </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00067">67</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a1a75203febda4d2e4fab646bf6a94252"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a75203febda4d2e4fab646bf6a94252">&#9670;&nbsp;</a></span>_FindAlgorithm</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#a1a75203febda4d2e4fab646bf6a94252">__gnu_parallel::_FindAlgorithm</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find algorithms: </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00106">106</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="abf16f5ba3af149689c7ed95309b7e91d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf16f5ba3af149689c7ed95309b7e91d">&#9670;&nbsp;</a></span>_MultiwayMergeAlgorithm</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#abf16f5ba3af149689c7ed95309b7e91d">__gnu_parallel::_MultiwayMergeAlgorithm</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Merging algorithms: </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00085">85</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a76f6cbf29b1b8d57762cce1ed9bd01a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76f6cbf29b1b8d57762cce1ed9bd01a8">&#9670;&nbsp;</a></span>_Parallelism</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">__gnu_parallel::_Parallelism</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Run-time equivalents for the compile-time tags. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8a7e6aa054fd848be925726fcf7b4eb3ce"></a>sequential&#160;</td><td class="fielddoc"><p>Not parallel. </p>
</td></tr>
<tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8ac530f35e669c50e9676af20454e1676f"></a>parallel_unbalanced&#160;</td><td class="fielddoc"><p>Parallel unbalanced (equal-sized chunks). </p>
</td></tr>
<tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8a44044e5486122945728060ea6de7d32c"></a>parallel_balanced&#160;</td><td class="fielddoc"><p>Parallel balanced (work-stealing). </p>
</td></tr>
<tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8ad1e39d5a03b2603328b50ada20730bd0"></a>parallel_omp_loop&#160;</td><td class="fielddoc"><p>Parallel with OpenMP dynamic load-balancing. </p>
</td></tr>
<tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8aa5624cdd99806daed0060c56908fd043"></a>parallel_omp_loop_static&#160;</td><td class="fielddoc"><p>Parallel with OpenMP static load-balancing. </p>
</td></tr>
<tr><td class="fieldname"><a id="a76f6cbf29b1b8d57762cce1ed9bd01a8aec9d9a6b7777354079bb906baaec2ff4"></a>parallel_taskqueue&#160;</td><td class="fielddoc"><p>Parallel with OpenMP taskqueue construct. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00044">44</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a6a4a811c81e2fb4a7722ee69762c7380"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a4a811c81e2fb4a7722ee69762c7380">&#9670;&nbsp;</a></span>_PartialSumAlgorithm</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#a6a4a811c81e2fb4a7722ee69762c7380">__gnu_parallel::_PartialSumAlgorithm</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Partial sum algorithms: recursive, linear. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00091">91</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="a35bfabad218af713f172257aecd8414e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35bfabad218af713f172257aecd8414e">&#9670;&nbsp;</a></span>_SortAlgorithm</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#a35bfabad218af713f172257aecd8414e">__gnu_parallel::_SortAlgorithm</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sorting algorithms: </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00076">76</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<a id="ace24b9f316fde5ea598815403cfd02bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace24b9f316fde5ea598815403cfd02bb">&#9670;&nbsp;</a></span>_SplittingAlgorithm</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a01575.html#ace24b9f316fde5ea598815403cfd02bb">__gnu_parallel::_SplittingAlgorithm</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sorting/merging algorithms: sampling, __exact. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00098">98</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab9807ee5cc58530be7b997207e2bf1f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9807ee5cc58530be7b997207e2bf1f3">&#9670;&nbsp;</a></span>__calc_borders()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _DifferenceTp &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__calc_borders </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp *&#160;</td>
          <td class="paramname"><em>__off</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Precalculate __advances for Knuth-Morris-Pratt algorithm. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__elements</td><td>Begin iterator of sequence to search for. </td></tr>
    <tr><td class="paramname">__length</td><td>Length of sequence to search for. </td></tr>
    <tr><td class="paramname">__off</td><td>Returned __offsets. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00956_source.html#l00051">51</a> of file <a class="el" href="a00956_source.html">search.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00956_source.html#l00081">__search_template()</a>.</p>

</div>
</div>
<a id="accd4441e0f846fee44966195a91e9e68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accd4441e0f846fee44966195a91e9e68">&#9670;&nbsp;</a></span>__compare_and_swap()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool __gnu_parallel::__compare_and_swap </td>
          <td>(</td>
          <td class="paramtype">volatile _Tp *&#160;</td>
          <td class="paramname"><em>__ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Tp&#160;</td>
          <td class="paramname"><em>__comparand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Tp&#160;</td>
          <td class="paramname"><em>__replacement</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare-and-swap. </p>
<p>Compare <code>*__ptr</code> and <code>__comparand</code>. If equal, let <code>*__ptr=__replacement</code> and return <code>true</code>, return <code>false</code> otherwise.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__ptr</td><td>Pointer to signed integer. </td></tr>
    <tr><td class="paramname">__comparand</td><td>Compare value. </td></tr>
    <tr><td class="paramname">__replacement</td><td>Replacement value. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a16530_source.html#l00108">108</a> of file <a class="el" href="a16530_source.html">parallel/compatibility.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00941_source.html#l00056">__parallel_partition()</a>, <a class="el" href="a00944_source.html#l00127">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_back()</a>, and <a class="el" href="a00944_source.html#l00100">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_front()</a>.</p>

</div>
</div>
<a id="aee3989c0ed2561801b8a6c0282008cca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee3989c0ed2561801b8a6c0282008cca">&#9670;&nbsp;</a></span>__decode2()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__decode2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a>&#160;</td>
          <td class="paramname"><em>__x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>__a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>__b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Decode two integers from one gnu_parallel::_CASable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__x</td><td>__gnu_parallel::_CASable to decode integers from. </td></tr>
    <tr><td class="paramname">__a</td><td>First integer, to be decoded from the most-significant <code>_CASable_bits/2</code> bits of <code>__x</code>. </td></tr>
    <tr><td class="paramname">__b</td><td>Second integer, to be encoded in the least-significant <code>_CASable_bits/2</code> bits of <code>__x</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>__encode2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00133">133</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

<p class="reference">References <a class="el" href="a00971_source.html#l00130">_CASable_bits</a>, and <a class="el" href="a00971_source.html#l00133">_CASable_mask</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00944_source.html#l00127">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_back()</a>, <a class="el" href="a00944_source.html#l00100">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_front()</a>, and <a class="el" href="a00944_source.html#l00083">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::push_front()</a>.</p>

</div>
</div>
<a id="a56184d12b3d8f441fc14150b15a091c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56184d12b3d8f441fc14150b15a091c7">&#9670;&nbsp;</a></span>__determine_samples()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _DifferenceTp &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__determine_samples </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a09563.html">_PMWMSSortingData</a>&lt; _RAIter &gt; *&#160;</td>
          <td class="paramname"><em>__sd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__num_samples</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select _M_samples from a sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__sd</td><td>Pointer to algorithm data. _Result will be placed in <code>__sd-&gt;_M_samples</code>. </td></tr>
    <tr><td class="paramname">__num_samples</td><td>Number of _M_samples to select. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00920_source.html#l00097">97</a> of file <a class="el" href="a00920_source.html">multiway_mergesort.h</a>.</p>

<p class="reference">References <a class="el" href="a00884_source.html#l00048">__equally_split()</a>, <a class="el" href="a00920_source.html#l00080">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_samples</a>, <a class="el" href="a00920_source.html#l00071">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_source</a>, and <a class="el" href="a00920_source.html#l00074">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_starts</a>.</p>

</div>
</div>
<a id="a7fcc29eb3f2d9c83756a9d99b4105b3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fcc29eb3f2d9c83756a9d99b4105b3b">&#9670;&nbsp;</a></span>__encode2()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a> __gnu_parallel::__encode2 </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>__a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>__b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encode two integers into one gnu_parallel::_CASable. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__a</td><td>First integer, to be encoded in the most-significant <code>_CASable_bits/2</code> bits. </td></tr>
    <tr><td class="paramname">__b</td><td>Second integer, to be encoded in the least-significant <code>_CASable_bits/2</code> bits. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>value encoding <code>__a</code> and <code>__b</code>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>__decode2 </dd></dl>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00119">119</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

<p class="reference">References <a class="el" href="a00971_source.html#l00130">_CASable_bits</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00944_source.html#l00068">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::_RestrictedBoundedConcurrentQueue()</a>, <a class="el" href="a00944_source.html#l00127">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_back()</a>, and <a class="el" href="a00944_source.html#l00100">__gnu_parallel::_RestrictedBoundedConcurrentQueue&lt; pair&lt; _RAIter, _RAIter &gt; &gt;::pop_front()</a>.</p>

</div>
</div>
<a id="ac799255921e70b0378d145924d673f9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac799255921e70b0378d145924d673f9c">&#9670;&nbsp;</a></span>__equally_split()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _DifferenceType , typename _OutputIterator &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__equally_split </td>
          <td>(</td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>function to split a sequence into parts of almost equal size. </p>
<p>The resulting sequence __s of length __num_threads+1 contains the splitting positions when splitting the range [0,__n) into parts of almost equal size (plus minus 1). The first entry is 0, the last one n. There may result empty parts. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__n</td><td>Number of elements </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of parts </td></tr>
    <tr><td class="paramname">__s</td><td>Splitters </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End of __splitter sequence, i.e. <code>__s+__num_threads+1</code> </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00884_source.html#l00048">48</a> of file <a class="el" href="a00884_source.html">equally_split.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00920_source.html#l00097">__determine_samples()</a>, <a class="el" href="a00890_source.html#l00097">__find_template()</a>, <a class="el" href="a00938_source.html#l00089">__parallel_partial_sum_linear()</a>, and <a class="el" href="a00956_source.html#l00081">__search_template()</a>.</p>

</div>
</div>
<a id="a8e3a77cb920e419144b72d6d20167dfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e3a77cb920e419144b72d6d20167dfd">&#9670;&nbsp;</a></span>__equally_split_point()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _DifferenceType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_DifferenceType __gnu_parallel::__equally_split_point </td>
          <td>(</td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__thread_no</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>function to split a sequence into parts of almost equal size. </p>
<p>Returns the position of the splitting point between thread number __thread_no (included) and thread number __thread_no+1 (excluded). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__n</td><td>Number of elements </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of parts </td></tr>
    <tr><td class="paramname">__thread_no</td><td>Number of threads </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>splitting point </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00884_source.html#l00075">75</a> of file <a class="el" href="a00884_source.html">equally_split.h</a>.</p>

</div>
</div>
<a id="a56a5a84c8a6049cd3cc83968c6eae088"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56a5a84c8a6049cd3cc83968c6eae088">&#9670;&nbsp;</a></span>__fetch_and_add()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_Tp __gnu_parallel::__fetch_and_add </td>
          <td>(</td>
          <td class="paramtype">volatile _Tp *&#160;</td>
          <td class="paramname"><em>__ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Tp&#160;</td>
          <td class="paramname"><em>__addend</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a value to a variable, atomically. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__ptr</td><td>Pointer to a signed integer. </td></tr>
    <tr><td class="paramname">__addend</td><td>Value to add. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a16530_source.html#l00074">74</a> of file <a class="el" href="a16530_source.html">parallel/compatibility.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00941_source.html#l00056">__parallel_partition()</a>.</p>

</div>
</div>
<a id="a98f2d50d4b5c617ce47d37a162e6081a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98f2d50d4b5c617ce47d37a162e6081a">&#9670;&nbsp;</a></span>__find_template() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a07767.html">std::pair</a>&lt;_RAIter1, _RAIter2&gt; __gnu_parallel::__find_template </td>
          <td>(</td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Pred&#160;</td>
          <td class="paramname"><em>__pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Selector&#160;</td>
          <td class="paramname"><em>__selector</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parallel std::find, switch for different algorithms. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. Must have same length as first sequence. </td></tr>
    <tr><td class="paramname">__pred</td><td>Find predicate. </td></tr>
    <tr><td class="paramname">__selector</td><td>_Functionality (e. g. std::find_if(), std::equal(),...) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Place of finding in both sequences. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00890_source.html#l00060">60</a> of file <a class="el" href="a00890_source.html">find.h</a>.</p>

<p class="reference">References <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>

</div>
</div>
<a id="ac66b8076d51f825a7e92eb10a905e089"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac66b8076d51f825a7e92eb10a905e089">&#9670;&nbsp;</a></span>__find_template() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a07767.html">std::pair</a>&lt;_RAIter1, _RAIter2&gt; __gnu_parallel::__find_template </td>
          <td>(</td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Pred&#160;</td>
          <td class="paramname"><em>__pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Selector&#160;</td>
          <td class="paramname"><em>__selector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09707.html">equal_split_tag</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel std::find, equal splitting variant. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. Second __sequence must have same length as first sequence. </td></tr>
    <tr><td class="paramname">__pred</td><td>Find predicate. </td></tr>
    <tr><td class="paramname">__selector</td><td>_Functionality (e. g. std::find_if(), std::equal(),...) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Place of finding in both sequences. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00890_source.html#l00097">97</a> of file <a class="el" href="a00890_source.html">find.h</a>.</p>

<p class="reference">References <a class="el" href="a00884_source.html#l00048">__equally_split()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a023cf3e54446506e67f08c073d02f7f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a023cf3e54446506e67f08c073d02f7f1">&#9670;&nbsp;</a></span>__find_template() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a07767.html">std::pair</a>&lt;_RAIter1, _RAIter2&gt; __gnu_parallel::__find_template </td>
          <td>(</td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Pred&#160;</td>
          <td class="paramname"><em>__pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Selector&#160;</td>
          <td class="paramname"><em>__selector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09699.html">growing_blocks_tag</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel std::find, growing block size variant. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. Second __sequence must have same length as first sequence. </td></tr>
    <tr><td class="paramname">__pred</td><td>Find predicate. </td></tr>
    <tr><td class="paramname">__selector</td><td>_Functionality (e. g. std::find_if(), std::equal(),...) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Place of finding in both sequences. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>__gnu_parallel::_Settings::find_sequential_search_size </dd>
<dd>
__gnu_parallel::_Settings::find_scale_factor</dd></dl>
<p>There are two main differences between the growing blocks and the constant-size blocks variants. 1. For GB, the block size grows; for CSB, the block size is fixed. 2. For GB, the blocks are allocated dynamically; for CSB, the blocks are allocated in a predetermined manner, namely spacial round-robin. </p>

<p class="definition">Definition at line <a class="el" href="a00890_source.html#l00185">185</a> of file <a class="el" href="a00890_source.html">find.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00962_source.html#l00276">__gnu_parallel::_Settings::find_scale_factor</a>, <a class="el" href="a00962_source.html#l00160">__gnu_parallel::_Settings::find_sequential_search_size</a>, <a class="el" href="a00572_source.html#l00214">std::pair&lt; _T1, _T2 &gt;::first</a>, and <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>

</div>
</div>
<a id="a64084e4cc27edb342d9fe25566c8003a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64084e4cc27edb342d9fe25566c8003a">&#9670;&nbsp;</a></span>__find_template() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _Pred , typename _Selector &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a07767.html">std::pair</a>&lt;_RAIter1, _RAIter2&gt; __gnu_parallel::__find_template </td>
          <td>(</td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Pred&#160;</td>
          <td class="paramname"><em>__pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Selector&#160;</td>
          <td class="paramname"><em>__selector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09703.html">constant_size_blocks_tag</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel std::find, constant block size variant. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. Second __sequence must have same length as first sequence. </td></tr>
    <tr><td class="paramname">__pred</td><td>Find predicate. </td></tr>
    <tr><td class="paramname">__selector</td><td>_Functionality (e. g. std::find_if(), std::equal(),...) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Place of finding in both sequences. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>__gnu_parallel::_Settings::find_sequential_search_size </dd>
<dd>
__gnu_parallel::_Settings::find_block_size There are two main differences between the growing blocks and the constant-size blocks variants. 1. For GB, the block size grows; for CSB, the block size is fixed. 2. For GB, the blocks are allocated dynamically; for CSB, the blocks are allocated in a predetermined manner, namely spacial round-robin. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00890_source.html#l00315">315</a> of file <a class="el" href="a00890_source.html">find.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00962_source.html#l00154">__gnu_parallel::_Settings::find_initial_block_size</a>, <a class="el" href="a00962_source.html#l00160">__gnu_parallel::_Settings::find_sequential_search_size</a>, <a class="el" href="a00572_source.html#l00214">std::pair&lt; _T1, _T2 &gt;::first</a>, and <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>

</div>
</div>
<a id="a0ebbe56e1b059cba72c3d706307a0e50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ebbe56e1b059cba72c3d706307a0e50">&#9670;&nbsp;</a></span>__for_each_template_random_access()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _UserOp , typename _Functionality , typename _Red , typename _Result &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_UserOp __gnu_parallel::__for_each_template_random_access </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_UserOp&#160;</td>
          <td class="paramname"><em>__user_op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Functionality &amp;&#160;</td>
          <td class="paramname"><em>__functionality</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Red&#160;</td>
          <td class="paramname"><em>__reduction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result&#160;</td>
          <td class="paramname"><em>__reduction_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result &amp;&#160;</td>
          <td class="paramname"><em>__output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _IIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__bound</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a76f6cbf29b1b8d57762cce1ed9bd01a8">_Parallelism</a>&#160;</td>
          <td class="paramname"><em>__parallelism_tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Chose the desired algorithm by evaluating <code>__parallelism_tag</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__user_op</td><td>A user-specified functor (comparator, predicate, associative operator,...) </td></tr>
    <tr><td class="paramname">__functionality</td><td>functor to <em>process</em> an element with __user_op (depends on desired functionality, e. g. accumulate, for_each,... </td></tr>
    <tr><td class="paramname">__reduction</td><td>Reduction functor. </td></tr>
    <tr><td class="paramname">__reduction_start</td><td>Initial value for reduction. </td></tr>
    <tr><td class="paramname">__output</td><td>Output iterator. </td></tr>
    <tr><td class="paramname">__bound</td><td>Maximum number of elements processed. </td></tr>
    <tr><td class="paramname">__parallelism_tag</td><td>Parallelization method </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00896_source.html#l00061">61</a> of file <a class="el" href="a00896_source.html">for_each.h</a>.</p>

<p class="reference">References <a class="el" href="a00932_source.html#l00067">__for_each_template_random_access_ed()</a>, <a class="el" href="a00926_source.html#l00067">__for_each_template_random_access_omp_loop()</a>, <a class="el" href="a00977_source.html#l00099">__for_each_template_random_access_workstealing()</a>, <a class="el" href="a00971_source.html#l00056">parallel_omp_loop</a>, <a class="el" href="a00971_source.html#l00059">parallel_omp_loop_static</a>, and <a class="el" href="a00971_source.html#l00050">parallel_unbalanced</a>.</p>

</div>
</div>
<a id="a12c48efb47ea3e00a7ef666d595ae185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12c48efb47ea3e00a7ef666d595ae185">&#9670;&nbsp;</a></span>__for_each_template_random_access_ed()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Op __gnu_parallel::__for_each_template_random_access_ed </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Op&#160;</td>
          <td class="paramname"><em>__o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Fu &amp;&#160;</td>
          <td class="paramname"><em>__f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Red&#160;</td>
          <td class="paramname"><em>__r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result&#160;</td>
          <td class="paramname"><em>__base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result &amp;&#160;</td>
          <td class="paramname"><em>__output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__bound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Embarrassingly parallel algorithm for random access iterators, using hand-crafted parallelization by equal splitting the work. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of element sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of element sequence. </td></tr>
    <tr><td class="paramname">__o</td><td>User-supplied functor (comparator, predicate, adding functor, ...) </td></tr>
    <tr><td class="paramname">__f</td><td>Functor to "process" an element with __op (depends on desired functionality, e. g. for std::for_each(), ...). </td></tr>
    <tr><td class="paramname">__r</td><td>Functor to "add" a single __result to the already processed elements (depends on functionality). </td></tr>
    <tr><td class="paramname">__base</td><td>Base value for reduction. </td></tr>
    <tr><td class="paramname">__output</td><td>Pointer to position where final result is written to </td></tr>
    <tr><td class="paramname">__bound</td><td>Maximum number of elements processed (e. g. for std::count_n()). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>User-supplied functor (that may contain a part of the result). </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00932_source.html#l00067">67</a> of file <a class="el" href="a00932_source.html">par_loop.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00896_source.html#l00061">__for_each_template_random_access()</a>.</p>

</div>
</div>
<a id="a6a5228179a033ede58cd143f66cdf354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a5228179a033ede58cd143f66cdf354">&#9670;&nbsp;</a></span>__for_each_template_random_access_omp_loop()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Op __gnu_parallel::__for_each_template_random_access_omp_loop </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Op&#160;</td>
          <td class="paramname"><em>__o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Fu &amp;&#160;</td>
          <td class="paramname"><em>__f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Red&#160;</td>
          <td class="paramname"><em>__r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result&#160;</td>
          <td class="paramname"><em>__base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result &amp;&#160;</td>
          <td class="paramname"><em>__output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__bound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Embarrassingly parallel algorithm for random access iterators, using an OpenMP for loop. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of element sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of element sequence. </td></tr>
    <tr><td class="paramname">__o</td><td>User-supplied functor (comparator, predicate, adding functor, etc.). </td></tr>
    <tr><td class="paramname">__f</td><td>Functor to <em>process</em> an element with __op (depends on desired functionality, e. g. for std::for_each(), ...). </td></tr>
    <tr><td class="paramname">__r</td><td>Functor to <em>add</em> a single __result to the already processed elements (depends on functionality). </td></tr>
    <tr><td class="paramname">__base</td><td>Base value for reduction. </td></tr>
    <tr><td class="paramname">__output</td><td>Pointer to position where final result is written to </td></tr>
    <tr><td class="paramname">__bound</td><td>Maximum number of elements processed (e. g. for std::count_n()). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>User-supplied functor (that may contain a part of the result). </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00926_source.html#l00067">67</a> of file <a class="el" href="a00926_source.html">omp_loop.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00896_source.html#l00061">__for_each_template_random_access()</a>.</p>

</div>
</div>
<a id="adfc9f0a346a7f323e8a3ba07b772587d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfc9f0a346a7f323e8a3ba07b772587d">&#9670;&nbsp;</a></span>__for_each_template_random_access_omp_loop_static()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Op __gnu_parallel::__for_each_template_random_access_omp_loop_static </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Op&#160;</td>
          <td class="paramname"><em>__o</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Fu &amp;&#160;</td>
          <td class="paramname"><em>__f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Red&#160;</td>
          <td class="paramname"><em>__r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result&#160;</td>
          <td class="paramname"><em>__base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result &amp;&#160;</td>
          <td class="paramname"><em>__output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__bound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Embarrassingly parallel algorithm for random access iterators, using an OpenMP for loop with static scheduling. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of element sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of element sequence. </td></tr>
    <tr><td class="paramname">__o</td><td>User-supplied functor (comparator, predicate, adding functor, ...). </td></tr>
    <tr><td class="paramname">__f</td><td>Functor to <em>process</em> an element with __op (depends on desired functionality, e. g. for std::for_each(), ...). </td></tr>
    <tr><td class="paramname">__r</td><td>Functor to <em>add</em> a single __result to the already processed __elements (depends on functionality). </td></tr>
    <tr><td class="paramname">__base</td><td>Base value for reduction. </td></tr>
    <tr><td class="paramname">__output</td><td>Pointer to position where final result is written to </td></tr>
    <tr><td class="paramname">__bound</td><td>Maximum number of elements processed (e. g. for std::count_n()). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>User-supplied functor (that may contain a part of the result). </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00929_source.html#l00066">66</a> of file <a class="el" href="a00929_source.html">omp_loop_static.h</a>.</p>

</div>
</div>
<a id="a14bdca2e9c62cde7dd8478d972f60272"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14bdca2e9c62cde7dd8478d972f60272">&#9670;&nbsp;</a></span>__for_each_template_random_access_workstealing()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Op , typename _Fu , typename _Red , typename _Result &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Op __gnu_parallel::__for_each_template_random_access_workstealing </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Op&#160;</td>
          <td class="paramname"><em>__op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Fu &amp;&#160;</td>
          <td class="paramname"><em>__f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Red&#160;</td>
          <td class="paramname"><em>__r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result&#160;</td>
          <td class="paramname"><em>__base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Result &amp;&#160;</td>
          <td class="paramname"><em>__output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__bound</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Work stealing algorithm for random access iterators. </p>
<p>Uses O(1) additional memory. Synchronization at job lists is done with atomic operations. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of element sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of element sequence. </td></tr>
    <tr><td class="paramname">__op</td><td>User-supplied functor (comparator, predicate, adding functor, ...). </td></tr>
    <tr><td class="paramname">__f</td><td>Functor to <em>process</em> an element with __op (depends on desired functionality, e. g. for std::for_each(), ...). </td></tr>
    <tr><td class="paramname">__r</td><td>Functor to <em>add</em> a single __result to the already processed elements (depends on functionality). </td></tr>
    <tr><td class="paramname">__base</td><td>Base value for reduction. </td></tr>
    <tr><td class="paramname">__output</td><td>Pointer to position where final result is written to </td></tr>
    <tr><td class="paramname">__bound</td><td>Maximum number of elements processed (e. g. for std::count_n()). </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>User-supplied functor (that may contain a part of the result). </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00977_source.html#l00099">99</a> of file <a class="el" href="a00977_source.html">workstealing.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00896_source.html#l00061">__for_each_template_random_access()</a>.</p>

</div>
</div>
<a id="a34e76513fa46ae5c7bc8c45677289112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34e76513fa46ae5c7bc8c45677289112">&#9670;&nbsp;</a></span>__is_sorted()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool __gnu_parallel::__is_sorted </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether <code></code>[__begin, <code>__end</code>) is sorted according to <code>__comp</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if sorted, <code>false</code> otherwise. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00878_source.html#l00051">51</a> of file <a class="el" href="a00878_source.html">checkers.h</a>.</p>

</div>
</div>
<a id="a74914ea59d68887b517e12c90189dbcd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74914ea59d68887b517e12c90189dbcd">&#9670;&nbsp;</a></span>__median_of_three_iterators()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter __gnu_parallel::__median_of_three_iterators </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compute the median of three referenced elements, according to <code>__comp</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__a</td><td>First iterator. </td></tr>
    <tr><td class="paramname">__b</td><td>Second iterator. </td></tr>
    <tr><td class="paramname">__c</td><td>Third iterator. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00398">398</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

</div>
</div>
<a id="a0059cd13cc6ab70692f8309ad92cb548"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0059cd13cc6ab70692f8309ad92cb548">&#9670;&nbsp;</a></span>__merge_advance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__merge_advance </td>
          <td>(</td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2 &amp;&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__max_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Merge routine being able to merge only the <code>__max_length</code> smallest elements. </p>
<p>The <code>__begin</code> iterators are advanced accordingly, they might not reach <code>__end</code>, in contrast to the usual variant. Static switch on whether to use the conditional-move variant. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Target begin iterator. </td></tr>
    <tr><td class="paramname">__max_length</td><td>Maximum number of elements to merge. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Output end iterator. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00911_source.html#l00171">171</a> of file <a class="el" href="a00911_source.html">merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00911_source.html#l00105">__merge_advance_movc()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00911_source.html#l00195">__parallel_merge_advance()</a>.</p>

</div>
</div>
<a id="a8deacd343b40dc77deeb1a8e515e7358"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8deacd343b40dc77deeb1a8e515e7358">&#9670;&nbsp;</a></span>__merge_advance_movc()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__merge_advance_movc </td>
          <td>(</td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2 &amp;&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__max_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Merge routine being able to merge only the <code>__max_length</code> smallest elements. </p>
<p>The <code>__begin</code> iterators are advanced accordingly, they might not reach <code>__end</code>, in contrast to the usual variant. Specially designed code should allow the compiler to generate conditional moves instead of branches. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Target begin iterator. </td></tr>
    <tr><td class="paramname">__max_length</td><td>Maximum number of elements to merge. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Output end iterator. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00911_source.html#l00105">105</a> of file <a class="el" href="a00911_source.html">merge.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00911_source.html#l00171">__merge_advance()</a>.</p>

</div>
</div>
<a id="a9a83f26ee291502fd0ccf83a566817c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a83f26ee291502fd0ccf83a566817c7">&#9670;&nbsp;</a></span>__merge_advance_usual()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _OutputIterator , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__merge_advance_usual </td>
          <td>(</td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2 &amp;&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__max_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Merge routine being able to merge only the <code>__max_length</code> smallest elements. </p>
<p>The <code>__begin</code> iterators are advanced accordingly, they might not reach <code>__end</code>, in contrast to the usual variant. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Target begin iterator. </td></tr>
    <tr><td class="paramname">__max_length</td><td>Maximum number of elements to merge. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Output end iterator. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00911_source.html#l00057">57</a> of file <a class="el" href="a00911_source.html">merge.h</a>.</p>

</div>
</div>
<a id="af1626ed7bbe2eb745a31f18728d73f4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1626ed7bbe2eb745a31f18728d73f4e">&#9670;&nbsp;</a></span>__parallel_merge_advance() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter2 , typename _RAIter3 , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::__parallel_merge_advance </td>
          <td>(</td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2 &amp;&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter2&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter1 &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__max_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Merge routine fallback to sequential in case the iterators of the two input sequences are of different type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Target begin iterator. </td></tr>
    <tr><td class="paramname">__max_length</td><td>Maximum number of elements to merge. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Output end iterator. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00911_source.html#l00195">195</a> of file <a class="el" href="a00911_source.html">merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00911_source.html#l00171">__merge_advance()</a>.</p>

</div>
</div>
<a id="ac4196b48ff7ecf5ca0f8f2cdee8681c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4196b48ff7ecf5ca0f8f2cdee8681c5">&#9670;&nbsp;</a></span>__parallel_merge_advance() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter1 , typename _RAIter3 , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::__parallel_merge_advance </td>
          <td>(</td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1 &amp;&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter1&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter1 &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__max_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parallel merge routine being able to merge only the <code>__max_length</code> smallest elements. </p>
<p>The <code>__begin</code> iterators are advanced accordingly, they might not reach <code>__end</code>, in contrast to the usual variant. The functionality is projected onto parallel_multiway_merge. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Target begin iterator. </td></tr>
    <tr><td class="paramname">__max_length</td><td>Maximum number of elements to merge. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Output end iterator. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00911_source.html#l00223">223</a> of file <a class="el" href="a00911_source.html">merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00572_source.html#l00524">std::make_pair()</a>, <a class="el" href="a00917_source.html#l01120">multiway_merge_exact_splitting()</a>, and <a class="el" href="a00917_source.html#l01225">parallel_multiway_merge()</a>.</p>

</div>
</div>
<a id="a1567c37a7562eaee17d13ebda1172586"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1567c37a7562eaee17d13ebda1172586">&#9670;&nbsp;</a></span>__parallel_nth_element()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_nth_element </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__nth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel implementation of std::nth_element(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__nth</td><td>_Iterator of element that must be in position afterwards. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00941_source.html#l00332">332</a> of file <a class="el" href="a00941_source.html">partition.h</a>.</p>

<p class="reference">References <a class="el" href="a00941_source.html#l00056">__parallel_partition()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, <a class="el" href="a00530_source.html#l00219">std::max()</a>, <a class="el" href="a00962_source.html#l00190">__gnu_parallel::_Settings::nth_element_minimal_n</a>, and <a class="el" href="a00962_source.html#l00200">__gnu_parallel::_Settings::partition_minimal_n</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00941_source.html#l00422">__parallel_partial_sort()</a>.</p>

</div>
</div>
<a id="abe60c5cc3788e1b1602175af0057d3f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe60c5cc3788e1b1602175af0057d3f8">&#9670;&nbsp;</a></span>__parallel_partial_sort()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_partial_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__middle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel implementation of std::partial_sort(). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__middle</td><td>Sort until this position. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00941_source.html#l00422">422</a> of file <a class="el" href="a00941_source.html">partition.h</a>.</p>

<p class="reference">References <a class="el" href="a00941_source.html#l00332">__parallel_nth_element()</a>.</p>

</div>
</div>
<a id="a0cf4a05b6f849cae06f9fb6098eb0628"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cf4a05b6f849cae06f9fb6098eb0628">&#9670;&nbsp;</a></span>__parallel_partial_sum()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__parallel_partial_sum </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_BinaryOperation&#160;</td>
          <td class="paramname"><em>__bin_op</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel partial sum front-__end. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__result</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__bin_op</td><td>Associative binary function. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00938_source.html#l00205">205</a> of file <a class="el" href="a00938_source.html">partial_sum.h</a>.</p>

<p class="reference">References <a class="el" href="a00938_source.html#l00089">__parallel_partial_sum_linear()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>

</div>
</div>
<a id="adeded88310546a7c54d73464bee998e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adeded88310546a7c54d73464bee998e2">&#9670;&nbsp;</a></span>__parallel_partial_sum_basecase()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__parallel_partial_sum_basecase </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_BinaryOperation&#160;</td>
          <td class="paramname"><em>__bin_op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _IIter &gt;::value_type&#160;</td>
          <td class="paramname"><em>__value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Base case prefix sum routine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__result</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__bin_op</td><td>Associative binary function. </td></tr>
    <tr><td class="paramname">__value</td><td>Start value. Must be passed since the neutral element is unknown in general. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00938_source.html#l00058">58</a> of file <a class="el" href="a00938_source.html">partial_sum.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00938_source.html#l00089">__parallel_partial_sum_linear()</a>.</p>

</div>
</div>
<a id="a63017e821c2b4ff9f90c3641bc45f001"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63017e821c2b4ff9f90c3641bc45f001">&#9670;&nbsp;</a></span>__parallel_partial_sum_linear()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _OutputIterator , typename _BinaryOperation &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__parallel_partial_sum_linear </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_BinaryOperation&#160;</td>
          <td class="paramname"><em>__bin_op</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _IIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel partial sum implementation, two-phase approach, no recursion. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__result</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__bin_op</td><td>Associative binary function. </td></tr>
    <tr><td class="paramname">__n</td><td>Length of sequence. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00938_source.html#l00089">89</a> of file <a class="el" href="a00938_source.html">partial_sum.h</a>.</p>

<p class="reference">References <a class="el" href="a00884_source.html#l00048">__equally_split()</a>, <a class="el" href="a00938_source.html#l00058">__parallel_partial_sum_basecase()</a>, <a class="el" href="a00569_source.html#l00120">std::accumulate()</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, and <a class="el" href="a00962_source.html#l00207">__gnu_parallel::_Settings::partial_sum_dilation</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00938_source.html#l00205">__parallel_partial_sum()</a>.</p>

</div>
</div>
<a id="aa56788b479955dd136d6af173d2cae0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa56788b479955dd136d6af173d2cae0b">&#9670;&nbsp;</a></span>__parallel_partition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Predicate &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::iterator_traits&lt;_RAIter&gt;::difference_type __gnu_parallel::__parallel_partition </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Predicate&#160;</td>
          <td class="paramname"><em>__pred</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel implementation of std::partition. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence to split. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence to split. </td></tr>
    <tr><td class="paramname">__pred</td><td>Partition predicate, possibly including some kind of pivot. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Maximum number of threads to use for this task. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of elements not fulfilling the predicate. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00941_source.html#l00056">56</a> of file <a class="el" href="a00941_source.html">partition.h</a>.</p>

<p class="reference">References <a class="el" href="a16530_source.html#l00108">__compare_and_swap()</a>, <a class="el" href="a16530_source.html#l00074">__fetch_and_add()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00941_source.html#l00043">_GLIBCXX_VOLATILE</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, <a class="el" href="a00962_source.html#l00197">__gnu_parallel::_Settings::partition_chunk_share</a>, and <a class="el" href="a00962_source.html#l00193">__gnu_parallel::_Settings::partition_chunk_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00941_source.html#l00332">__parallel_nth_element()</a>.</p>

</div>
</div>
<a id="a6e78b59cb50c8e14ebf6990016af7342"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e78b59cb50c8e14ebf6990016af7342">&#9670;&nbsp;</a></span>__parallel_random_shuffle()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_random_shuffle </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RandomNumberGenerator&#160;</td>
          <td class="paramname"><em>__rng</em> = <code><a class="el" href="a09607.html">_RandomNumber</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parallel random public call. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__rng</td><td>Random number generator to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00522">522</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">References <a class="el" href="a00953_source.html#l00265">__parallel_random_shuffle_drs()</a>.</p>

</div>
</div>
<a id="a9152bade9629217427f065780bc3f4c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9152bade9629217427f065780bc3f4c2">&#9670;&nbsp;</a></span>__parallel_random_shuffle_drs()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_random_shuffle_drs </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RandomNumberGenerator &amp;&#160;</td>
          <td class="paramname"><em>__rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main parallel random shuffle step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__n</td><td>Length of sequence. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads to use. </td></tr>
    <tr><td class="paramname">__rng</td><td>Random number generator to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00265">265</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">References <a class="el" href="a00953_source.html#l00100">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::__bins_end</a>, <a class="el" href="a00953_source.html#l00122">__parallel_random_shuffle_drs_pu()</a>, <a class="el" href="a16491_source.html#l00102">__rd_log2()</a>, <a class="el" href="a00953_source.html#l00248">__round_up_to_pow2()</a>, <a class="el" href="a00953_source.html#l00410">__sequential_random_shuffle()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00953_source.html#l00074">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_bin_proc</a>, <a class="el" href="a00953_source.html#l00097">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_bins_begin</a>, <a class="el" href="a00953_source.html#l00067">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_dist</a>, <a class="el" href="a00953_source.html#l00077">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_num_bins</a>, <a class="el" href="a00953_source.html#l00080">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_num_bits</a>, <a class="el" href="a00953_source.html#l00094">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_num_threads</a>, <a class="el" href="a00953_source.html#l00106">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_sd</a>, <a class="el" href="a00953_source.html#l00103">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_seed</a>, <a class="el" href="a00953_source.html#l00070">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_starts</a>, <a class="el" href="a00953_source.html#l00062">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_temporaries</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, <a class="el" href="a00962_source.html#l00257">__gnu_parallel::_Settings::L2_cache_size</a>, <a class="el" href="a00530_source.html#l00195">std::min()</a>, and <a class="el" href="a00962_source.html#l00260">__gnu_parallel::_Settings::TLB_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00522">__parallel_random_shuffle()</a>.</p>

</div>
</div>
<a id="ab52b56076dd965bea099a7187e621d0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab52b56076dd965bea099a7187e621d0b">&#9670;&nbsp;</a></span>__parallel_random_shuffle_drs_pu()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_random_shuffle_drs_pu </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a09615.html">_DRSSorterPU</a>&lt; _RAIter, _RandomNumberGenerator &gt; *&#160;</td>
          <td class="paramname"><em>__pus</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Random shuffle code executed by each thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__pus</td><td>Array of thread-local data records. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00122">122</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">References <a class="el" href="a00953_source.html#l00115">__random_number_pow2()</a>, <a class="el" href="a00953_source.html#l00067">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_dist</a>, <a class="el" href="a00953_source.html#l00077">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_num_bins</a>, <a class="el" href="a00953_source.html#l00080">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_num_bits</a>, <a class="el" href="a00953_source.html#l00094">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_num_threads</a>, <a class="el" href="a00953_source.html#l00106">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_sd</a>, <a class="el" href="a00953_source.html#l00103">__gnu_parallel::_DRSSorterPU&lt; _RAIter, _RandomNumberGenerator &gt;::_M_seed</a>, <a class="el" href="a00953_source.html#l00070">__gnu_parallel::_DRandomShufflingGlobalData&lt; _RAIter &gt;::_M_starts</a>, and <a class="el" href="a00569_source.html#l00237">std::partial_sum()</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00265">__parallel_random_shuffle_drs()</a>.</p>

</div>
</div>
<a id="a1edbc983766e29af55322f9c983277ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1edbc983766e29af55322f9c983277ac">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[1/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09679.html">multiway_mergesort_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose multiway mergesort, splitting variant at run-time, for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00075">75</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00968_source.html#l00063">__gnu_parallel::parallel_tag::__get_num_threads()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a01575_a1edbc983766e29af55322f9c983277ac_cgraph.svg" width="438" height="99"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ac609a343c5522586ce1561c1390fab46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac609a343c5522586ce1561c1390fab46">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[2/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09683.html">multiway_mergesort_exact_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose multiway mergesort with exact splitting, for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00099">99</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00968_source.html#l00063">__gnu_parallel::parallel_tag::__get_num_threads()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a01575_ac609a343c5522586ce1561c1390fab46_cgraph.svg" width="415" height="50"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a81d9cc449b9b4122d5f4471dfdf02a78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81d9cc449b9b4122d5f4471dfdf02a78">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[3/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09687.html">multiway_mergesort_sampling_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose multiway mergesort with splitting by sampling, for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00120">120</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00968_source.html#l00063">__gnu_parallel::parallel_tag::__get_num_threads()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a01575_a81d9cc449b9b4122d5f4471dfdf02a78_cgraph.svg" width="415" height="50"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aceaaa622c34d2f28ba6bf79241fcee36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceaaa622c34d2f28ba6bf79241fcee36">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[4/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09691.html">quicksort_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose quicksort for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00140">140</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a000f037b08d237d140dd6144a11fb73f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a000f037b08d237d140dd6144a11fb73f">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[5/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09695.html">balanced_quicksort_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose balanced quicksort for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00161">161</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="af2c2fb5ed2754de7c1acc336b62b57b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2c2fb5ed2754de7c1acc336b62b57b0">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[6/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09647.html">default_parallel_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose multiway mergesort with exact splitting, for parallel sorting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00183">183</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00968_source.html#l00063">__gnu_parallel::parallel_tag::__get_num_threads()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a01575_af2c2fb5ed2754de7c1acc336b62b57b0_cgraph.svg" width="415" height="50"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aa47b469dd82347dd63c3996eda2e237b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa47b469dd82347dd63c3996eda2e237b">&#9670;&nbsp;</a></span>__parallel_sort() <span class="overload">[7/7]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIter , typename _Compare &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09643.html">parallel_tag</a>&#160;</td>
          <td class="paramname"><em>__parallelism</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Choose a parallel sorting algorithm. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">__stable</td><td>Sort stable. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00965_source.html#l00203">203</a> of file <a class="el" href="a00965_source.html">sort.h</a>.</p>

<p class="reference">References <a class="el" href="a00968_source.html#l00063">__gnu_parallel::parallel_tag::__get_num_threads()</a>, <a class="el" href="a00947_source.html#l00154">__parallel_sort_qs()</a>, <a class="el" href="a00872_source.html#l00433">__parallel_sort_qsb()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="a01575_aa47b469dd82347dd63c3996eda2e237b_cgraph.svg" width="100%" height="496"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>

</div>
</div>
<a id="ac416a1c7e347b429bbf7a8fb17e847b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac416a1c7e347b429bbf7a8fb17e847b2">&#9670;&nbsp;</a></span>__parallel_sort_qs()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort_qs </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unbalanced quicksort main call. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator input sequence, ignored. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00947_source.html#l00154">154</a> of file <a class="el" href="a00947_source.html">quicksort.h</a>.</p>

<p class="reference">References <a class="el" href="a00947_source.html#l00101">__parallel_sort_qs_conquer()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00965_source.html#l00203">__parallel_sort()</a>.</p>

</div>
</div>
<a id="a06c506308856b684737d24944a93a42e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06c506308856b684737d24944a93a42e">&#9670;&nbsp;</a></span>__parallel_sort_qs_conquer()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort_qs_conquer </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unbalanced quicksort conquer step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of subsequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of subsequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00947_source.html#l00101">101</a> of file <a class="el" href="a00947_source.html">quicksort.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00947_source.html#l00154">__parallel_sort_qs()</a>.</p>

</div>
</div>
<a id="a55defa3d8e8ca7b4e52330b9afc0b1ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55defa3d8e8ca7b4e52330b9afc0b1ce">&#9670;&nbsp;</a></span>__parallel_sort_qs_divide()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::iterator_traits&lt;_RAIter&gt;::difference_type __gnu_parallel::__parallel_sort_qs_divide </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__pivot_rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">typename std::iterator_traits&lt; _RAIter &gt;::difference_type&#160;</td>
          <td class="paramname"><em>__num_samples</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unbalanced quicksort divide step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of subsequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of subsequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__pivot_rank</td><td>Desired __rank of the pivot. </td></tr>
    <tr><td class="paramname">__num_samples</td><td>Choose pivot from that many samples. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00947_source.html#l00051">51</a> of file <a class="el" href="a00947_source.html">quicksort.h</a>.</p>

<p class="reference">References <a class="el" href="a00530_source.html#l00195">std::min()</a>.</p>

</div>
</div>
<a id="a4093dd098b32542e3d3f43ebd4c6f940"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4093dd098b32542e3d3f43ebd4c6f940">&#9670;&nbsp;</a></span>__parallel_sort_qsb()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__parallel_sort_qsb </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Top-level quicksort routine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00872_source.html#l00433">433</a> of file <a class="el" href="a00872_source.html">balanced_quicksort.h</a>.</p>

<p class="reference">References <a class="el" href="a00872_source.html#l00174">__qsb_conquer()</a>, <a class="el" href="a16491_source.html#l00102">__rd_log2()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00872_source.html#l00084">__gnu_parallel::_QSBThreadLocal&lt; _RAIter &gt;::_M_elements_leftover</a>, and <a class="el" href="a00572_source.html#l00524">std::make_pair()</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00965_source.html#l00203">__parallel_sort()</a>.</p>

</div>
</div>
<a id="a15f31ee1c15e180d0d838571cd6c8b24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15f31ee1c15e180d0d838571cd6c8b24">&#9670;&nbsp;</a></span>__parallel_unique_copy() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , class _OutputIterator , class _BinaryPredicate &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__parallel_unique_copy </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_BinaryPredicate&#160;</td>
          <td class="paramname"><em>__binary_pred</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel std::unique_copy(), w/__o explicit equality predicate. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__first</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__last</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__result</td><td>Begin iterator of result __sequence. </td></tr>
    <tr><td class="paramname">__binary_pred</td><td>Equality predicate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of result __sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00974_source.html#l00050">50</a> of file <a class="el" href="a00974_source.html">unique_copy.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00974_source.html#l00186">__parallel_unique_copy()</a>.</p>

</div>
</div>
<a id="a3b3bd19508b4e34708a1dc647f5bc131"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b3bd19508b4e34708a1dc647f5bc131">&#9670;&nbsp;</a></span>__parallel_unique_copy() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , class _OutputIterator &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_OutputIterator __gnu_parallel::__parallel_unique_copy </td>
          <td>(</td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter&#160;</td>
          <td class="paramname"><em>__last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_OutputIterator&#160;</td>
          <td class="paramname"><em>__result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Parallel std::unique_copy(), without explicit equality predicate. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__first</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__last</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__result</td><td>Begin iterator of result __sequence. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of result __sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00974_source.html#l00186">186</a> of file <a class="el" href="a00974_source.html">unique_copy.h</a>.</p>

<p class="reference">References <a class="el" href="a00974_source.html#l00050">__parallel_unique_copy()</a>.</p>

</div>
</div>
<a id="a8d9c5686c4621822c7c3cdd015f7e693"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d9c5686c4621822c7c3cdd015f7e693">&#9670;&nbsp;</a></span>__qsb_conquer()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__qsb_conquer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a09283.html">_QSBThreadLocal</a>&lt; _RAIter &gt; **&#160;</td>
          <td class="paramname"><em>__tls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__iam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>__parent_wait</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Quicksort conquer step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__tls</td><td>Array of thread-local storages. </td></tr>
    <tr><td class="paramname">__begin</td><td>Begin iterator of subsequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of subsequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__iam</td><td>Number of the thread processing this function. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00872_source.html#l00174">174</a> of file <a class="el" href="a00872_source.html">balanced_quicksort.h</a>.</p>

<p class="reference">References <a class="el" href="a00872_source.html#l00103">__qsb_divide()</a>, <a class="el" href="a00872_source.html#l00250">__qsb_local_sort_with_helping()</a>, and <a class="el" href="a00872_source.html#l00075">__gnu_parallel::_QSBThreadLocal&lt; _RAIter &gt;::_M_initial</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00872_source.html#l00433">__parallel_sort_qsb()</a>.</p>

</div>
</div>
<a id="afc19882fd22d39e54475d41fd981ac49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc19882fd22d39e54475d41fd981ac49">&#9670;&nbsp;</a></span>__qsb_divide()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::iterator_traits&lt;_RAIter&gt;::difference_type __gnu_parallel::__qsb_divide </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Balanced quicksort divide step. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of subsequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of subsequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads that are allowed to work on this part. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd><code></code>(__end-__begin)&gt;=1 </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00872_source.html#l00103">103</a> of file <a class="el" href="a00872_source.html">balanced_quicksort.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00872_source.html#l00174">__qsb_conquer()</a>.</p>

</div>
</div>
<a id="a7565d258aacb02328cef6eb2781ab711"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7565d258aacb02328cef6eb2781ab711">&#9670;&nbsp;</a></span>__qsb_local_sort_with_helping()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__qsb_local_sort_with_helping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a09283.html">_QSBThreadLocal</a>&lt; _RAIter &gt; **&#160;</td>
          <td class="paramname"><em>__tls</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare &amp;&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__iam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>__wait</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Quicksort step doing load-balanced local sort. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__tls</td><td>Array of thread-local storages. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__iam</td><td>Number of the thread processing this function. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00872_source.html#l00250">250</a> of file <a class="el" href="a00872_source.html">balanced_quicksort.h</a>.</p>

<p class="reference">References <a class="el" href="a00872_source.html#l00075">__gnu_parallel::_QSBThreadLocal&lt; _RAIter &gt;::_M_initial</a>, <a class="el" href="a00872_source.html#l00081">__gnu_parallel::_QSBThreadLocal&lt; _RAIter &gt;::_M_num_threads</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, and <a class="el" href="a00962_source.html#l00241">__gnu_parallel::_Settings::sort_qsb_base_case_maximal_n</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00872_source.html#l00174">__qsb_conquer()</a>.</p>

</div>
</div>
<a id="a06421834042f49edbb2abb2dd931315d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06421834042f49edbb2abb2dd931315d">&#9670;&nbsp;</a></span>__random_number_pow2()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RandomNumberGenerator &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int __gnu_parallel::__random_number_pow2 </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>__logp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RandomNumberGenerator &amp;&#160;</td>
          <td class="paramname"><em>__rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate a random number in <code></code>[0,2^__logp). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__logp</td><td>Logarithm (basis 2) of the upper range __bound. </td></tr>
    <tr><td class="paramname">__rng</td><td>Random number generator to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00115">115</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00122">__parallel_random_shuffle_drs_pu()</a>, and <a class="el" href="a00953_source.html#l00410">__sequential_random_shuffle()</a>.</p>

</div>
</div>
<a id="ae8e1f6dc07de01f28bf591339cf8aa9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8e1f6dc07de01f28bf591339cf8aa9c">&#9670;&nbsp;</a></span>__rd_log2()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Size &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">_Size __gnu_parallel::__rd_log2 </td>
          <td>(</td>
          <td class="paramtype">_Size&#160;</td>
          <td class="paramname"><em>__n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculates the rounded-down logarithm of <code>__n</code> for base 2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__n</td><td>Argument. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns 0 for any argument &lt;1. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00102">102</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00265">__parallel_random_shuffle_drs()</a>, <a class="el" href="a00872_source.html#l00433">__parallel_sort_qsb()</a>, <a class="el" href="a00953_source.html#l00248">__round_up_to_pow2()</a>, <a class="el" href="a00953_source.html#l00410">__sequential_random_shuffle()</a>, <a class="el" href="a00908_source.html#l00094">__gnu_parallel::_LoserTreeBase&lt; _Tp, _Compare &gt;::_LoserTreeBase()</a>, and <a class="el" href="a00914_source.html#l00388">multiseq_selection()</a>.</p>

</div>
</div>
<a id="a9105a85041ac81dba62d60dc669ec169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9105a85041ac81dba62d60dc669ec169">&#9670;&nbsp;</a></span>__round_up_to_pow2()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Tp __gnu_parallel::__round_up_to_pow2 </td>
          <td>(</td>
          <td class="paramtype">_Tp&#160;</td>
          <td class="paramname"><em>__x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Round up to the next greater power of 2. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__x</td><td>_Integer to round up </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00248">248</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">References <a class="el" href="a16491_source.html#l00102">__rd_log2()</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00265">__parallel_random_shuffle_drs()</a>, <a class="el" href="a00953_source.html#l00410">__sequential_random_shuffle()</a>, and <a class="el" href="a00914_source.html#l00388">multiseq_selection()</a>.</p>

</div>
</div>
<a id="af1e654f03e48e80a0c73db7ad88e8a86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1e654f03e48e80a0c73db7ad88e8a86">&#9670;&nbsp;</a></span>__search_template()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename __RAIter1 , typename __RAIter2 , typename _Pred &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">__RAIter1 __gnu_parallel::__search_template </td>
          <td>(</td>
          <td class="paramtype">__RAIter1&#160;</td>
          <td class="paramname"><em>__begin1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">__RAIter1&#160;</td>
          <td class="paramname"><em>__end1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">__RAIter2&#160;</td>
          <td class="paramname"><em>__begin2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">__RAIter2&#160;</td>
          <td class="paramname"><em>__end2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Pred&#160;</td>
          <td class="paramname"><em>__pred</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel std::search. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin1</td><td>Begin iterator of first sequence. </td></tr>
    <tr><td class="paramname">__end1</td><td>End iterator of first sequence. </td></tr>
    <tr><td class="paramname">__begin2</td><td>Begin iterator of second sequence. </td></tr>
    <tr><td class="paramname">__end2</td><td>End iterator of second sequence. </td></tr>
    <tr><td class="paramname">__pred</td><td>Find predicate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Place of finding in first sequences. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00956_source.html#l00081">81</a> of file <a class="el" href="a00956_source.html">search.h</a>.</p>

<p class="reference">References <a class="el" href="a00956_source.html#l00051">__calc_borders()</a>, <a class="el" href="a00884_source.html#l00048">__equally_split()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a00530_source.html#l00195">std::min()</a>.</p>

</div>
</div>
<a id="a5ccf0d17d06a0cdd449939227e55bd9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ccf0d17d06a0cdd449939227e55bd9d">&#9670;&nbsp;</a></span>__sequential_multiway_merge()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::__sequential_multiway_merge </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;&#160;</td>
          <td class="paramname"><em>__sentinel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sequential multi-way merging switch. </p>
<p>The _GLIBCXX_PARALLEL_DECISION is based on the branching factor and runtime settings. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, possibly larger than the number of elements available. </td></tr>
    <tr><td class="paramname">__sentinel</td><td>The sequences have __a __sentinel element. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00920">920</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00917_source.html#l01418">multiway_merge()</a>, and <a class="el" href="a00917_source.html#l01782">multiway_merge_sentinels()</a>.</p>

</div>
</div>
<a id="aa9ee237cbbdd03ed217714a05e5a8868"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9ee237cbbdd03ed217714a05e5a8868">&#9670;&nbsp;</a></span>__sequential_random_shuffle()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIter , typename _RandomNumberGenerator &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__sequential_random_shuffle </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RandomNumberGenerator &amp;&#160;</td>
          <td class="paramname"><em>__rng</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sequential cache-efficient random shuffle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__rng</td><td>Random number generator to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00953_source.html#l00410">410</a> of file <a class="el" href="a00953_source.html">random_shuffle.h</a>.</p>

<p class="reference">References <a class="el" href="a00953_source.html#l00115">__random_number_pow2()</a>, <a class="el" href="a16491_source.html#l00102">__rd_log2()</a>, <a class="el" href="a00953_source.html#l00248">__round_up_to_pow2()</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, <a class="el" href="a00962_source.html#l00257">__gnu_parallel::_Settings::L2_cache_size</a>, <a class="el" href="a00530_source.html#l00195">std::min()</a>, <a class="el" href="a00569_source.html#l00237">std::partial_sum()</a>, and <a class="el" href="a00962_source.html#l00260">__gnu_parallel::_Settings::TLB_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00953_source.html#l00265">__parallel_random_shuffle_drs()</a>.</p>

</div>
</div>
<a id="adf42868b36ffd42054d85449f63b12aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf42868b36ffd42054d85449f63b12aa">&#9670;&nbsp;</a></span>__shrink()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__shrink </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a07923.html">std::vector</a>&lt; _IIter &gt; &amp;&#160;</td>
          <td class="paramname"><em>__os_starts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>__count_to_two</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>__range_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Combines two ranges into one and thus halves the number of ranges. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__os_starts</td><td>Start positions worked on (oversampled). </td></tr>
    <tr><td class="paramname">__count_to_two</td><td>Counts up to 2. </td></tr>
    <tr><td class="paramname">__range_length</td><td>Current length of a chunk. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00905_source.html#l00070">70</a> of file <a class="el" href="a00905_source.html">list_partition.h</a>.</p>

<p class="reference">References <a class="el" href="a00599_source.html#l00805">std::vector&lt; _Tp, _Alloc &gt;::size()</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00905_source.html#l00050">__shrink_and_double()</a>.</p>

</div>
</div>
<a id="ade684b015a28793b63a9e8f14c096066"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade684b015a28793b63a9e8f14c096066">&#9670;&nbsp;</a></span>__shrink_and_double()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__shrink_and_double </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a07923.html">std::vector</a>&lt; _IIter &gt; &amp;&#160;</td>
          <td class="paramname"><em>__os_starts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>__count_to_two</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>__range_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>__make_twice</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shrinks and doubles the ranges. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__os_starts</td><td>Start positions worked on (oversampled). </td></tr>
    <tr><td class="paramname">__count_to_two</td><td>Counts up to 2. </td></tr>
    <tr><td class="paramname">__range_length</td><td>Current length of a chunk. </td></tr>
    <tr><td class="paramname">__make_twice</td><td>Whether the <code>__os_starts</code> is allowed to be grown or not </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00905_source.html#l00050">50</a> of file <a class="el" href="a00905_source.html">list_partition.h</a>.</p>

<p class="reference">References <a class="el" href="a00905_source.html#l00070">__shrink()</a>, <a class="el" href="a00599_source.html#l00824">std::vector&lt; _Tp, _Alloc &gt;::resize()</a>, and <a class="el" href="a00599_source.html#l00805">std::vector&lt; _Tp, _Alloc &gt;::size()</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00905_source.html#l00101">list_partition()</a>.</p>

</div>
</div>
<a id="aaa76236af73146ae89f726921bc3f2cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa76236af73146ae89f726921bc3f2cb">&#9670;&nbsp;</a></span>__yield()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::__yield </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Yield control to another thread, without waiting for the end of the time slice. </p>

<p class="definition">Definition at line <a class="el" href="a16530_source.html#l00121">121</a> of file <a class="el" href="a16530_source.html">parallel/compatibility.h</a>.</p>

</div>
</div>
<a id="ad3be0fcbf87a1f43b3ecd406841e7b0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3be0fcbf87a1f43b3ecd406841e7b0d">&#9670;&nbsp;</a></span>list_partition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _IIter , typename _FunctorType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t __gnu_parallel::list_partition </td>
          <td>(</td>
          <td class="paramtype">const _IIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const _IIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_IIter *&#160;</td>
          <td class="paramname"><em>__starts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>__lengths</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>__num_parts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_FunctorType &amp;&#160;</td>
          <td class="paramname"><em>__f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>__oversampling</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Splits a sequence given by input iterators into parts of almost equal size. </p>
<p>The function needs only one pass over the sequence. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of input sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of input sequence. </td></tr>
    <tr><td class="paramname">__starts</td><td>Start iterators for the resulting parts, dimension <code>__num_parts+1</code>. For convenience, <code>__starts</code> <code></code>[__num_parts] contains the end iterator of the sequence. </td></tr>
    <tr><td class="paramname">__lengths</td><td>Length of the resulting parts. </td></tr>
    <tr><td class="paramname">__num_parts</td><td>Number of parts to split the sequence into. </td></tr>
    <tr><td class="paramname">__f</td><td>Functor to be applied to each element by traversing __it </td></tr>
    <tr><td class="paramname">__oversampling</td><td>Oversampling factor. If 0, then the partitions will differ in at most <img class="formulaInl" alt="$\sqrt{\mathrm{end} - \mathrm{begin}}$" src="form_118.png"/> elements. Otherwise, the ratio between the longest and the shortest part is bounded by <img class="formulaInl" alt="$1/(\mathrm{oversampling} \cdot \mathrm{num\_parts})$" src="form_119.png"/> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Length of the whole sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00905_source.html#l00101">101</a> of file <a class="el" href="a00905_source.html">list_partition.h</a>.</p>

<p class="reference">References <a class="el" href="a00905_source.html#l00050">__shrink_and_double()</a>, and <a class="el" href="a00599_source.html#l00805">std::vector&lt; _Tp, _Alloc &gt;::size()</a>.</p>

</div>
</div>
<a id="aa05dc1fa1f8a513888fd311ea7b39aa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa05dc1fa1f8a513888fd311ea7b39aa3">&#9670;&nbsp;</a></span>max()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const _Tp&amp; __gnu_parallel::max </td>
          <td>(</td>
          <td class="paramtype">const _Tp &amp;&#160;</td>
          <td class="paramname"><em>__a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const _Tp &amp;&#160;</td>
          <td class="paramname"><em>__b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Equivalent to std::max. </p>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00150">150</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

</div>
</div>
<a id="a694c714713cacc857e126157b5472448"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a694c714713cacc857e126157b5472448">&#9670;&nbsp;</a></span>min()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const _Tp&amp; __gnu_parallel::min </td>
          <td>(</td>
          <td class="paramtype">const _Tp &amp;&#160;</td>
          <td class="paramname"><em>__a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const _Tp &amp;&#160;</td>
          <td class="paramname"><em>__b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Equivalent to std::min. </p>

<p class="definition">Definition at line <a class="el" href="a16491_source.html#l00144">144</a> of file <a class="el" href="a16491_source.html">parallel/base.h</a>.</p>

</div>
</div>
<a id="ade1f4c5da0794c4f1a09465d4aee6c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade1f4c5da0794c4f1a09465d4aee6c1d">&#9670;&nbsp;</a></span>multiseq_partition()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RanSeqs , typename _RankType , typename _RankIterator , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::multiseq_partition </td>
          <td>(</td>
          <td class="paramtype">_RanSeqs&#160;</td>
          <td class="paramname"><em>__begin_seqs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RanSeqs&#160;</td>
          <td class="paramname"><em>__end_seqs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RankType&#160;</td>
          <td class="paramname"><em>__rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RankIterator&#160;</td>
          <td class="paramname"><em>__begin_offsets</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em> = <code><a class="el" href="a07379.html">std::less</a>&lt;&#160;typename&#160;std::iterator_traits&lt;typename&#160;std::iterator_traits&lt;_RanSeqs&gt;::value_type::&#160;first_type&gt;::value_type&gt;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Splits several sorted sequences at a certain global __rank, resulting in a splitting point for each sequence. The sequences are passed via a sequence of random-access iterator pairs, none of the sequences may be empty. If there are several equal elements across the split, the ones on the __left side will be chosen from sequences with smaller number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin_seqs</td><td>Begin of the sequence of iterator pairs. </td></tr>
    <tr><td class="paramname">__end_seqs</td><td>End of the sequence of iterator pairs. </td></tr>
    <tr><td class="paramname">__rank</td><td>The global rank to partition at. </td></tr>
    <tr><td class="paramname">__begin_offsets</td><td>A random-access __sequence __begin where the __result will be stored in. Each element of the sequence is an iterator that points to the first element on the greater part of the respective __sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>The ordering functor, defaults to std::less&lt;_Tp&gt;. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00914_source.html#l00122">122</a> of file <a class="el" href="a00914_source.html">multiseq_selection.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a00551_source.html#l00138">std::distance()</a>.</p>

</div>
</div>
<a id="a68f665a2f83172d9e12b8332ce573d5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68f665a2f83172d9e12b8332ce573d5d">&#9670;&nbsp;</a></span>multiseq_selection()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp , typename _RanSeqs , typename _RankType , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_Tp __gnu_parallel::multiseq_selection </td>
          <td>(</td>
          <td class="paramtype">_RanSeqs&#160;</td>
          <td class="paramname"><em>__begin_seqs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RanSeqs&#160;</td>
          <td class="paramname"><em>__end_seqs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RankType&#160;</td>
          <td class="paramname"><em>__rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RankType &amp;&#160;</td>
          <td class="paramname"><em>__offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em> = <code><a class="el" href="a07379.html">std::less</a>&lt;_Tp&gt;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selects the element at a certain global __rank from several sorted sequences. </p>
<p>The sequences are passed via a sequence of random-access iterator pairs, none of the sequences may be empty. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin_seqs</td><td>Begin of the sequence of iterator pairs. </td></tr>
    <tr><td class="paramname">__end_seqs</td><td>End of the sequence of iterator pairs. </td></tr>
    <tr><td class="paramname">__rank</td><td>The global rank to partition at. </td></tr>
    <tr><td class="paramname">__offset</td><td>The rank of the selected element in the global subsequence of elements equal to the selected element. If the selected element is unique, this number is 0. </td></tr>
    <tr><td class="paramname">__comp</td><td>The ordering functor, defaults to std::less. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00914_source.html#l00388">388</a> of file <a class="el" href="a00914_source.html">multiseq_selection.h</a>.</p>

<p class="reference">References <a class="el" href="a16491_source.html#l00102">__rd_log2()</a>, <a class="el" href="a00953_source.html#l00248">__round_up_to_pow2()</a>, <a class="el" href="a00527_source.html#l05719">std::__sample()</a>, <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, <a class="el" href="a00551_source.html#l00138">std::distance()</a>, <a class="el" href="a00572_source.html#l00524">std::make_pair()</a>, and <a class="el" href="a00530_source.html#l00219">std::max()</a>.</p>

</div>
</div>
<a id="a25294b0a47406aefa9ebc5e0c151d0ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25294b0a47406aefa9ebc5e0c151d0ce">&#9670;&nbsp;</a></span>multiway_merge()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIterOut __gnu_parallel::multiway_merge </td>
          <td>(</td>
          <td class="paramtype">_RAIterPairIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterPairIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterOut&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiway Merge Frontend. </p>
<p>Merge the sequences specified by seqs_begin and __seqs_end into __target. __seqs_begin and __seqs_end must point to a sequence of pairs. These pairs must contain an iterator to the beginning of a sequence in their first entry and an iterator the _M_end of the same sequence in their second entry.</p>
<p>Ties are broken arbitrarily. See stable_multiway_merge for a variant that breaks ties by sequence number but is slower.</p>
<p>The first entries of the pairs (i.e. the begin iterators) will be moved forward.</p>
<p>The output sequence has to provide enough space for all elements that are written to it.</p>
<p>This function will merge the input sequences:</p>
<ul>
<li>not stable</li>
<li>parallel, depending on the input size and Settings</li>
<li>using sampling for splitting</li>
<li>not using sentinels</li>
</ul>
<p>Example:</p>
<pre>
  int sequences[10][10];
  for (int __i = 0; __i &lt; 10; ++__i)
    for (int __j = 0; __i &lt; 10; ++__j)
      sequences[__i][__j] = __j;</pre><pre>  int __out[33];
  std::vector&lt;std::pair&lt;int*&gt; &gt; seqs;
  for (int __i = 0; __i &lt; 10; ++__i)
    { seqs.push(std::make_pair&lt;int*&gt;(sequences[__i],
                                     sequences[__i] + 10)) }</pre><pre>  multiway_merge(seqs.begin(), seqs.end(), __target, std::less&lt;int&gt;(), 33);
</pre><dl class="section see"><dt>See also</dt><dd>stable_multiway_merge</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>All input sequences must be sorted. </dd>
<dd>
Target must provide enough space to merge out length elements or the number of elements in all sequences, whichever is smaller.</dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>[__target, return __value) contains merged __elements from the input sequences. </dd>
<dd>
return __value - __target = min(__length, number of elements in all sequences).</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">_RAIterPairIterator</td><td>iterator over sequence of pairs of iterators </td></tr>
    <tr><td class="paramname">_RAIterOut</td><td>iterator over target sequence </td></tr>
    <tr><td class="paramname">_DifferenceTp</td><td>difference type for the sequence </td></tr>
    <tr><td class="paramname">_Compare</td><td>strict weak ordering type to compare elements in sequences</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>__begin of sequence __sequence </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>_M_end of sequence __sequence </td></tr>
    <tr><td class="paramname">__target</td><td>target sequence to merge to. </td></tr>
    <tr><td class="paramname">__comp</td><td>strict weak ordering to use for element comparison. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, possibly larger than the number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>_M_end iterator of output sequence </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l01418">1418</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00917_source.html#l00920">__sequential_multiway_merge()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a7ee9d79b73a6f85ae97e472312ba411e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ee9d79b73a6f85ae97e472312ba411e">&#9670;&nbsp;</a></span>multiway_merge_3_variant()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename RAI, typename C &gt; class iterator, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::multiway_merge_3_variant </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Highly efficient 3-way merging procedure. </p>
<p>Merging is done with the algorithm implementation described by Peter Sanders. Basically, the idea is to minimize the number of necessary comparison after merging an element. The implementation trick that makes this fast is that the order of the sequences is stored in the instruction pointer (translated into labels in C++).</p>
<p>This works well for merging up to 4 sequences.</p>
<p>Note that making the merging stable does <em>not</em> come at a performance hit.</p>
<p>Whether the merging is done guarded or unguarded is selected by the used iterator class.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, less equal than the total number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00241">241</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="ac4af8f9977aa36823357bce35be6c946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4af8f9977aa36823357bce35be6c946">&#9670;&nbsp;</a></span>multiway_merge_4_variant()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;template&lt; typename RAI, typename C &gt; class iterator, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::multiway_merge_4_variant </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Highly efficient 4-way merging procedure. </p>
<p>Merging is done with the algorithm implementation described by Peter Sanders. Basically, the idea is to minimize the number of necessary comparison after merging an element. The implementation trick that makes this fast is that the order of the sequences is stored in the instruction pointer (translated into goto labels in C++).</p>
<p>This works well for merging up to 4 sequences.</p>
<p>Note that making the merging stable does <em>not</em> come at a performance hit.</p>
<p>Whether the merging is done guarded or unguarded is selected by the used iterator class.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, less equal than the total number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00360">360</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a567621588e461a8759651e29cd964ab9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a567621588e461a8759651e29cd964ab9">&#9670;&nbsp;</a></span>multiway_merge_exact_splitting()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::multiway_merge_exact_splitting </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__total_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a07923.html">std::vector</a>&lt; <a class="el" href="a07767.html">std::pair</a>&lt; _DifferenceType, _DifferenceType &gt; &gt; *&#160;</td>
          <td class="paramname"><em>__pieces</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Exact splitting for parallel multiway-merge routine. </p>
<p>None of the passed sequences may be empty. </p>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l01120">1120</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00911_source.html#l00223">__parallel_merge_advance()</a>.</p>

</div>
</div>
<a id="a150b06a4da2cf1cff673d1b6242c27fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a150b06a4da2cf1cff673d1b6242c27fa">&#9670;&nbsp;</a></span>multiway_merge_loser_tree()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::multiway_merge_loser_tree </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multi-way merging procedure for a high branching factor, guarded case. </p>
<p>This merging variant uses a LoserTree class as selected by <code>_LT</code>.</p>
<p>Stability is selected through the used LoserTree class <code>_LT</code>.</p>
<p>At least one non-empty sequence is required.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, less equal than the total number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00491">491</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>, and <a class="el" href="a00917_source.html#l00054">_GLIBCXX_PARALLEL_LENGTH</a>.</p>

</div>
</div>
<a id="a686704fa4da0a4fdbc6800fe46048366"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a686704fa4da0a4fdbc6800fe46048366">&#9670;&nbsp;</a></span>multiway_merge_loser_tree_sentinel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename UnguardedLoserTree , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::multiway_merge_loser_tree_sentinel </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;&#160;</td>
          <td class="paramname"><em>__sentinel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multi-way merging procedure for a high branching factor, requiring sentinels to exist. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">UnguardedLoserTree</td><td>_Loser Tree variant to use for the unguarded merging.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, less equal than the total number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00662">662</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a3ffd0c9da50da6118291d38f95d44b52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ffd0c9da50da6118291d38f95d44b52">&#9670;&nbsp;</a></span>multiway_merge_loser_tree_unguarded()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _LT , typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::multiway_merge_loser_tree_unguarded </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename std::iterator_traits&lt; typename std::iterator_traits&lt; _RAIterIterator &gt;::value_type::first_type &gt;::value_type &amp;&#160;</td>
          <td class="paramname"><em>__sentinel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multi-way merging procedure for a high branching factor, unguarded case. </p>
<p>Merging is done using the LoserTree class <code>_LT</code>.</p>
<p>Stability is selected by the used LoserTrees.</p>
<dl class="section pre"><dt>Precondition</dt><dd>No input will run out of elements during the merge.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, less equal than the total number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l00574">574</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a0e39d3891745fd0e244fb125bf34ce8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e39d3891745fd0e244fb125bf34ce8b">&#9670;&nbsp;</a></span>multiway_merge_sampling_splitting()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, typename _RAIterIterator , typename _Compare , typename _DifferenceType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::multiway_merge_sampling_splitting </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceType&#160;</td>
          <td class="paramname"><em>__total_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a07923.html">std::vector</a>&lt; <a class="el" href="a07767.html">std::pair</a>&lt; _DifferenceType, _DifferenceType &gt; &gt; *&#160;</td>
          <td class="paramname"><em>__pieces</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sampling based splitting for parallel multiway-merge routine. </p>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l01035">1035</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00917_source.html#l00054">_GLIBCXX_PARALLEL_LENGTH</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, and <a class="el" href="a00962_source.html#l00175">__gnu_parallel::_Settings::merge_oversampling</a>.</p>

</div>
</div>
<a id="a4d6e76ac42b48f0033139352dcb0418f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d6e76ac42b48f0033139352dcb0418f">&#9670;&nbsp;</a></span>multiway_merge_sentinels()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _RAIterPairIterator , typename _RAIterOut , typename _DifferenceTp , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIterOut __gnu_parallel::multiway_merge_sentinels </td>
          <td>(</td>
          <td class="paramtype">_RAIterPairIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterPairIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterOut&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a09639.html">__gnu_parallel::sequential_tag</a>&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiway Merge Frontend. </p>
<p>Merge the sequences specified by seqs_begin and __seqs_end into __target. __seqs_begin and __seqs_end must point to a sequence of pairs. These pairs must contain an iterator to the beginning of a sequence in their first entry and an iterator the _M_end of the same sequence in their second entry.</p>
<p>Ties are broken arbitrarily. See stable_multiway_merge for a variant that breaks ties by sequence number but is slower.</p>
<p>The first entries of the pairs (i.e. the begin iterators) will be moved forward accordingly.</p>
<p>The output sequence has to provide enough space for all elements that are written to it.</p>
<p>This function will merge the input sequences:</p>
<ul>
<li>not stable</li>
<li>parallel, depending on the input size and Settings</li>
<li>using sampling for splitting</li>
<li>using sentinels</li>
</ul>
<p>You have to take care that the element the _M_end iterator points to is readable and contains a value that is greater than any other non-sentinel value in all sequences.</p>
<p>Example:</p>
<pre>
  int sequences[10][11];
  for (int __i = 0; __i &lt; 10; ++__i)
    for (int __j = 0; __i &lt; 11; ++__j)
      sequences[__i][__j] = __j; // __last one is sentinel!</pre><pre>  int __out[33];
  std::vector&lt;std::pair&lt;int*&gt; &gt; seqs;
  for (int __i = 0; __i &lt; 10; ++__i)
    { seqs.push(std::make_pair&lt;int*&gt;(sequences[__i],
                                     sequences[__i] + 10)) }</pre><pre>  multiway_merge(seqs.begin(), seqs.end(), __target, std::less&lt;int&gt;(), 33);
</pre><dl class="section pre"><dt>Precondition</dt><dd>All input sequences must be sorted. </dd>
<dd>
Target must provide enough space to merge out length elements or the number of elements in all sequences, whichever is smaller. </dd>
<dd>
For each <code>__i</code>, <code>__seqs_begin</code>[__i].second must be the end marker of the sequence, but also reference the one more __sentinel element.</dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>[__target, return __value) contains merged __elements from the input sequences. </dd>
<dd>
return __value - __target = min(__length, number of elements in all sequences).</dd></dl>
<dl class="section see"><dt>See also</dt><dd>stable_multiway_merge_sentinels</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">_RAIterPairIterator</td><td>iterator over sequence of pairs of iterators </td></tr>
    <tr><td class="paramname">_RAIterOut</td><td>iterator over target sequence </td></tr>
    <tr><td class="paramname">_DifferenceTp</td><td>difference type for the sequence </td></tr>
    <tr><td class="paramname">_Compare</td><td>strict weak ordering type to compare elements in sequences</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>__begin of sequence __sequence </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>_M_end of sequence __sequence </td></tr>
    <tr><td class="paramname">__target</td><td>target sequence to merge to. </td></tr>
    <tr><td class="paramname">__comp</td><td>strict weak ordering to use for element comparison. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, possibly larger than the number of elements available.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>_M_end iterator of output sequence </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l01782">1782</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">References <a class="el" href="a00917_source.html#l00920">__sequential_multiway_merge()</a>, and <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="a14c854d00d1321cf1ee7f6d12fb955c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14c854d00d1321cf1ee7f6d12fb955c4">&#9670;&nbsp;</a></span>parallel_multiway_merge()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, bool __sentinels, typename _RAIterIterator , typename _RAIter3 , typename _DifferenceTp , typename _Splitter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">_RAIter3 __gnu_parallel::parallel_multiway_merge </td>
          <td>(</td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIterIterator&#160;</td>
          <td class="paramname"><em>__seqs_end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter3&#160;</td>
          <td class="paramname"><em>__target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Splitter&#160;</td>
          <td class="paramname"><em>__splitter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_DifferenceTp&#160;</td>
          <td class="paramname"><em>__length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parallel multi-way merge routine. </p>
<p>The _GLIBCXX_PARALLEL_DECISION is based on the branching factor and runtime settings.</p>
<p>Must not be called if the number of sequences is 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">_Splitter</td><td>functor to split input (either __exact or sampling based) </td></tr>
    <tr><td class="paramname">__stable</td><td>Stable merging incurs a performance penalty. </td></tr>
    <tr><td class="paramname">__sentinel</td><td>Ignored.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__seqs_begin</td><td>Begin iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__seqs_end</td><td>End iterator of iterator pair input sequence. </td></tr>
    <tr><td class="paramname">__target</td><td>Begin iterator of output sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__length</td><td>Maximum length to merge, possibly larger than the number of elements available. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>End iterator of output sequence. </dd></dl>

<p class="definition">Definition at line <a class="el" href="a00917_source.html#l01225">1225</a> of file <a class="el" href="a00917_source.html">multiway_merge.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a00911_source.html#l00223">__parallel_merge_advance()</a>.</p>

</div>
</div>
<a id="ae193ac43730550b537828a117dd2797f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae193ac43730550b537828a117dd2797f">&#9670;&nbsp;</a></span>parallel_sort_mwms()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, bool __exact, typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::parallel_sort_mwms </td>
          <td>(</td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__begin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_RAIter&#160;</td>
          <td class="paramname"><em>__end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare&#160;</td>
          <td class="paramname"><em>__comp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01575.html#a05e502e51bfc3233671730f74a44dc6a">_ThreadIndex</a>&#160;</td>
          <td class="paramname"><em>__num_threads</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PMWMS main call. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__begin</td><td>Begin iterator of sequence. </td></tr>
    <tr><td class="paramname">__end</td><td>End iterator of sequence. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
    <tr><td class="paramname">__num_threads</td><td>Number of threads to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00920_source.html#l00395">395</a> of file <a class="el" href="a00920_source.html">multiway_mergesort.h</a>.</p>

<p class="reference">References <a class="el" href="a00881_source.html#l00044">_GLIBCXX_CALL</a>.</p>

</div>
</div>
<a id="aaf84903cd78722fcd19b20ccb69c47e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf84903cd78722fcd19b20ccb69c47e4">&#9670;&nbsp;</a></span>parallel_sort_mwms_pu()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool __stable, bool __exact, typename _RAIter , typename _Compare &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void __gnu_parallel::parallel_sort_mwms_pu </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a09563.html">_PMWMSSortingData</a>&lt; _RAIter &gt; *&#160;</td>
          <td class="paramname"><em>__sd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_Compare &amp;&#160;</td>
          <td class="paramname"><em>__comp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PMWMS code executed by each thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">__sd</td><td>Pointer to algorithm data. </td></tr>
    <tr><td class="paramname">__comp</td><td>Comparator. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="a00920_source.html#l00308">308</a> of file <a class="el" href="a00920_source.html">multiway_mergesort.h</a>.</p>

<p class="reference">References <a class="el" href="a00920_source.html#l00068">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_num_threads</a>, <a class="el" href="a00920_source.html#l00071">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_source</a>, <a class="el" href="a00920_source.html#l00074">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_starts</a>, <a class="el" href="a00920_source.html#l00077">__gnu_parallel::_PMWMSSortingData&lt; _RAIter &gt;::_M_temporary</a>, <a class="el" href="a09635.html#abc4965eacae0b49945ebc887cb11adc1">__gnu_parallel::_Settings::get()</a>, <a class="el" href="a00572_source.html#l00524">std::make_pair()</a>, <a class="el" href="a00962_source.html#l00234">__gnu_parallel::_Settings::sort_mwms_oversampling</a>, and <a class="el" href="a00596_source.html#l00115">std::uninitialized_copy()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="add7da76e5782016cb1271e7537f0e94b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add7da76e5782016cb1271e7537f0e94b">&#9670;&nbsp;</a></span>_CASable_bits</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int __gnu_parallel::_CASable_bits</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of bits of _CASable. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00130">130</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a16491_source.html#l00133">__decode2()</a>, and <a class="el" href="a16491_source.html#l00119">__encode2()</a>.</p>

</div>
</div>
<a id="ad26f1c0a23abae27911dfbd0560a6048"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad26f1c0a23abae27911dfbd0560a6048">&#9670;&nbsp;</a></span>_CASable_mask</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a01575.html#aa1171c39f9e5afad6392c7aeefb81115">_CASable</a> __gnu_parallel::_CASable_mask</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>_CASable with the right half of bits set to 1. </p>

<p class="definition">Definition at line <a class="el" href="a00971_source.html#l00133">133</a> of file <a class="el" href="a00971_source.html">types.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="a16491_source.html#l00133">__decode2()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="a01575.html">__gnu_parallel</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>