diff options
Diffstat (limited to 'chapter11/docs/graph4.svg')
| -rw-r--r-- | chapter11/docs/graph4.svg | 616 |
1 files changed, 187 insertions, 429 deletions
diff --git a/chapter11/docs/graph4.svg b/chapter11/docs/graph4.svg index 2730813a..c268b4e9 100644 --- a/chapter11/docs/graph4.svg +++ b/chapter11/docs/graph4.svg @@ -1,429 +1,187 @@ -<?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 12.2.0 (20241103.1931) - --> -<!-- Title: chapter11 Pages: 1 --> -<svg width="510pt" height="689pt" - viewBox="0.00 0.00 510.00 688.57" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 684.57)"> -<title>chapter11</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-684.57 506,-684.57 506,4 -4,4"/> -<g id="clust1" class="cluster"> -<title>cluster_Nodes</title> -<polygon fill="none" stroke="black" points="8,-23.57 8,-672.57 494,-672.57 494,-23.57 8,-23.57"/> -</g> -<!-- Start2 --> -<g id="node1" class="node"> -<title>Start2</title> -<polygon fill="yellow" stroke="none" points="177.38,-634.07 177.38,-660.57 282.62,-660.57 282.62,-634.07 177.38,-634.07"/> -<polygon fill="none" stroke="black" points="177.38,-634.07 177.38,-660.57 282.62,-660.57 282.62,-634.07 177.38,-634.07"/> -<text text-anchor="start" x="217.25" y="-642.27" font-family="Times New Roman,serif" font-size="14.00">Start</text> -<polygon fill="none" stroke="black" points="177.38,-601.57 177.38,-634.07 282.62,-634.07 282.62,-601.57 177.38,-601.57"/> -<polygon fill="yellow" stroke="none" points="182.38,-606.57 182.38,-629.07 213.12,-629.07 213.12,-606.57 182.38,-606.57"/> -<polygon fill="none" stroke="black" points="182.38,-606.57 182.38,-629.07 213.12,-629.07 213.12,-606.57 182.38,-606.57"/> -<text text-anchor="start" x="185.38" y="-612.77" font-family="Times New Roman,serif" font-size="14.00">$ctrl</text> -<polygon fill="none" stroke="black" points="213.12,-606.57 213.12,-629.07 254.38,-629.07 254.38,-606.57 213.12,-606.57"/> -<text text-anchor="start" x="216.12" y="-612.77" font-family="Times New Roman,serif" font-size="14.00">$mem</text> -<polygon fill="none" stroke="black" points="254.38,-606.57 254.38,-629.07 277.62,-629.07 277.62,-606.57 254.38,-606.57"/> -<text text-anchor="start" x="257.38" y="-612.77" font-family="Times New Roman,serif" font-size="14.00">arg</text> -</g> -<!-- MemMerge --> -<g id="node2" class="node"> -<title>MemMerge</title> -<polygon fill="none" stroke="black" points="190,-345.57 108,-345.57 108,-309.57 190,-309.57 190,-345.57"/> -<text text-anchor="middle" x="149" y="-322.52" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text> -</g> -<!-- MemMerge->Start2 --> -<g id="edge37" class="edge"> -<title>MemMerge->Start2:p1</title> -<path fill="none" stroke="blue" d="M182.26,-345.95C196.56,-354.9 212.4,-367 223,-381.57 271.6,-448.32 296.36,-483.66 269,-561.57 262.19,-580.96 242.83,-581.28 236.1,-594.6"/> -<polygon fill="blue" stroke="blue" points="232.74,-593.57 234.07,-604.09 239.58,-595.04 232.74,-593.57"/> -<text text-anchor="middle" x="180.01" y="-348.1" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Phi_230 --> -<g id="node16" class="node"> -<title>Phi_230</title> -<ellipse fill="lightyellow" stroke="black" cx="161" cy="-399.57" rx="52.89" ry="18"/> -<text text-anchor="middle" x="161" y="-394.52" font-family="Times New Roman,serif" font-size="14.00">MemPhi_2</text> -</g> -<!-- MemMerge->Phi_230 --> -<g id="edge38" class="edge"> -<title>MemMerge->Phi_230</title> -<path fill="none" stroke="blue" d="M151.97,-345.87C153.23,-353.24 154.74,-362.04 156.16,-370.32"/> -<polygon fill="blue" stroke="blue" points="152.67,-370.7 157.81,-379.97 159.57,-369.52 152.67,-370.7"/> -<text text-anchor="middle" x="149.72" y="-348.02" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Stop3 --> -<g id="node3" class="node"> -<title>Stop3</title> -<polygon fill="yellow" stroke="black" points="194,-67.57 140,-67.57 140,-31.57 194,-31.57 194,-67.57"/> -<text text-anchor="middle" x="167" y="-44.52" font-family="Times New Roman,serif" font-size="14.00">Stop</text> -</g> -<!-- Return37 --> -<g id="node22" class="node"> -<title>Return37</title> -<polygon fill="yellow" stroke="black" points="183,-155.07 129,-155.07 129,-119.07 183,-119.07 183,-155.07"/> -<text text-anchor="middle" x="156" y="-132.02" font-family="Times New Roman,serif" font-size="14.00">Return</text> -</g> -<!-- Stop3->Return37 --> -<g id="edge1" class="edge"> -<title>Stop3->Return37</title> -<path fill="none" stroke="red" d="M164.77,-67.87C163.31,-79.22 161.37,-94.35 159.68,-107.47"/> -<polygon fill="red" stroke="red" points="156.22,-106.92 158.42,-117.29 163.16,-107.82 156.22,-106.92"/> -<text text-anchor="middle" x="162.52" y="-70.02" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- Con_4 --> -<g id="node4" class="node"> -<title>Con_4</title> -<ellipse fill="none" stroke="black" cx="233" cy="-543.57" rx="27" ry="18"/> -<text text-anchor="middle" x="233" y="-538.52" font-family="Times New Roman,serif" font-size="14.00">#0</text> -</g> -<!-- new9 --> -<g id="node5" class="node"> -<title>new9</title> -<ellipse fill="none" stroke="black" cx="134" cy="-543.57" rx="33.95" ry="18"/> -<text text-anchor="middle" x="134" y="-538.52" font-family="Times New Roman,serif" font-size="14.00">new S</text> -</g> -<!-- new9->Start2 --> -<g id="edge2" class="edge"> -<title>new9->Start2:p0</title> -<path fill="none" stroke="green" d="M137.27,-561.92C141.67,-580.29 151.26,-607.68 170.22,-615.6"/> -<polygon fill="green" stroke="green" points="169.4,-619 179.89,-617.52 170.76,-612.14 169.4,-619"/> -<text text-anchor="middle" x="135.02" y="-564.07" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- Store10 --> -<g id="node6" class="node"> -<title>Store10</title> -<ellipse fill="none" stroke="black" cx="174" cy="-471.57" rx="27" ry="18"/> -<text text-anchor="middle" x="174" y="-466.52" font-family="Times New Roman,serif" font-size="14.00">.f =</text> -</g> -<!-- Store10->Start2 --> -<g id="edge3" class="edge"> -<title>Store10->Start2:p1</title> -<path fill="none" stroke="blue" d="M176.14,-489.77C178.97,-508.31 185.04,-538.28 197,-561.57 206.55,-580.16 225.16,-580.71 231.54,-594.37"/> -<polygon fill="blue" stroke="blue" points="228.09,-594.95 233.46,-604.08 234.95,-593.59 228.09,-594.95"/> -<text text-anchor="middle" x="173.89" y="-491.92" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Store10->Con_4 --> -<g id="edge5" class="edge"> -<title>Store10->Con_4</title> -<path fill="none" stroke="black" d="M186.8,-487.75C194.46,-496.84 204.35,-508.57 213.01,-518.85"/> -<polygon fill="black" stroke="black" points="210.13,-520.86 219.25,-526.25 215.48,-516.35 210.13,-520.86"/> -<text text-anchor="middle" x="184.55" y="-489.9" font-family="Helvetica,sans-Serif" font-size="8.00">3</text> -</g> -<!-- Store10->new9 --> -<g id="edge4" class="edge"> -<title>Store10->new9</title> -<path fill="none" stroke="black" d="M164.72,-488.8C160.09,-496.9 154.38,-506.9 149.14,-516.07"/> -<polygon fill="black" stroke="black" points="146.18,-514.2 144.26,-524.62 152.26,-517.67 146.18,-514.2"/> -<text text-anchor="middle" x="162.47" y="-490.95" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Loop11 --> -<g id="node7" class="node"> -<title>Loop11</title> -<polygon fill="yellow" stroke="black" points="326,-417.57 272,-417.57 272,-381.57 326,-381.57 326,-417.57"/> -<text text-anchor="middle" x="299" y="-394.52" font-family="Times New Roman,serif" font-size="14.00">Loop</text> -</g> -<!-- Loop11->Start2 --> -<g id="edge6" class="edge"> -<title>Loop11->Start2:p0</title> -<path fill="none" stroke="red" d="M302.41,-417.85C307.63,-449.41 314.1,-517.19 284,-561.57 262.39,-593.42 210.43,-569.06 199.7,-594.37"/> -<polygon fill="red" stroke="red" points="196.28,-593.62 198.01,-604.07 203.18,-594.83 196.28,-593.62"/> -<text text-anchor="middle" x="300.16" y="-420" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Region32 --> -<g id="node18" class="node"> -<title>Region32</title> -<polygon fill="yellow" stroke="black" points="277.5,-67.57 222.5,-67.57 222.5,-31.57 277.5,-31.57 277.5,-67.57"/> -<text text-anchor="middle" x="250" y="-44.52" font-family="Times New Roman,serif" font-size="14.00">Region</text> -</g> -<!-- Loop11->Region32 --> -<g id="edge7" class="edge"> -<title>Loop11->Region32</title> -<path fill="none" stroke="red" d="M294.37,-381.1C287.79,-356.73 275.97,-314.9 271,-309.57 241.37,-277.72 212.98,-301.92 180,-273.57 139.82,-239.03 133.81,-221.71 120,-170.57 112.24,-141.82 103.39,-128.28 120,-103.57 122.76,-99.46 174.37,-79.22 211.72,-64.98"/> -<polygon fill="red" stroke="red" points="212.79,-68.32 220.89,-61.49 210.3,-61.77 212.79,-68.32"/> -<text text-anchor="middle" x="292.12" y="-373.5" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Phi_arg13 --> -<g id="node8" class="node"> -<title>Phi_arg13</title> -<ellipse fill="lightyellow" stroke="black" cx="377" cy="-399.57" rx="32.93" ry="18"/> -<text text-anchor="middle" x="377" y="-394.52" font-family="Times New Roman,serif" font-size="14.00">φ_arg</text> -</g> -<!-- Phi_arg13->Start2 --> -<g id="edge9" class="edge"> -<title>Phi_arg13->Start2:p2</title> -<path fill="none" stroke="black" d="M377.05,-417.98C376.25,-467.21 367.08,-604.69 289.96,-616.94"/> -<polygon fill="black" stroke="black" points="289.83,-613.44 280.13,-617.7 290.37,-620.42 289.83,-613.44"/> -<text text-anchor="middle" x="374.8" y="-420.13" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Phi_arg13->Loop11 --> -<g id="edge8" class="edge"> -<title>Phi_arg13->Loop11</title> -<path fill="none" stroke="black" stroke-dasharray="1,5" d="M343.81,-399.57C341.82,-399.57 339.82,-399.57 337.83,-399.57"/> -<polygon fill="black" stroke="black" points="337.94,-396.07 327.94,-399.57 337.94,-403.07 337.94,-396.07"/> -<text text-anchor="middle" x="341.56" y="-391.97" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- Sub35 --> -<g id="node20" class="node"> -<title>Sub35</title> -<ellipse fill="none" stroke="black" cx="459" cy="-327.57" rx="27" ry="18"/> -<text text-anchor="middle" x="459" y="-322.52" font-family="Times New Roman,serif" font-size="14.00">-</text> -</g> -<!-- LT14 --> -<g id="node9" class="node"> -<title>LT14</title> -<ellipse fill="none" stroke="black" cx="235" cy="-327.57" rx="27" ry="18"/> -<text text-anchor="middle" x="235" y="-322.52" font-family="Times New Roman,serif" font-size="14.00"><</text> -</g> -<!-- LT14->Con_4 --> -<g id="edge11" class="edge"> -<title>LT14->Con_4</title> -<path fill="none" stroke="black" d="M234.84,-345.72C234.5,-382.42 233.69,-468.91 233.27,-514.03"/> -<polygon fill="black" stroke="black" points="229.77,-513.79 233.18,-523.82 236.77,-513.85 229.77,-513.79"/> -<text text-anchor="middle" x="232.59" y="-347.87" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- LT14->Phi_arg13 --> -<g id="edge12" class="edge"> -<title>LT14->Phi_arg13</title> -<path fill="none" stroke="black" d="M256.26,-339.05C279.21,-350.36 316.09,-368.54 343.06,-381.84"/> -<polygon fill="black" stroke="black" points="341.35,-384.89 351.86,-386.17 344.44,-378.61 341.35,-384.89"/> -<text text-anchor="middle" x="258.51" y="-341.2" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- If16 --> -<g id="node10" class="node"> -<title>If16</title> -<polygon fill="yellow" stroke="none" points="197,-243.07 197,-269.57 273,-269.57 273,-243.07 197,-243.07"/> -<polygon fill="none" stroke="black" points="197,-243.07 197,-269.57 273,-269.57 273,-243.07 197,-243.07"/> -<text text-anchor="start" x="230.5" y="-251.27" font-family="Times New Roman,serif" font-size="14.00">If</text> -<polygon fill="none" stroke="black" points="197,-210.57 197,-243.07 273,-243.07 273,-210.57 197,-210.57"/> -<polygon fill="yellow" stroke="none" points="202,-215.57 202,-238.07 233.5,-238.07 233.5,-215.57 202,-215.57"/> -<polygon fill="none" stroke="black" points="202,-215.57 202,-238.07 233.5,-238.07 233.5,-215.57 202,-215.57"/> -<text text-anchor="start" x="205" y="-221.77" font-family="Times New Roman,serif" font-size="14.00">True</text> -<polygon fill="yellow" stroke="none" points="233.5,-215.57 233.5,-238.07 268,-238.07 268,-215.57 233.5,-215.57"/> -<polygon fill="none" stroke="black" points="233.5,-215.57 233.5,-238.07 268,-238.07 268,-215.57 233.5,-215.57"/> -<text text-anchor="start" x="236.5" y="-221.77" font-family="Times New Roman,serif" font-size="14.00">False</text> -</g> -<!-- If16->Loop11 --> -<g id="edge13" class="edge"> -<title>If16->Loop11</title> -<path fill="none" stroke="red" d="M264.28,-273.52C272.55,-284.3 280.73,-296.83 286,-309.57 293.91,-328.67 297.12,-351.83 298.37,-369.73"/> -<polygon fill="red" stroke="red" points="294.87,-369.85 298.88,-379.66 301.86,-369.5 294.87,-369.85"/> -<text text-anchor="middle" x="262.03" y="-275.67" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- If16->LT14 --> -<g id="edge14" class="edge"> -<title>If16->LT14</title> -<path fill="none" stroke="black" d="M235,-273.39C235,-281.55 235,-290.26 235,-298.21"/> -<polygon fill="black" stroke="black" points="231.5,-298.02 235,-308.02 238.5,-298.02 231.5,-298.02"/> -<text text-anchor="middle" x="232.75" y="-275.54" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Div21 --> -<g id="node11" class="node"> -<title>Div21</title> -<ellipse fill="none" stroke="black" cx="43" cy="-399.57" rx="27" ry="18"/> -<text text-anchor="middle" x="43" y="-394.52" font-family="Times New Roman,serif" font-size="14.00">//</text> -</g> -<!-- Div21->Start2 --> -<g id="edge15" class="edge"> -<title>Div21->Start2:p2</title> -<path fill="none" stroke="black" d="M56.22,-415.68C64.22,-425.72 73.84,-439.58 79,-453.57 95.73,-498.87 59.24,-525.18 91,-561.57 140.95,-618.8 253.3,-535.12 265.01,-594.3"/> -<polygon fill="black" stroke="black" points="261.5,-594.4 265.87,-604.06 268.48,-593.79 261.5,-594.4"/> -<text text-anchor="middle" x="58.47" y="-417.83" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Con_22 --> -<g id="node12" class="node"> -<title>Con_22</title> -<ellipse fill="none" stroke="black" cx="43" cy="-471.57" rx="27" ry="18"/> -<text text-anchor="middle" x="43" y="-466.52" font-family="Times New Roman,serif" font-size="14.00">#3</text> -</g> -<!-- Div21->Con_22 --> -<g id="edge16" class="edge"> -<title>Div21->Con_22</title> -<path fill="none" stroke="black" d="M43,-417.87C43,-425.16 43,-433.84 43,-442.03"/> -<polygon fill="black" stroke="black" points="39.5,-441.95 43,-451.95 46.5,-441.95 39.5,-441.95"/> -<text text-anchor="middle" x="40.75" y="-420.02" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- EQ23 --> -<g id="node13" class="node"> -<title>EQ23</title> -<ellipse fill="none" stroke="black" cx="346" cy="-240.07" rx="27" ry="18"/> -<text text-anchor="middle" x="346" y="-235.02" font-family="Times New Roman,serif" font-size="14.00">==</text> -</g> -<!-- EQ23->Phi_arg13 --> -<g id="edge17" class="edge"> -<title>EQ23->Phi_arg13</title> -<path fill="none" stroke="black" d="M344.71,-258.4C343.62,-279.39 343.3,-315.66 351,-345.57 353.31,-354.54 357.23,-363.78 361.33,-371.99"/> -<polygon fill="black" stroke="black" points="358.21,-373.56 366.01,-380.73 364.38,-370.26 358.21,-373.56"/> -<text text-anchor="middle" x="342.46" y="-260.55" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Con_24 --> -<g id="node14" class="node"> -<title>Con_24</title> -<ellipse fill="none" stroke="black" cx="387" cy="-327.57" rx="27" ry="18"/> -<text text-anchor="middle" x="387" y="-322.52" font-family="Times New Roman,serif" font-size="14.00">#5</text> -</g> -<!-- EQ23->Con_24 --> -<g id="edge18" class="edge"> -<title>EQ23->Con_24</title> -<path fill="none" stroke="black" d="M353.91,-257.55C359.69,-269.62 367.66,-286.24 374.33,-300.14"/> -<polygon fill="black" stroke="black" points="370.98,-301.26 378.46,-308.77 377.3,-298.24 370.98,-301.26"/> -<text text-anchor="middle" x="351.66" y="-259.7" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- If25 --> -<g id="node15" class="node"> -<title>If25</title> -<polygon fill="yellow" stroke="none" points="229,-140.07 229,-166.57 305,-166.57 305,-140.07 229,-140.07"/> -<polygon fill="none" stroke="black" points="229,-140.07 229,-166.57 305,-166.57 305,-140.07 229,-140.07"/> -<text text-anchor="start" x="262.5" y="-148.27" font-family="Times New Roman,serif" font-size="14.00">If</text> -<polygon fill="none" stroke="black" points="229,-107.57 229,-140.07 305,-140.07 305,-107.57 229,-107.57"/> -<polygon fill="yellow" stroke="none" points="234,-112.57 234,-135.07 265.5,-135.07 265.5,-112.57 234,-112.57"/> -<polygon fill="none" stroke="black" points="234,-112.57 234,-135.07 265.5,-135.07 265.5,-112.57 234,-112.57"/> -<text text-anchor="start" x="237" y="-118.77" font-family="Times New Roman,serif" font-size="14.00">True</text> -<polygon fill="yellow" stroke="none" points="265.5,-112.57 265.5,-135.07 300,-135.07 300,-112.57 265.5,-112.57"/> -<polygon fill="none" stroke="black" points="265.5,-112.57 265.5,-135.07 300,-135.07 300,-112.57 265.5,-112.57"/> -<text text-anchor="start" x="268.5" y="-118.77" font-family="Times New Roman,serif" font-size="14.00">False</text> -</g> -<!-- If25->If16 --> -<g id="edge19" class="edge"> -<title>If25->If16:p0</title> -<path fill="none" stroke="red" d="M234.98,-170.32C227.77,-180.06 221.5,-191.38 218.96,-203.38"/> -<polygon fill="red" stroke="red" points="215.51,-202.74 217.91,-213.06 222.47,-203.49 215.51,-202.74"/> -<text text-anchor="middle" x="232.73" y="-172.47" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- If25->EQ23 --> -<g id="edge20" class="edge"> -<title>If25->EQ23</title> -<path fill="none" stroke="black" d="M292.21,-170.3C303.4,-184.61 316.37,-201.18 326.76,-214.47"/> -<polygon fill="black" stroke="black" points="323.96,-216.57 332.88,-222.29 329.48,-212.26 323.96,-216.57"/> -<text text-anchor="middle" x="289.96" y="-172.45" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Phi_230->Store10 --> -<g id="edge22" class="edge"> -<title>Phi_230->Store10</title> -<path fill="none" stroke="blue" d="M164.21,-417.87C165.58,-425.24 167.22,-434.04 168.75,-442.32"/> -<polygon fill="blue" stroke="blue" points="165.28,-442.78 170.55,-451.97 172.16,-441.5 165.28,-442.78"/> -<text text-anchor="middle" x="161.96" y="-420.02" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Phi_230->Loop11 --> -<g id="edge21" class="edge"> -<title>Phi_230->Loop11</title> -<path fill="none" stroke="black" stroke-dasharray="1,5" d="M214.37,-399.57C229.71,-399.57 245.05,-399.57 260.39,-399.57"/> -<polygon fill="black" stroke="black" points="260.05,-403.07 270.05,-399.57 260.05,-396.07 260.05,-403.07"/> -<text text-anchor="middle" x="216.62" y="-391.97" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- Phi_233 --> -<g id="node19" class="node"> -<title>Phi_233</title> -<ellipse fill="lightyellow" stroke="black" cx="69" cy="-49.57" rx="52.89" ry="18"/> -<text text-anchor="middle" x="69" y="-44.52" font-family="Times New Roman,serif" font-size="14.00">MemPhi_2</text> -</g> -<!-- Store31 --> -<g id="node17" class="node"> -<title>Store31</title> -<ellipse fill="none" stroke="black" cx="43" cy="-327.57" rx="27" ry="18"/> -<text text-anchor="middle" x="43" y="-322.52" font-family="Times New Roman,serif" font-size="14.00">.f =</text> -</g> -<!-- Store31->new9 --> -<g id="edge25" class="edge"> -<title>Store31->new9</title> -<path fill="none" stroke="black" d="M56.48,-343.35C67.65,-356.68 82.68,-377.39 89,-398.57"/> -<path fill="none" stroke="black" d="M89,-400.57C100.9,-440.42 115.61,-486.25 124.9,-514.81"/> -<polygon fill="black" stroke="black" points="121.51,-515.71 127.94,-524.13 128.17,-513.54 121.51,-515.71"/> -<text text-anchor="middle" x="58.73" y="-345.5" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Store31->Div21 --> -<g id="edge26" class="edge"> -<title>Store31->Div21</title> -<path fill="none" stroke="black" d="M43,-345.87C43,-353.16 43,-361.84 43,-370.03"/> -<polygon fill="black" stroke="black" points="39.5,-369.95 43,-379.95 46.5,-369.95 39.5,-369.95"/> -<text text-anchor="middle" x="40.75" y="-348.02" font-family="Helvetica,sans-Serif" font-size="8.00">3</text> -</g> -<!-- Store31->Phi_230 --> -<g id="edge24" class="edge"> -<title>Store31->Phi_230</title> -<path fill="none" stroke="blue" d="M62.75,-340.28C79.89,-350.45 105.12,-365.42 125.72,-377.64"/> -<polygon fill="blue" stroke="blue" points="123.72,-380.52 134.1,-382.61 127.29,-374.5 123.72,-380.52"/> -<text text-anchor="middle" x="65" y="-342.43" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Region32->If25 --> -<g id="edge27" class="edge"> -<title>Region32->If25:p0</title> -<path fill="none" stroke="red" d="M249.89,-67.92C249.84,-77.07 249.79,-88.77 249.76,-100.25"/> -<polygon fill="red" stroke="red" points="246.26,-100.05 249.75,-110.05 253.26,-100.06 246.26,-100.05"/> -<text text-anchor="middle" x="247.64" y="-70.07" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Region32->If25 --> -<g id="edge28" class="edge"> -<title>Region32->If25:p1</title> -<path fill="none" stroke="red" d="M265.22,-67.95C271.77,-76.79 278.57,-88.22 281.39,-100.32"/> -<polygon fill="red" stroke="red" points="277.9,-100.55 282.57,-110.06 284.84,-99.72 277.9,-100.55"/> -<text text-anchor="middle" x="262.97" y="-70.1" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Phi_233->Phi_230 --> -<g id="edge31" class="edge"> -<title>Phi_233->Phi_230</title> -<path fill="none" stroke="blue" d="M117.06,-66.52C146.85,-77.29 181.4,-91.65 192,-103.57 212.65,-126.78 191.64,-147.08 212,-170.57 237.01,-199.41 269.42,-174.4 290,-206.57 323.6,-259.09 310.68,-297.47 271,-345.57 256.18,-363.53 233.82,-375.83 213.13,-384.03"/> -<polygon fill="blue" stroke="blue" points="118.37,-63.28 107.78,-63.24 116.04,-69.87 118.37,-63.28"/> -<polygon fill="blue" stroke="blue" points="212.09,-380.68 203.93,-387.42 214.52,-387.25 212.09,-380.68"/> -<text text-anchor="middle" x="108.6" y="-64.88" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Phi_233->Store31 --> -<g id="edge30" class="edge"> -<title>Phi_233->Store31</title> -<path fill="none" stroke="blue" d="M67.37,-67.83C63.02,-114.01 51.09,-240.72 45.7,-297.9"/> -<polygon fill="blue" stroke="blue" points="42.22,-297.52 44.77,-307.8 49.19,-298.17 42.22,-297.52"/> -<text text-anchor="middle" x="65.12" y="-69.98" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Phi_233->Region32 --> -<g id="edge29" class="edge"> -<title>Phi_233->Region32</title> -<path fill="none" stroke="black" stroke-dasharray="1,5" d="M89.57,-32.51C103.01,-22.52 121.45,-10.85 140,-5.57 163.08,1.01 171.32,2.28 194,-5.57 205.22,-9.45 215.9,-16.6 224.86,-24.03"/> -<polygon fill="black" stroke="black" points="222.28,-26.42 232.09,-30.44 226.93,-21.19 222.28,-26.42"/> -<text text-anchor="middle" x="87.32" y="-24.91" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -<!-- Sub35->Phi_arg13 --> -<g id="edge32" class="edge"> -<title>Sub35->Phi_arg13</title> -<path fill="none" stroke="black" d="M434.35,-349.61C424.46,-358.05 413.06,-367.79 403.03,-376.34"/> -<polygon fill="black" stroke="black" points="436.32,-352.53 441.65,-343.38 431.77,-347.21 436.32,-352.53"/> -<polygon fill="black" stroke="black" points="400.78,-373.66 395.45,-382.82 405.33,-378.98 400.78,-373.66"/> -<text text-anchor="middle" x="440.55" y="-344.55" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Con_36 --> -<g id="node21" class="node"> -<title>Con_36</title> -<ellipse fill="none" stroke="black" cx="459" cy="-399.57" rx="27" ry="18"/> -<text text-anchor="middle" x="459" y="-394.52" font-family="Times New Roman,serif" font-size="14.00">#1</text> -</g> -<!-- Sub35->Con_36 --> -<g id="edge33" class="edge"> -<title>Sub35->Con_36</title> -<path fill="none" stroke="black" d="M459,-345.87C459,-353.16 459,-361.84 459,-370.03"/> -<polygon fill="black" stroke="black" points="455.5,-369.95 459,-379.95 462.5,-369.95 455.5,-369.95"/> -<text text-anchor="middle" x="456.75" y="-348.02" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Return37->MemMerge --> -<g id="edge36" class="edge"> -<title>Return37->MemMerge</title> -<path fill="none" stroke="blue" d="M89,-241.07C86.12,-264.36 101.49,-285.96 117.39,-301.62"/> -<polygon fill="blue" stroke="blue" points="114.82,-304.01 124.55,-308.22 119.57,-298.86 114.82,-304.01"/> -<text text-anchor="middle" x="86.75" y="-233.47" font-family="Helvetica,sans-Serif" font-size="8.00">1</text> -</g> -<!-- Return37->new9 --> -<g id="edge35" class="edge"> -<title>Return37->new9</title> -<path fill="none" stroke="black" d="M89,-241.07C84.7,-275.8 78.53,-365.17 89,-398.57"/> -<path fill="none" stroke="black" d="M137.42,-155.26C119.26,-173.82 93.67,-205.3 89,-239.07"/> -<text text-anchor="middle" x="86.75" y="-243.22" font-family="Helvetica,sans-Serif" font-size="8.00">2</text> -</g> -<!-- Return37->If16 --> -<g id="edge34" class="edge"> -<title>Return37->If16:p1</title> -<path fill="none" stroke="red" d="M177.98,-155.47C198.53,-171.78 228.14,-195.38 242.42,-207.22"/> -<polygon fill="red" stroke="red" points="239.8,-209.58 249.61,-213.56 244.43,-204.33 239.8,-209.58"/> -<text text-anchor="middle" x="175.73" y="-157.62" font-family="Helvetica,sans-Serif" font-size="8.00">0</text> -</g> -</g> -</svg> +<svg aria-label="Compiler graph" width="890" height="1532" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 890 1532" style="font-family: sans-serif;"><style> + html, body { height:100%; margin:0; font-family:sans-serif; } + .viewer { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; } + .source { padding:8px; border-bottom:1px solid #ccc; } + #program { width:min(600px,80vw); vertical-align:middle; } + #status { margin-top:4px; } + #graph { min-height:0; overflow:hidden; position:relative; background:#fafbfc; } + #elk { width:100%; height:100%; } + #graph svg { display:block; } + .tools { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:8px; font-size:12px; } + .hint { color:#616c78; } + .ctrl { color:#b63838; } .mem { color:#2867b2; } .data { color:#536477; } + .edge { fill:none; stroke-width:1.5; } + .edge.CTRL { stroke-width:2; } + .edge.ASSOC { stroke-dasharray:4 4; } + .edge.PARSER { stroke-dasharray:5 4; } + .parser rect { fill:#f6f0ff; stroke:#7956a5; stroke-width:1.5; stroke-dasharray:5 4; } + .edge.selected { stroke-width:3.5; } + .edge.bundle { stroke-width:4; } + .edge.bundle.selected { stroke-width:6; } + .edge-hit { fill:none; stroke:transparent; stroke-width:12; vector-effect:non-scaling-stroke; pointer-events:stroke; cursor:pointer; } + .edge-jump { fill:transparent; pointer-events:all; cursor:pointer; } + .node { cursor:pointer; } + .box { stroke:#758191; stroke-width:1; } + .node.held .box { stroke-dasharray:5 3; } + .node.near .box { stroke:#c18221; stroke-width:2; } + .node.focus .box { stroke:#9c4900; stroke-width:3; } + .node.selected .box { stroke:#1569b9; stroke-width:3; } + .node.folded .box { stroke-width:4; } + .node.folding .box { fill:#f4ccd7; } + .fold-tag { font-size:9px; font-weight:700; fill:#963751; } + .peep-area { fill:#fff3d9; fill-opacity:.8; stroke:#c18221; stroke-width:2; pointer-events:none; } + .node.peep-edit .box { stroke:#9c4900; stroke-width:3; } + .node.error .box { stroke:#b42318; stroke-width:4; } + #event.error { color:#b42318; font-weight:600; white-space:pre-wrap; overflow-wrap:anywhere; } + .peep-ghosts { pointer-events:none; } + .region-box { stroke:#9da9b8; stroke-width:1.5; } + .fold-btn { cursor:pointer; } + .fold-btn rect { fill:white; stroke:#596674; } + .fold-btn text { font-size:14px; fill:#152330; } + .fold-btn:focus rect { stroke:#1569b9; stroke-width:2; } + .shortcut { cursor:pointer; } + .shortcut path { fill:none; stroke-width:1.5; } + .shortcut rect { fill:#fff8ec; stroke:#b63838; stroke-dasharray:3 2; } + .shortcut text { font-size:11px; fill:#783030; } + .shortcut.selected rect, .shortcut:focus rect { stroke-width:2.5; } + .label { font-size:12px; fill:#152330; font-weight:600; } + .node-id { font-size:10px; fill:#596674; font-weight:400; } + .type { font-size:11px; fill:#455768; } + .port { stroke:#536477; stroke-width:1; } + .row { stroke:#b6afcf; stroke-width:1; } + .bind { font-size:12px; fill:#152330; } + .slot { font-size:10px; fill:#364352; paint-order:stroke; stroke:#fafbfc; stroke-width:3; } + #detail { position:absolute; top:8px; right:8px; margin:0; padding:12px; max-width:320px; + max-height:45%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; + background:#fffffff2; border:1px solid #bac5d0; border-radius:4px; font-size:12px; } + .controls { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; padding:6px; } + .button { color:white; background:black; font-size:20px; min-width:30px; } + .button:disabled { background:grey; } + .count { font-size:20px; min-width:35px; text-align:center; } + #N { width:6ch; } + #scrub { width:clamp(120px,35vw,600px); } + </style><defs><marker id="arrow-CTRL" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#b63838"/></marker><marker id="arrow-DATA" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#536477"/></marker><marker id="arrow-MEM" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#2867b2"/></marker><marker id="arrow-ASSOC" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#9396a3"/></marker><marker id="arrow-PARSER" viewBox="0 -4 8 8" refX="8" refY="0" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,-4L8,0L0,4Z" fill="#7956a5"/></marker></defs><rect width="100%" height="100%" fill="rgb(250, 251, 252)"/><g><g class="regions" style="opacity: 1;"><g class="region" transform="translate(41,277)"><rect class="region-box" rx="8" width="803" height="944" fill="#f1f6fc"/></g><g class="region" transform="translate(276,800)"><rect class="region-box" rx="8" width="503" height="374" fill="#f2f7ef"/></g></g><rect class="peep-area" rx="36" style="opacity: 0;"/><g class="edges"><path class="edge MEM" id="e1i1" d="M275,118 L275,128 L854,128 L854,1236 L795,1236 L795,1274" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#1[1] → #6 · MEM</title></path><path class="edge MEM" id="e1i2" d="M459,495 L459,505 L789,505 L789,1246 L825,1246 L825,1274" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#1[2] → #230 · MEM</title></path><path class="edge CTRL" id="e3i0" d="M285,1431 C285,1455 445,1458 445,1482" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#3[0] → #37 · CTRL</title></path><path class="edge CTRL" id="e9i0" d="M155,118 L155,148 L530,148 L530,166" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#9[0] → #5 · CTRL</title></path><path class="edge MEM" id="e10i1" d="M275,118 L275,128 L307,128 L307,262 L427,262 L427,335" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#10[1] → #6 · MEM</title></path><path class="edge DATA" id="e10i2" d="M530,222 L530,232 L451,232 L451,335" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#10[2] → #9 · DATA</title></path><path class="edge DATA" id="e10i3" d="M237,222 L237,252 L475,252 L475,335" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#10[3] → #4 · DATA</title></path><path class="edge CTRL" id="e11i1" d="M155,118 L155,439" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#11[1] → #5 · CTRL</title></path><path class="edge CTRL" id="e11i2" d="M438,1139 L438,1149 L832,1149 L832,414 L185,414 L185,442" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#11[2] → #32 · CTRL</title></path><path class="edge DATA" id="e13i1" d="M395,118 L395,138 L166,138 L166,262 L287,262 L287,439" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#13[1] → #7 · DATA</title></path><path class="edge DATA" id="e13i2" d="M378,596 L378,606 L822,606 L822,422 L327,422 L327,442" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#13[2] → #35 · DATA</title></path><path class="edge DATA" id="e14i1" d="M237,222 L237,252 L73,252 L73,515 L226,515 L226,543" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[1] → #4 · DATA</title></path><path class="edge DATA" id="e14i2" d="M307,495 L307,515 L256,515 L256,543" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#14[2] → #13 · DATA</title></path><path class="edge CTRL" id="e16i0" d="M155,495 L155,647" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#16[0] → #11 · CTRL</title></path><path class="edge DATA" id="e16i1" d="M226,599 L226,609 L235,609 L235,647" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#16[1] → #14 · DATA</title></path><path class="edge DATA" id="e21i1" d="M395,118 L395,138 L655,138 L655,242 L696,242 L696,834" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#21[1] → #7 · DATA</title></path><path class="edge DATA" id="e21i2" d="M726,222 L726,834" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#21[2] → #22 · DATA</title></path><path class="edge DATA" id="e23i1" d="M307,495 L307,515 L448,515 L448,834" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#23[1] → #13 · DATA</title></path><path class="edge DATA" id="e23i2" d="M378,222 L378,242 L539,242 L539,757 L478,757 L478,834" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#23[2] → #24 · DATA</title></path><path class="edge CTRL" id="e25i0" d="M135,747 L135,757 L368,757 L368,938" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#25[0] → #8 · CTRL</title></path><path class="edge DATA" id="e25i1" d="M448,890 L448,938" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#25[1] → #23 · DATA</title></path><path class="edge MEM" id="e31i1" d="M459,495 L459,505 L614,505 L614,949" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#31[1] → #230 · MEM</title></path><path class="edge DATA" id="e31i2" d="M530,222 L530,232 L625,232 L625,900 L638,900 L638,949" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#31[2] → #9 · DATA</title></path><path class="edge DATA" id="e31i3" d="M696,890 L696,900 L662,900 L662,949" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#31[3] → #21 · DATA</title></path><path class="edge CTRL" id="e32i1" d="M348,1038 L348,1048 L438,1048 L438,1086" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[1] → #15 · CTRL</title></path><path class="edge CTRL" id="e32i2" d="M468,1038 L468,1086" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#32[2] → #17 · CTRL</title></path><path class="edge DATA" id="e35i1" d="M307,495 L307,515 L378,515 L378,543" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[1] → #13 · DATA</title></path><path class="edge DATA" id="e35i2" d="M84,222 L84,505 L408,505 L408,543" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#35[2] → #36 · DATA</title></path><path class="edge CTRL" id="e37i0" d="M255,747 L255,1378" stroke="#b63838" marker-start="url(#arrow-CTRL)" style="opacity: 1;"><title>#37[0] → #12 · CTRL</title></path><path class="edge MEM" id="e37i1" d="M795,1330 L795,1340 L285,1340 L285,1378" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#37[1] → #1 · MEM</title></path><path class="edge DATA" id="e37i2" d="M530,222 L530,232 L865,232 L865,1350 L315,1350 L315,1378" stroke="#536477" marker-start="url(#arrow-DATA)" style="opacity: 1;"><title>#37[2] → #9 · DATA</title></path><path class="edge MEM" id="e230i1" d="M439,391 L439,439" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#230[1] → #10 · MEM</title></path><path class="edge MEM" id="e230i2" d="M590,1139 L590,1149 L812,1149 L812,430 L479,430 L479,442" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#230[2] → #233 · MEM</title></path><path class="edge MEM" id="e233i1" d="M626,1005 L626,1048 L570,1048 L570,1086" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#233[1] → #31 · MEM</title></path><path class="edge MEM" id="e233i2" d="M459,495 L459,505 L789,505 L789,757 L766,757 L766,1058 L610,1058 L610,1086" stroke="#2867b2" marker-start="url(#arrow-MEM)" style="opacity: 1;"><title>#233[2] → #230 · MEM</title></path></g><g class="edge-hits"/><g class="parser" style="opacity: 1;"/><g class="nodes"><g class="node" id="n1" data-id="1" transform="translate(735,1280)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemMerge</tspan><tspan class="node-id"> #1</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#1 MemMerge +Type not computed + +[0] → — DATA +[1] → #6 MEM +[2] → #230 MEM</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n2" data-id="2" transform="translate(95,24)" style="opacity: 1;"><path class="box" d="M0,0H360V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="180" y="18"><tspan>Start</tspan><tspan class="node-id"> #2</tspan></text><text class="type" text-anchor="middle" y="35" x="180"/><title>#2 Start +Type not computed + +</title></g><g class="node" id="n3" data-id="3" transform="translate(409,1482)" style="opacity: 1;"><path class="box" d="M0,0H72V26H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="36" y="17"><tspan>Stop</tspan><tspan class="node-id"> #3</tspan></text><text class="type" text-anchor="middle" y="35" x="36"/><title>#3 Stop +Type not computed + +[0] → #37 CTRL</title><circle class="port" cx="36" cy="0" r="3" fill="#536477"/><text class="slot" x="36" y="-7" text-anchor="middle">0</text></g><g class="node" id="n4" data-id="4" transform="translate(177,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>#0</tspan><tspan class="node-id"> #4</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#4 #0 +Type not computed + +</title></g><g class="node" id="n5" data-id="5" transform="translate(95,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$ctrl</tspan><tspan class="node-id"> #5/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#5 $ctrl +Projection 0 of #2 +Type not computed + +[0] → #2 CTRL</title></g><g class="node" id="n6" data-id="6" transform="translate(215,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>$mem</tspan><tspan class="node-id"> #6/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#6 $mem +Projection 1 of #2 +Type not computed + +[0] → #2 MEM</title></g><g class="node" id="n7" data-id="7" transform="translate(335,68)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>arg</tspan><tspan class="node-id"> #7/2</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#7 arg +Projection 2 of #2 +Type not computed + +[0] → #2 DATA</title></g><g class="node" id="n8" data-id="8" transform="translate(75,697)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #8/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#8 True +Projection 0 of #16 +Type not computed + +[0] → #16 CTRL</title></g><g class="node" id="n9" data-id="9" transform="translate(470,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>new S</tspan><tspan class="node-id"> #9</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#9 new S +Type not computed + +[0] → #5 CTRL</title><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><text class="slot" x="60" y="-10" text-anchor="middle">0</text></g><g class="node" id="n10" data-id="10" transform="translate(379,341)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>.f =</tspan><tspan class="node-id"> #10</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#10 .f = +Type not computed + +[0] → — DATA +[1] → #6 MEM +[2] → #9 DATA +[3] → #4 DATA</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n11" data-id="11" transform="translate(95,445)" style="opacity: 1;"><path class="box" d="M20,0H100Q120,0 120,20V24Q120,44 100,44H20Q0,44 0,24V20Q0,0 20,0Z" fill="#ffe0ab"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Loop</tspan><tspan class="node-id"> #11</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#11 Loop +Type not computed + +[0] → — DATA +[1] → #5 CTRL +[2] → #32 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n12" data-id="12" transform="translate(195,697)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #12/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#12 False +Projection 1 of #16 +Type not computed + +[0] → #16 CTRL</title></g><g class="node" id="n13" data-id="13" transform="translate(247,445)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>φ_arg</tspan><tspan class="node-id"> #13</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#13 φ_arg +Type not computed + +[0] → #11 ASSOC +[1] → #7 DATA +[2] → #35 DATA</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #11</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n14" data-id="14" transform="translate(166,549)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan><</tspan><tspan class="node-id"> #14</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#14 < +Type not computed + +[0] → — DATA +[1] → #4 DATA +[2] → #13 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n15" data-id="15" transform="translate(288,988)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>True</tspan><tspan class="node-id"> #15/0</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#15 True +Projection 0 of #25 +Type not computed + +[0] → #25 CTRL</title></g><g class="node" id="n16" data-id="16" transform="translate(75,653)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #16</tspan></text><text class="type" text-anchor="middle" y="35" x="120"/><title>#16 If +Type not computed + +[0] → #11 CTRL +[1] → #14 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n17" data-id="17" transform="translate(408,988)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>False</tspan><tspan class="node-id"> #17/1</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#17 False +Projection 1 of #25 +Type not computed + +[0] → #25 CTRL</title></g><g class="node" id="n21" data-id="21" transform="translate(636,840)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>//</tspan><tspan class="node-id"> #21</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#21 // +Type not computed + +[0] → — DATA +[1] → #7 DATA +[2] → #22 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n22" data-id="22" transform="translate(666,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>#3</tspan><tspan class="node-id"> #22</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#22 #3 +Type not computed + +</title></g><g class="node" id="n23" data-id="23" transform="translate(388,840)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>==</tspan><tspan class="node-id"> #23</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#23 == +Type not computed + +[0] → — DATA +[1] → #13 DATA +[2] → #24 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n24" data-id="24" transform="translate(318,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>#5</tspan><tspan class="node-id"> #24</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#24 #5 +Type not computed + +</title></g><g class="node" id="n25" data-id="25" transform="translate(288,944)" style="opacity: 1;"><path class="box" d="M0,0H240V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="120" y="18"><tspan>If</tspan><tspan class="node-id"> #25</tspan></text><text class="type" text-anchor="middle" y="35" x="120"/><title>#25 If +Type not computed + +[0] → #8 CTRL +[1] → #23 DATA</title><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><circle class="port" cx="160" cy="-3" r="3" fill="#536477"/><text class="slot" x="80" y="-10" text-anchor="middle">0</text><text class="slot" x="160" y="-10" text-anchor="middle">1</text></g><g class="node" id="n31" data-id="31" transform="translate(566,955)" style="opacity: 1;"><path class="box" d="M10,0H110L120,10V34L110,44H10L0,34V10Z" fill="#dcecff"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>.f =</tspan><tspan class="node-id"> #31</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#31 .f = +Type not computed + +[0] → — DATA +[1] → #230 MEM +[2] → #9 DATA +[3] → #21 DATA</title><circle class="port" cx="24" cy="-3" r="3" fill="white"/><circle class="port" cx="48" cy="-3" r="3" fill="#536477"/><circle class="port" cx="72" cy="-3" r="3" fill="#536477"/><circle class="port" cx="96" cy="-3" r="3" fill="#536477"/><text class="slot" x="24" y="-10" text-anchor="middle">0</text><text class="slot" x="48" y="-10" text-anchor="middle">1</text><text class="slot" x="72" y="-10" text-anchor="middle">2</text><text class="slot" x="96" y="-10" text-anchor="middle">3</text></g><g class="node" id="n32" data-id="32" transform="translate(378,1092)" style="opacity: 1;"><path class="box" d="M12,0H108L120,44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Region</tspan><tspan class="node-id"> #32</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#32 Region +Type not computed + +[0] → — DATA +[1] → #15 CTRL +[2] → #17 CTRL</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n35" data-id="35" transform="translate(318,549)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>-</tspan><tspan class="node-id"> #35</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#35 - +Type not computed + +[0] → — DATA +[1] → #13 DATA +[2] → #36 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="white"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n36" data-id="36" transform="translate(24,172)" style="opacity: 1;"><path class="box" d="M14,0H106Q120,0 120,14V30Q120,44 106,44H14Q0,44 0,30V14Q0,0 14,0Z" fill="#edf3f7"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>#1</tspan><tspan class="node-id"> #36</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#36 #1 +Type not computed + +</title></g><g class="node" id="n37" data-id="37" transform="translate(225,1384)" style="opacity: 1;"><path class="box" d="M0,0H120V44H0Z" fill="#fff1c4"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>Return</tspan><tspan class="node-id"> #37</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#37 Return +Type not computed + +[0] → #12 CTRL +[1] → #1 MEM +[2] → #9 DATA</title><circle class="port" cx="30" cy="-3" r="3" fill="#536477"/><circle class="port" cx="60" cy="-3" r="3" fill="#536477"/><circle class="port" cx="90" cy="-3" r="3" fill="#536477"/><text class="slot" x="30" y="-10" text-anchor="middle">0</text><text class="slot" x="60" y="-10" text-anchor="middle">1</text><text class="slot" x="90" y="-10" text-anchor="middle">2</text></g><g class="node" id="n230" data-id="230" transform="translate(399,445)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_2</tspan><tspan class="node-id"> #230</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#230 MemPhi_2 +Type not computed + +[0] → #11 ASSOC +[1] → #10 MEM +[2] → #233 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #11</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g><g class="node" id="n233" data-id="233" transform="translate(530,1092)" style="opacity: 1;"><path class="box" d="M12,0H108L120,22L108,44H12L0,22Z" fill="#f5e4fa"/><text class="label" text-anchor="middle" x="60" y="18"><tspan>MemPhi_2</tspan><tspan class="node-id"> #233</tspan></text><text class="type" text-anchor="middle" y="35" x="60"/><title>#233 MemPhi_2 +Type not computed + +[0] → #32 ASSOC +[1] → #31 MEM +[2] → #230 MEM</title><circle class="port" cx="-3" cy="22" r="3" fill="#536477"/><circle class="port" cx="40" cy="-3" r="3" fill="#536477"/><circle class="port" cx="80" cy="-3" r="3" fill="#536477"/><path class="reg" fill="none" stroke="#b63838" d="M-3,22H-18m4,-3l-4,3l4,3"><title>[0] → #32</title></path><text class="slot" x="-10" y="15" text-anchor="middle">0</text><text class="slot" x="40" y="-10" text-anchor="middle">1</text><text class="slot" x="80" y="-10" text-anchor="middle">2</text></g></g><g class="region-heads" style="opacity: 1;"><g class="region-head" transform="translate(41,277)"><text class="label" x="26" y="17"><tspan>Loop</tspan><tspan class="node-id"> #11</tspan></text><title>Loop · 17 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #11"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g><g class="region-head" transform="translate(276,800)"><text class="label" x="26" y="17"><tspan>If</tspan><tspan class="node-id"> #25</tspan></text><title>If · 8 nodes</title><g class="fold-btn" role="button" tabindex="0" transform="translate(4,4)" aria-label="Fold region #25"><rect width="16" height="16" rx="2"/><text x="8" y="12" text-anchor="middle">−</text><title>Fold region</title></g></g></g><g class="shortcuts" style="opacity: 1;"/><g class="peep-ghosts" pointer-events="none"/></g></svg> |
