<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.40.1 (20161225.0304) --> <!-- Title: __gnu_parallel::__parallel_sort Pages: 1 --> <!--zoomable 196 --> <svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)"> <style type="text/css"><![CDATA[ .edge:hover path { stroke: red; } .edge:hover polygon { stroke: red; fill: red; } ]]></style> <script type="text/javascript"><![CDATA[ var edges = document.getElementsByTagName('g'); if (edges && edges.length) { for (var i=0;i<edges.length;i++) { if (edges[i].id.substr(0,4)=='edge') { edges[i].setAttribute('class','edge'); } } } ]]></script> <defs> <circle id="rim" cx="0" cy="0" r="7"/> <circle id="rim2" cx="0" cy="0" r="3.5"/> <g id="zoomPlus"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/> </use> <path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/> </g> <g id="zoomMin"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/> </use> <path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/> </g> <g id="dirArrow"> <path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/> </g> <g id="resetDef"> <use xlink:href="#rim2" fill="#404040"> <set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/> </use> </g> </defs> <script type="text/javascript"> var viewWidth = 805; var viewHeight = 196; var sectionId = 'dynsection-4'; </script> <script xlink:href="svgpan.js"/> <svg id="graph" class="graph"> <g id="viewport"> <title>__gnu_parallel::__parallel_sort</title> <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-192.3255 801,-192.3255 801,4 -4,4"/> <!-- Node11 --> <g id="node1" class="node"> <title>Node11</title> <g id="a_node1"><a xlink:title="Choose a parallel sorting algorithm."> <polygon fill="#bfbfbf" stroke="#000000" points="0,-93.8255 0,-111.8255 145,-111.8255 145,-93.8255 0,-93.8255"/> <text text-anchor="middle" x="72.5" y="-100.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__parallel_sort</text> </a> </g> </g> <!-- Node12 --> <g id="node2" class="node"> <title>Node12</title> <g id="a_node2"><a xlink:href="a09640.html#a18b32829b31b902699690b750e190e59" target="_top" xlink:title="Find out desired number of threads."> <polygon fill="#ffffff" stroke="#000000" points="182.5,-159.8255 182.5,-187.8255 304.5,-187.8255 304.5,-159.8255 182.5,-159.8255"/> <text text-anchor="start" x="190.5" y="-176.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::parallel</text> <text text-anchor="middle" x="243.5" y="-166.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_tag::__get_num_threads</text> </a> </g> </g> <!-- Node11->Node12 --> <g id="edge1" class="edge"> <title>Node11->Node12</title> <path fill="none" stroke="#191970" d="M91.9403,-111.8758C113.5295,-121.8207 149.4959,-138.0753 181,-150.8255 185.3909,-152.6026 189.9771,-154.3999 194.5836,-156.1655"/> <polygon fill="#191970" stroke="#191970" points="193.4199,-159.4673 204.0116,-159.7284 195.8945,-152.9193 193.4199,-159.4673"/> </g> <!-- Node13 --> <g id="node3" class="node"> <title>Node13</title> <g id="a_node3"><a xlink:href="a01572.html#ac416a1c7e347b429bbf7a8fb17e847b2" target="_top" xlink:title="Unbalanced quicksort main call."> <polygon fill="#ffffff" stroke="#000000" points="181,-112.8255 181,-140.8255 306,-140.8255 306,-112.8255 181,-112.8255"/> <text text-anchor="start" x="189" y="-129.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="243.5" y="-119.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_sort_qs</text> </a> </g> </g> <!-- Node11->Node13 --> <g id="edge2" class="edge"> <title>Node11->Node13</title> <path fill="none" stroke="#191970" d="M136.6606,-111.8305C147.8752,-113.4045 159.6131,-115.0519 171.0333,-116.6548"/> <polygon fill="#191970" stroke="#191970" points="170.5769,-120.1249 180.9663,-118.0489 171.5499,-113.1929 170.5769,-120.1249"/> </g> <!-- Node15 --> <g id="node5" class="node"> <title>Node15</title> <g id="a_node5"><a xlink:href="a01572.html#a4093dd098b32542e3d3f43ebd4c6f940" target="_top" xlink:title="Top-level quicksort routine."> <polygon fill="#ffffff" stroke="#000000" points="181,-65.8255 181,-93.8255 306,-93.8255 306,-65.8255 181,-65.8255"/> <text text-anchor="start" x="189" y="-82.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="243.5" y="-72.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_sort_qsb</text> </a> </g> </g> <!-- Node11->Node15 --> <g id="edge4" class="edge"> <title>Node11->Node15</title> <path fill="none" stroke="#191970" d="M139.5929,-93.8013C149.7684,-92.4327 160.309,-91.0149 170.6006,-89.6307"/> <polygon fill="#191970" stroke="#191970" points="171.3423,-93.0625 180.7865,-88.2607 170.4091,-86.125 171.3423,-93.0625"/> </g> <!-- Node20 --> <g id="node10" class="node"> <title>Node20</title> <g id="a_node10"><a xlink:href="a09632.html#abc4965eacae0b49945ebc887cb11adc1" target="_top" xlink:title="Get the global settings."> <polygon fill="#ffffff" stroke="#000000" points="658,-30.8255 658,-48.8255 797,-48.8255 797,-30.8255 658,-30.8255"/> <text text-anchor="middle" x="727.5" y="-37.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::_Settings::get</text> </a> </g> </g> <!-- Node11->Node20 --> <g id="edge11" class="edge"> <title>Node11->Node20</title> <path fill="none" stroke="#191970" d="M91.7803,-93.6792C113.2293,-83.7345 149.0737,-67.7964 181,-56.8255 367.2404,7.1726 426.506,9.9087 622,-13.8255 644.4849,-16.5553 669.0862,-22.444 688.8723,-27.9279"/> <polygon fill="#191970" stroke="#191970" points="688.1672,-31.3662 698.7435,-30.7399 690.085,-24.6341 688.1672,-31.3662"/> </g> <!-- Node14 --> <g id="node4" class="node"> <title>Node14</title> <g id="a_node4"><a xlink:href="a01572.html#a06c506308856b684737d24944a93a42e" target="_top" xlink:title="Unbalanced quicksort conquer step."> <polygon fill="#ffffff" stroke="#000000" points="342,-144.8255 342,-172.8255 467,-172.8255 467,-144.8255 342,-144.8255"/> <text text-anchor="start" x="350" y="-161.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="404.5" y="-151.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_sort_qs_conquer</text> </a> </g> </g> <!-- Node13->Node14 --> <g id="edge3" class="edge"> <title>Node13->Node14</title> <path fill="none" stroke="#191970" d="M306.2078,-139.2892C314.6481,-140.9668 323.3631,-142.6989 331.9559,-144.4068"/> <polygon fill="#191970" stroke="#191970" points="331.4729,-147.8792 341.9633,-146.3959 332.8375,-141.0135 331.4729,-147.8792"/> </g> <!-- Node16 --> <g id="node6" class="node"> <title>Node16</title> <g id="a_node6"><a xlink:href="a01572.html#ae8e1f6dc07de01f28bf591339cf8aa9c" target="_top" xlink:title="Calculates the rounded-down logarithm of __n for base 2."> <polygon fill="#ffffff" stroke="#000000" points="342,-107.8255 342,-125.8255 467,-125.8255 467,-107.8255 342,-107.8255"/> <text text-anchor="middle" x="404.5" y="-114.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__rd_log2</text> </a> </g> </g> <!-- Node15->Node16 --> <g id="edge5" class="edge"> <title>Node15->Node16</title> <path fill="none" stroke="#191970" d="M304.8265,-93.9192C321.4469,-97.7388 339.2251,-101.8244 355.0974,-105.4721"/> <polygon fill="#191970" stroke="#191970" points="354.6913,-108.97 365.2212,-107.7987 356.2592,-102.1478 354.6913,-108.97"/> </g> <!-- Node17 --> <g id="node7" class="node"> <title>Node17</title> <g id="a_node7"><a xlink:href="a01477.html#ga0409e288f07b697cb6885d1002df0bd6" target="_top" xlink:title="A convenience wrapper for creating a pair from two objects."> <polygon fill="#ffffff" stroke="#000000" points="366,-70.8255 366,-88.8255 443,-88.8255 443,-70.8255 366,-70.8255"/> <text text-anchor="middle" x="404.5" y="-77.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">std::make_pair</text> </a> </g> </g> <!-- Node15->Node17 --> <g id="edge6" class="edge"> <title>Node15->Node17</title> <path fill="none" stroke="#191970" d="M306.2078,-79.8255C322.5641,-79.8255 339.952,-79.8255 355.4838,-79.8255"/> <polygon fill="#191970" stroke="#191970" points="355.9045,-83.3256 365.9045,-79.8255 355.9045,-76.3256 355.9045,-83.3256"/> </g> <!-- Node18 --> <g id="node8" class="node"> <title>Node18</title> <g id="a_node8"><a xlink:href="a01572.html#a8d9c5686c4621822c7c3cdd015f7e693" target="_top" xlink:title="Quicksort conquer step."> <polygon fill="#ffffff" stroke="#000000" points="350,-23.8255 350,-51.8255 459,-51.8255 459,-23.8255 350,-23.8255"/> <text text-anchor="start" x="358" y="-40.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="404.5" y="-30.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_conquer</text> </a> </g> </g> <!-- Node15->Node18 --> <g id="edge7" class="edge"> <title>Node15->Node18</title> <path fill="none" stroke="#191970" d="M297.5586,-65.7233C311.4383,-62.1025 326.4979,-58.1739 340.8147,-54.4391"/> <polygon fill="#191970" stroke="#191970" points="341.7915,-57.8015 350.5841,-51.8905 340.0244,-51.0282 341.7915,-57.8015"/> </g> <!-- Node19 --> <g id="node9" class="node"> <title>Node19</title> <g id="a_node9"><a xlink:href="a01572.html#a7565d258aacb02328cef6eb2781ab711" target="_top" xlink:title="Quicksort step doing load-balanced local sort."> <polygon fill="#ffffff" stroke="#000000" points="503,-70.8255 503,-98.8255 622,-98.8255 622,-70.8255 503,-70.8255"/> <text text-anchor="start" x="511" y="-87.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="562.5" y="-77.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_local_sort_with_helping</text> </a> </g> </g> <!-- Node18->Node19 --> <g id="edge8" class="edge"> <title>Node18->Node19</title> <path fill="none" stroke="#191970" d="M451.9052,-51.9271C468.8549,-56.9691 488.1277,-62.7021 505.7834,-67.9541"/> <polygon fill="#191970" stroke="#191970" points="504.8178,-71.3184 515.4007,-70.815 506.8137,-64.609 504.8178,-71.3184"/> </g> <!-- Node21 --> <g id="node11" class="node"> <title>Node21</title> <g id="a_node11"><a xlink:href="a01572.html#afc19882fd22d39e54475d41fd981ac49" target="_top" xlink:title="Balanced quicksort divide step."> <polygon fill="#ffffff" stroke="#000000" points="508,-23.8255 508,-51.8255 617,-51.8255 617,-23.8255 508,-23.8255"/> <text text-anchor="start" x="516" y="-40.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="562.5" y="-30.6255" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#000000">_divide</text> </a> </g> </g> <!-- Node18->Node21 --> <g id="edge10" class="edge"> <title>Node18->Node21</title> <path fill="none" stroke="#191970" d="M459.3173,-37.8255C471.6951,-37.8255 484.9495,-37.8255 497.6943,-37.8255"/> <polygon fill="#191970" stroke="#191970" points="497.7796,-41.3256 507.7796,-37.8255 497.7796,-34.3256 497.7796,-41.3256"/> </g> <!-- Node19->Node20 --> <g id="edge9" class="edge"> <title>Node19->Node20</title> <path fill="none" stroke="#191970" d="M614.2543,-70.7107C636.7728,-64.5693 662.8575,-57.4553 684.3126,-51.6039"/> <polygon fill="#191970" stroke="#191970" points="685.3986,-54.9356 694.1253,-48.9277 683.5567,-48.1823 685.3986,-54.9356"/> </g> </g> </svg> <g id="navigator" transform="translate(0 0)" fill="#404254"> <rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/> <use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/> <use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/> <use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/> <g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/> </use> <path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/> </g> <g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/> </use> <path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/> </g> <g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/> </use> <path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/> </g> <g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)"> <use xlink:href="#rim" fill="#404040"> <set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/> </use> <path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/> </g> </g> <svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet"> <g id="arrow_out" transform="scale(0.3 0.3)"> <a xlink:href="a01572_aa47b469dd82347dd63c3996eda2e237b_cgraph_org.svg" target="_base"> <rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38" fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/> <path id="arrow" d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z" style="fill:#404040;"/> </a> </g> </svg> </svg>