<?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.38.0 (20140413.2041) --> <!-- Title: __gnu_parallel::__parallel_sort Pages: 1 --> <!--zoomable 197 --> <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 = 197; 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="white" stroke="none" points="-4,4 -4,-192.787 801,-192.787 801,4 -4,4"/> <!-- Node11 --> <g id="node1" class="node"><title>Node11</title> <polygon fill="#bfbfbf" stroke="black" points="0,-94.2867 0,-112.287 145,-112.287 145,-94.2867 0,-94.2867"/> <text text-anchor="middle" x="72.5" y="-101.087" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__parallel_sort</text> </g> <!-- Node12 --> <g id="node2" class="node"><title>Node12</title> <g id="a_node2"><a xlink:href="a08481.html#a18b32829b31b902699690b750e190e59" target="_top" xlink:title="Find out desired number of threads. "> <polygon fill="white" stroke="black" points="182.5,-160.287 182.5,-188.287 304.5,-188.287 304.5,-160.287 182.5,-160.287"/> <text text-anchor="start" x="190.5" y="-177.087" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::parallel</text> <text text-anchor="middle" x="243.5" y="-167.087" font-family="Helvetica,sans-Serif" font-size="9.00">_tag::__get_num_threads</text> </a> </g> </g> <!-- Node11->Node12 --> <g id="edge1" class="edge"><title>Node11->Node12</title> <path fill="none" stroke="midnightblue" d="M92.764,-112.323C114.157,-122.255 149.794,-138.499 181,-151.287 185.208,-153.011 189.597,-154.756 194.01,-156.474"/> <polygon fill="midnightblue" stroke="midnightblue" points="193.055,-159.857 203.645,-160.173 195.564,-153.322 193.055,-159.857"/> </g> <!-- Node13 --> <g id="node3" class="node"><title>Node13</title> <g id="a_node3"><a xlink:href="a01519.html#ac416a1c7e347b429bbf7a8fb17e847b2" target="_top" xlink:title="Unbalanced quicksort main call. "> <polygon fill="white" stroke="black" points="181,-113.287 181,-141.287 306,-141.287 306,-113.287 181,-113.287"/> <text text-anchor="start" x="189" y="-130.087" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="243.5" y="-120.087" font-family="Helvetica,sans-Serif" font-size="9.00">_sort_qs</text> </a> </g> </g> <!-- Node11->Node13 --> <g id="edge2" class="edge"><title>Node11->Node13</title> <path fill="none" stroke="midnightblue" d="M136.91,-112.292C147.953,-113.86 159.51,-115.501 170.758,-117.098"/> <polygon fill="midnightblue" stroke="midnightblue" points="170.584,-120.609 180.977,-118.55 171.569,-113.678 170.584,-120.609"/> </g> <!-- Node15 --> <g id="node5" class="node"><title>Node15</title> <g id="a_node5"><a xlink:href="a01519.html#a4093dd098b32542e3d3f43ebd4c6f940" target="_top" xlink:title="Top-level quicksort routine. "> <polygon fill="white" stroke="black" points="181,-66.2867 181,-94.2867 306,-94.2867 306,-66.2867 181,-66.2867"/> <text text-anchor="start" x="189" y="-83.0867" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="243.5" y="-73.0867" font-family="Helvetica,sans-Serif" font-size="9.00">_sort_qsb</text> </a> </g> </g> <!-- Node11->Node15 --> <g id="edge4" class="edge"><title>Node11->Node15</title> <path fill="none" stroke="midnightblue" d="M139.808,-94.2625C149.934,-92.8844 160.426,-91.4566 170.664,-90.0632"/> <polygon fill="midnightblue" stroke="midnightblue" points="171.357,-93.5012 180.794,-88.6845 170.413,-86.5651 171.357,-93.5012"/> </g> <!-- Node20 --> <g id="node10" class="node"><title>Node20</title> <g id="a_node10"><a xlink:href="a08473.html#abc4965eacae0b49945ebc887cb11adc1" target="_top" xlink:title="Get the global settings. "> <polygon fill="white" stroke="black" points="658,-31.2867 658,-49.2867 797,-49.2867 797,-31.2867 658,-31.2867"/> <text text-anchor="middle" x="727.5" y="-38.0867" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::_Settings::get</text> </a> </g> </g> <!-- Node11->Node20 --> <g id="edge11" class="edge"><title>Node11->Node20</title> <path fill="none" stroke="midnightblue" d="M91.7909,-94.2342C112.906,-84.0341 148.86,-67.4276 181,-56.2867 367.028,8.1971 426.575,9.65955 622,-14.2867 644.281,-17.0169 668.65,-22.9056 688.246,-28.3894"/> <polygon fill="midnightblue" stroke="midnightblue" points="687.445,-31.8007 698.023,-31.2013 689.38,-25.0735 687.445,-31.8007"/> </g> <!-- Node14 --> <g id="node4" class="node"><title>Node14</title> <g id="a_node4"><a xlink:href="a01519.html#a06c506308856b684737d24944a93a42e" target="_top" xlink:title="Unbalanced quicksort conquer step. "> <polygon fill="white" stroke="black" points="342,-145.287 342,-173.287 467,-173.287 467,-145.287 342,-145.287"/> <text text-anchor="start" x="350" y="-162.087" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__parallel</text> <text text-anchor="middle" x="404.5" y="-152.087" font-family="Helvetica,sans-Serif" font-size="9.00">_sort_qs_conquer</text> </a> </g> </g> <!-- Node13->Node14 --> <g id="edge3" class="edge"><title>Node13->Node14</title> <path fill="none" stroke="midnightblue" d="M306.429,-139.75C314.764,-141.428 323.371,-143.16 331.857,-144.868"/> <polygon fill="midnightblue" stroke="midnightblue" points="331.246,-148.315 341.74,-146.857 332.627,-141.453 331.246,-148.315"/> </g> <!-- Node16 --> <g id="node6" class="node"><title>Node16</title> <g id="a_node6"><a xlink:href="a01519.html#ae8e1f6dc07de01f28bf591339cf8aa9c" target="_top" xlink:title="Calculates the rounded-down logarithm of __n for base 2. "> <polygon fill="white" stroke="black" points="342,-108.287 342,-126.287 467,-126.287 467,-108.287 342,-108.287"/> <text text-anchor="middle" x="404.5" y="-115.087" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__rd_log2</text> </a> </g> </g> <!-- Node15->Node16 --> <g id="edge5" class="edge"><title>Node15->Node16</title> <path fill="none" stroke="midnightblue" d="M305.065,-94.3804C321.479,-98.2 339.036,-102.286 354.711,-105.933"/> <polygon fill="midnightblue" stroke="midnightblue" points="354.176,-109.402 364.709,-108.26 355.763,-102.584 354.176,-109.402"/> </g> <!-- Node17 --> <g id="node7" class="node"><title>Node17</title> <g id="a_node7"><a xlink:href="a01431.html#ga0409e288f07b697cb6885d1002df0bd6" target="_top" xlink:title="A convenience wrapper for creating a pair from two objects. "> <polygon fill="white" stroke="black" points="366,-71.2867 366,-89.2867 443,-89.2867 443,-71.2867 366,-71.2867"/> <text text-anchor="middle" x="404.5" y="-78.0867" font-family="Helvetica,sans-Serif" font-size="9.00">std::make_pair</text> </a> </g> </g> <!-- Node15->Node17 --> <g id="edge6" class="edge"><title>Node15->Node17</title> <path fill="none" stroke="midnightblue" d="M306.429,-80.2867C322.724,-80.2867 340.055,-80.2867 355.496,-80.2867"/> <polygon fill="midnightblue" stroke="midnightblue" points="355.848,-83.7868 365.848,-80.2867 355.848,-76.7868 355.848,-83.7868"/> </g> <!-- Node18 --> <g id="node8" class="node"><title>Node18</title> <g id="a_node8"><a xlink:href="a01519.html#a8d9c5686c4621822c7c3cdd015f7e693" target="_top" xlink:title="Quicksort conquer step. "> <polygon fill="white" stroke="black" points="350,-24.2867 350,-52.2867 459,-52.2867 459,-24.2867 350,-24.2867"/> <text text-anchor="start" x="358" y="-41.0867" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="404.5" y="-31.0867" font-family="Helvetica,sans-Serif" font-size="9.00">_conquer</text> </a> </g> </g> <!-- Node15->Node18 --> <g id="edge7" class="edge"><title>Node15->Node18</title> <path fill="none" stroke="midnightblue" d="M297.887,-66.1845C311.463,-62.5985 326.181,-58.7106 340.198,-55.008"/> <polygon fill="midnightblue" stroke="midnightblue" points="341.479,-58.2896 350.254,-52.3517 339.692,-51.5218 341.479,-58.2896"/> </g> <!-- Node19 --> <g id="node9" class="node"><title>Node19</title> <g id="a_node9"><a xlink:href="a01519.html#a7565d258aacb02328cef6eb2781ab711" target="_top" xlink:title="Quicksort step doing load-balanced local sort. "> <polygon fill="white" stroke="black" points="503,-71.2867 503,-99.2867 622,-99.2867 622,-71.2867 503,-71.2867"/> <text text-anchor="start" x="511" y="-88.0867" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="562.5" y="-78.0867" font-family="Helvetica,sans-Serif" font-size="9.00">_local_sort_with_helping</text> </a> </g> </g> <!-- Node18->Node19 --> <g id="edge8" class="edge"><title>Node18->Node19</title> <path fill="none" stroke="midnightblue" d="M452.305,-52.3882C468.885,-57.3836 487.717,-63.0572 505.017,-68.2693"/> <polygon fill="midnightblue" stroke="midnightblue" points="504.412,-71.7425 514.997,-71.2761 506.432,-65.0401 504.412,-71.7425"/> </g> <!-- Node21 --> <g id="node11" class="node"><title>Node21</title> <g id="a_node11"><a xlink:href="a01519.html#afc19882fd22d39e54475d41fd981ac49" target="_top" xlink:title="Balanced quicksort divide step. "> <polygon fill="white" stroke="black" points="508,-24.2867 508,-52.2867 617,-52.2867 617,-24.2867 508,-24.2867"/> <text text-anchor="start" x="516" y="-41.0867" font-family="Helvetica,sans-Serif" font-size="9.00">__gnu_parallel::__qsb</text> <text text-anchor="middle" x="562.5" y="-31.0867" font-family="Helvetica,sans-Serif" font-size="9.00">_divide</text> </a> </g> </g> <!-- Node18->Node21 --> <g id="edge10" class="edge"><title>Node18->Node21</title> <path fill="none" stroke="midnightblue" d="M459.186,-38.2867C471.635,-38.2867 485.001,-38.2867 497.832,-38.2867"/> <polygon fill="midnightblue" stroke="midnightblue" points="497.979,-41.7868 507.979,-38.2867 497.979,-34.7868 497.979,-41.7868"/> </g> <!-- Node19->Node20 --> <g id="edge9" class="edge"><title>Node19->Node20</title> <path fill="none" stroke="midnightblue" d="M614.627,-71.1719C636.873,-65.0305 662.641,-57.9165 683.836,-52.0651"/> <polygon fill="midnightblue" stroke="midnightblue" points="684.822,-55.4239 693.53,-49.3889 682.959,-48.6764 684.822,-55.4239"/> </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="a01519_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>