-
Notifications
You must be signed in to change notification settings - Fork 0
/
best_8hpp_source.html
149 lines (147 loc) · 88.2 KB
/
best_8hpp_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.11"/>
<title>tlx: tlx/sort/networks/best.hpp Source File</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">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></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">tlx
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
</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">
$(document).ready(function(){initNavTree('best_8hpp_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">best.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="best_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * tlx/sort/networks/best.hpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Implementation of best known sorting networks for up to sixteen elements.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Part of tlx - http://panthema.net/tlx</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Copyright (C) 2018-2020 Jasper Marianczuk <jasper.marianczuk@gmail.com></span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * Copyright (C) 2020 Timo Bingmann <tb@panthema.net></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * All rights reserved. Published under the Boost Software License, Version 1.0</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef TLX_SORT_NETWORKS_BEST_HEADER</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define TLX_SORT_NETWORKS_BEST_HEADER</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="cswap_8hpp.html">tlx/sort/networks/cswap.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="namespacetlx.html">tlx</a> {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">//! Implementations of sorting networks for up to sixteen elements.</span></div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks.html"> 24</a></span> <span class="comment"></span><span class="keyword">namespace </span>sort_networks {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">//! \addtogroup tlx_sort</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">//! \{</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">//! \name Implementations of Sorting Networks</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">//! \{</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"></span><span class="comment"></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">//! Implementation of best known sorting networks for up to sixteen elements.</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html"> 32</a></span> <span class="comment"></span><span class="keyword">namespace </span>best {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">//! default conditional swap implementation</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">using</span> <a class="code" href="classtlx_1_1sort__networks_1_1CS__IfSwap.html">DefaultCSwap</a> = <a class="code" href="classtlx_1_1sort__networks_1_1CS__IfSwap.html">CS_IfSwap</a><</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a6e72380222a72175185190517f195e2c"> 37</a></span>  std::less<typename std::iterator_traits<Iterator>::value_type> >;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">//! sorting network for two elements</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a61f170d71899d406ac9b42fcf45a6cb0"> 41</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a61f170d71899d406ac9b42fcf45a6cb0">sort2</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">//! sorting network for three elements</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#ad679e8a48a24b9ca4578fcf11ecf9658"> 47</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ad679e8a48a24b9ca4578fcf11ecf9658">sort3</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"></span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//! sorting network for four elements</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a3ce6872ac381354fb87648b5b6a93498"> 55</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a3ce6872ac381354fb87648b5b6a93498">sort4</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"></span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">//! sorting network for five elements</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a8d7015c029855e02df1742cffe77d857"> 65</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a8d7015c029855e02df1742cffe77d857">sort5</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"></span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">//! sorting network for six elements</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a9c769d5c02921b77ac09c6a8761b0287"> 79</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9c769d5c02921b77ac09c6a8761b0287">sort6</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"></span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">//! sorting network for seven elements</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a9f2747b0a68ce3ab30c0a9e1bd096590"> 96</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9f2747b0a68ce3ab30c0a9e1bd096590">sort7</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"></span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//! sorting network for eight elements</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a87fe2b11cb6314428e580a56867dd1b4"> 117</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a87fe2b11cb6314428e580a56867dd1b4">sort8</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  cswap(a[3], a[6]);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">//! sorting network for nine elements</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a310c67ea73eb2ef36e660bc6efa0dec4"> 141</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a310c67ea73eb2ef36e660bc6efa0dec4">sort9</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  cswap(a[3], a[6]);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  cswap(a[4], a[7]);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  cswap(a[5], a[8]);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"></span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">//! sorting network for ten elements</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a63cde8e6ac914a16c3fa0a3160077455"> 171</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a63cde8e6ac914a16c3fa0a3160077455">sort10</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  cswap(a[4], a[9]);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  cswap(a[2], a[7]);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  cswap(a[1], a[6]);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  cswap(a[0], a[5]);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  cswap(a[6], a[9]);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  cswap(a[0], a[3]);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  cswap(a[5], a[8]);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  cswap(a[3], a[6]);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  cswap(a[4], a[7]);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment"></span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">//! sorting network for eleven elements</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a874ac583a7f87538fdbc9d503a0a7e58"> 205</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a874ac583a7f87538fdbc9d503a0a7e58">sort11</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  cswap(a[6], a[10]);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  cswap(a[5], a[9]);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  cswap(a[6], a[10]);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  cswap(a[4], a[8]);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  cswap(a[7], a[10]);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"></span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">//! sorting network for twelve elements</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#ab3176295970dc69e16d59de1e5712ade"> 245</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ab3176295970dc69e16d59de1e5712ade">sort12</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  cswap(a[6], a[10]);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  cswap(a[5], a[9]);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  cswap(a[6], a[10]);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  cswap(a[7], a[11]);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  cswap(a[4], a[8]);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  cswap(a[7], a[11]);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  cswap(a[7], a[10]);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment"></span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment">//! sorting network for thirteen elements</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#aa867f4817e4c66af10dacd9d4ce06593"> 289</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#aa867f4817e4c66af10dacd9d4ce06593">sort13</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  cswap(a[1], a[7]);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  cswap(a[5], a[8]);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  cswap(a[0], a[12]);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  cswap(a[8], a[11]);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  cswap(a[7], a[12]);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  cswap(a[5], a[9]);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  cswap(a[6], a[12]);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  cswap(a[11], a[12]);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  cswap(a[4], a[9]);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  cswap(a[6], a[10]);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  cswap(a[1], a[7]);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  cswap(a[4], a[7]);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  cswap(a[0], a[5]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  cswap(a[2], a[5]);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment"></span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">//! sorting network for fourteen elements</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a9fa0a9c0c6f44a2dabaade0ef2ef56ae"> 339</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9fa0a9c0c6f44a2dabaade0ef2ef56ae">sort14</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  cswap(a[12], a[13]);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  cswap(a[8], a[12]);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  cswap(a[9], a[13]);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  cswap(a[0], a[8]);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  cswap(a[1], a[9]);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  cswap(a[2], a[10]);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  cswap(a[3], a[11]);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  cswap(a[4], a[12]);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  cswap(a[5], a[13]);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  cswap(a[5], a[10]);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  cswap(a[6], a[9]);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  cswap(a[3], a[12]);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  cswap(a[7], a[11]);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  cswap(a[4], a[8]);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  cswap(a[7], a[13]);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  cswap(a[2], a[8]);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  cswap(a[11], a[13]);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  cswap(a[7], a[12]);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  cswap(a[10], a[12]);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  cswap(a[11], a[12]);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="comment"></span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="comment">//! sorting network for fifteen elements</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#ac8da75caf542e301d97b616e947eaf86"> 395</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ac8da75caf542e301d97b616e947eaf86">sort15</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  cswap(a[12], a[13]);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  cswap(a[12], a[14]);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  cswap(a[8], a[12]);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  cswap(a[9], a[13]);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  cswap(a[10], a[14]);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  cswap(a[0], a[8]);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  cswap(a[1], a[9]);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  cswap(a[2], a[10]);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  cswap(a[3], a[11]);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  cswap(a[4], a[12]);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  cswap(a[5], a[13]);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  cswap(a[6], a[14]);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  cswap(a[5], a[10]);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  cswap(a[6], a[9]);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  cswap(a[3], a[12]);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  cswap(a[13], a[14]);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  cswap(a[7], a[11]);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  cswap(a[4], a[8]);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  cswap(a[7], a[13]);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  cswap(a[2], a[8]);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  cswap(a[11], a[14]);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  cswap(a[11], a[13]);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  cswap(a[7], a[12]);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  cswap(a[10], a[12]);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  cswap(a[11], a[12]);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment"></span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">//! sorting network for sixteen elements</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> CSwap = DefaultCSwap<Iterator> ></div><div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a90767e89a7b6a54d6f4471965416bde8"> 456</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a90767e89a7b6a54d6f4471965416bde8">sort16</a>(Iterator a, CSwap cswap = CSwap()) {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  cswap(a[0], a[1]);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  cswap(a[2], a[3]);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  cswap(a[4], a[5]);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  cswap(a[10], a[11]);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  cswap(a[12], a[13]);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  cswap(a[14], a[15]);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  cswap(a[0], a[2]);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  cswap(a[4], a[6]);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  cswap(a[8], a[10]);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  cswap(a[12], a[14]);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  cswap(a[1], a[3]);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  cswap(a[5], a[7]);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  cswap(a[9], a[11]);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  cswap(a[13], a[15]);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  cswap(a[0], a[4]);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  cswap(a[8], a[12]);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  cswap(a[1], a[5]);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  cswap(a[9], a[13]);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  cswap(a[2], a[6]);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  cswap(a[10], a[14]);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  cswap(a[3], a[7]);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  cswap(a[11], a[15]);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  cswap(a[0], a[8]);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  cswap(a[1], a[9]);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  cswap(a[2], a[10]);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  cswap(a[3], a[11]);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  cswap(a[4], a[12]);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  cswap(a[5], a[13]);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  cswap(a[6], a[14]);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  cswap(a[7], a[15]);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  cswap(a[5], a[10]);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  cswap(a[6], a[9]);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  cswap(a[3], a[12]);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  cswap(a[13], a[14]);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  cswap(a[7], a[11]);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  cswap(a[1], a[2]);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  cswap(a[4], a[8]);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  cswap(a[1], a[4]);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  cswap(a[7], a[13]);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  cswap(a[2], a[8]);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  cswap(a[11], a[14]);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  cswap(a[2], a[4]);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  cswap(a[11], a[13]);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  cswap(a[3], a[8]);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  cswap(a[7], a[12]);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  cswap(a[6], a[8]);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  cswap(a[10], a[12]);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  cswap(a[3], a[5]);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  cswap(a[7], a[9]);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  cswap(a[3], a[4]);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  cswap(a[5], a[6]);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  cswap(a[7], a[8]);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  cswap(a[9], a[10]);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  cswap(a[11], a[12]);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  cswap(a[6], a[7]);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  cswap(a[8], a[9]);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="comment"></span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">//! Call best known sorting network for up to sixteen elements with given</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">//! comparison method</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> Comparator =</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  std::less<typename std::iterator_traits<Iterator>::value_type> ></div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="namespacetlx_1_1sort__networks_1_1best.html#a77f7863b9da900c70157993b5e3dce9f"> 523</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a77f7863b9da900c70157993b5e3dce9f">sort</a>(Iterator begin, Iterator end, Comparator cmp = Comparator()) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="classtlx_1_1sort__networks_1_1CS__IfSwap.html">CS_IfSwap<Comparator></a> cswap(cmp);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">switch</span> (end - begin) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a61f170d71899d406ac9b42fcf45a6cb0">sort2</a>(begin, cswap);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ad679e8a48a24b9ca4578fcf11ecf9658">sort3</a>(begin, cswap);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">case</span> 4:</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a3ce6872ac381354fb87648b5b6a93498">sort4</a>(begin, cswap);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">case</span> 5:</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a8d7015c029855e02df1742cffe77d857">sort5</a>(begin, cswap);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">case</span> 6:</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9c769d5c02921b77ac09c6a8761b0287">sort6</a>(begin, cswap);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">case</span> 7:</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9f2747b0a68ce3ab30c0a9e1bd096590">sort7</a>(begin, cswap);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">case</span> 8:</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a87fe2b11cb6314428e580a56867dd1b4">sort8</a>(begin, cswap);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">case</span> 9:</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a310c67ea73eb2ef36e660bc6efa0dec4">sort9</a>(begin, cswap);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">case</span> 10:</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a63cde8e6ac914a16c3fa0a3160077455">sort10</a>(begin, cswap);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">case</span> 11:</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a874ac583a7f87538fdbc9d503a0a7e58">sort11</a>(begin, cswap);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">case</span> 12:</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ab3176295970dc69e16d59de1e5712ade">sort12</a>(begin, cswap);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">case</span> 13:</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#aa867f4817e4c66af10dacd9d4ce06593">sort13</a>(begin, cswap);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">case</span> 14:</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a9fa0a9c0c6f44a2dabaade0ef2ef56ae">sort14</a>(begin, cswap);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">case</span> 15:</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#ac8da75caf542e301d97b616e947eaf86">sort15</a>(begin, cswap);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">case</span> 16:</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="namespacetlx_1_1sort__networks_1_1best.html#a90767e89a7b6a54d6f4471965416bde8">sort16</a>(begin, cswap);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  abort();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> } <span class="comment">// namespace best</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="comment">/******************************************************************************/</span></div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="comment"></span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="comment">//! \}</span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment">//! \}</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment"></span></div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> } <span class="comment">// namespace sort_networks</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> } <span class="comment">// namespace tlx</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor">#endif // !TLX_SORT_NETWORKS_BEST_HEADER</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="comment">/******************************************************************************/</span></div><div class="ttc" id="cswap_8hpp_html"><div class="ttname"><a href="cswap_8hpp.html">cswap.hpp</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a3ce6872ac381354fb87648b5b6a93498"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a3ce6872ac381354fb87648b5b6a93498">tlx::sort_networks::best::sort4</a></div><div class="ttdeci">static void sort4(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for four elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00055">best.hpp:55</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_aa867f4817e4c66af10dacd9d4ce06593"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#aa867f4817e4c66af10dacd9d4ce06593">tlx::sort_networks::best::sort13</a></div><div class="ttdeci">static void sort13(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for thirteen elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00289">best.hpp:289</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a310c67ea73eb2ef36e660bc6efa0dec4"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a310c67ea73eb2ef36e660bc6efa0dec4">tlx::sort_networks::best::sort9</a></div><div class="ttdeci">static void sort9(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for nine elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00141">best.hpp:141</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a90767e89a7b6a54d6f4471965416bde8"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a90767e89a7b6a54d6f4471965416bde8">tlx::sort_networks::best::sort16</a></div><div class="ttdeci">static void sort16(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for sixteen elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00456">best.hpp:456</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a63cde8e6ac914a16c3fa0a3160077455"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a63cde8e6ac914a16c3fa0a3160077455">tlx::sort_networks::best::sort10</a></div><div class="ttdeci">static void sort10(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for ten elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00171">best.hpp:171</a></div></div>
<div class="ttc" id="classtlx_1_1sort__networks_1_1CS__IfSwap_html"><div class="ttname"><a href="classtlx_1_1sort__networks_1_1CS__IfSwap.html">tlx::sort_networks::CS_IfSwap</a></div><div class="ttdoc">Conditional swap implementation used for sorting networks: trivial portable C++ implementation with c...</div><div class="ttdef"><b>Definition:</b> <a href="cswap_8hpp_source.html#l00032">cswap.hpp:32</a></div></div>
<div class="ttc" id="namespacetlx_html"><div class="ttname"><a href="namespacetlx.html">tlx</a></div><div class="ttdef"><b>Definition:</b> <a href="exclusive__scan_8hpp_source.html#l00017">exclusive_scan.hpp:17</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a87fe2b11cb6314428e580a56867dd1b4"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a87fe2b11cb6314428e580a56867dd1b4">tlx::sort_networks::best::sort8</a></div><div class="ttdeci">static void sort8(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for eight elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00117">best.hpp:117</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a77f7863b9da900c70157993b5e3dce9f"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a77f7863b9da900c70157993b5e3dce9f">tlx::sort_networks::best::sort</a></div><div class="ttdeci">static void sort(Iterator begin, Iterator end, Comparator cmp=Comparator())</div><div class="ttdoc">Call best known sorting network for up to sixteen elements with given comparison method. </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00523">best.hpp:523</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a9f2747b0a68ce3ab30c0a9e1bd096590"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a9f2747b0a68ce3ab30c0a9e1bd096590">tlx::sort_networks::best::sort7</a></div><div class="ttdeci">static void sort7(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for seven elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00096">best.hpp:96</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_ad679e8a48a24b9ca4578fcf11ecf9658"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#ad679e8a48a24b9ca4578fcf11ecf9658">tlx::sort_networks::best::sort3</a></div><div class="ttdeci">static void sort3(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for three elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00047">best.hpp:47</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_ac8da75caf542e301d97b616e947eaf86"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#ac8da75caf542e301d97b616e947eaf86">tlx::sort_networks::best::sort15</a></div><div class="ttdeci">static void sort15(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for fifteen elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00395">best.hpp:395</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a874ac583a7f87538fdbc9d503a0a7e58"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a874ac583a7f87538fdbc9d503a0a7e58">tlx::sort_networks::best::sort11</a></div><div class="ttdeci">static void sort11(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for eleven elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00205">best.hpp:205</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_ab3176295970dc69e16d59de1e5712ade"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#ab3176295970dc69e16d59de1e5712ade">tlx::sort_networks::best::sort12</a></div><div class="ttdeci">static void sort12(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for twelve elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00245">best.hpp:245</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a61f170d71899d406ac9b42fcf45a6cb0"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a61f170d71899d406ac9b42fcf45a6cb0">tlx::sort_networks::best::sort2</a></div><div class="ttdeci">static void sort2(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for two elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00041">best.hpp:41</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a9c769d5c02921b77ac09c6a8761b0287"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a9c769d5c02921b77ac09c6a8761b0287">tlx::sort_networks::best::sort6</a></div><div class="ttdeci">static void sort6(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for six elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00079">best.hpp:79</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a9fa0a9c0c6f44a2dabaade0ef2ef56ae"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a9fa0a9c0c6f44a2dabaade0ef2ef56ae">tlx::sort_networks::best::sort14</a></div><div class="ttdeci">static void sort14(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for fourteen elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00339">best.hpp:339</a></div></div>
<div class="ttc" id="namespacetlx_1_1sort__networks_1_1best_html_a8d7015c029855e02df1742cffe77d857"><div class="ttname"><a href="namespacetlx_1_1sort__networks_1_1best.html#a8d7015c029855e02df1742cffe77d857">tlx::sort_networks::best::sort5</a></div><div class="ttdeci">static void sort5(Iterator a, CSwap cswap=CSwap())</div><div class="ttdoc">sorting network for five elements </div><div class="ttdef"><b>Definition:</b> <a href="best_8hpp_source.html#l00065">best.hpp:65</a></div></div>
</div><!-- fragment --></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="dir_8b4d4685f7eaf29e53aad23645930303.html">tlx</a></li><li class="navelem"><a class="el" href="dir_82d49b977daa72f9a1145b61404a8efe.html">sort</a></li><li class="navelem"><a class="el" href="dir_872e6a8813ecb7759061c0981c1eeec5.html">networks</a></li><li class="navelem"><a class="el" href="best_8hpp.html">best.hpp</a></li>
<li class="footer">Generated on Sat Oct 2 2021 20:29:00 for tlx by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>