summaryrefslogtreecommitdiff
path: root/docs/chapter10/example1.svg
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-04-23 17:23:16 +0100
committerCliff Click <cliffc@acm.org>2025-06-13 15:42:08 -0700
commit8d4e5a6da55c0e036b344362962cd2e467d643d8 (patch)
tree34411961da47394ca617b354846a546350dc1a5a /docs/chapter10/example1.svg
parentd0185018706bfa014da6029dc10e08c4f2f6a56e (diff)
downloadSimple-8d4e5a6da55c0e036b344362962cd2e467d643d8.tar.gz
Simple-8d4e5a6da55c0e036b344362962cd2e467d643d8.zip
Chapter 10: Structs and Memory
Co-authored-by: Thalia Archibald <thalia@archibald.dev> Co-authored-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Co-authored-by: XmiliaH <45106915+XmiliaH@users.noreply.github.com> Co-authored-by: tannal <tannal2409@gmail.com> Co-authored-by: hadha <helsgithub15@gmail.com> Co-authored-by: XmiliaH <xmilia.hermit@gmail.com> Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: RobertObkircher <robert.obkircher@gmail.com> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com>
Diffstat (limited to 'docs/chapter10/example1.svg')
-rw-r--r--docs/chapter10/example1.svg294
1 files changed, 294 insertions, 0 deletions
diff --git a/docs/chapter10/example1.svg b/docs/chapter10/example1.svg
new file mode 100644
index 00000000..6f493e7e
--- /dev/null
+++ b/docs/chapter10/example1.svg
@@ -0,0 +1,294 @@
+<?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.43.0 (0)
+ -->
+<!-- Title: chapter10 Pages: 1 -->
+<svg width="394pt" height="564pt"
+ viewBox="0.00 0.00 394.00 564.00" 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 560)">
+<title>chapter10</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-560 390,-560 390,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_Nodes</title>
+<polygon fill="none" stroke="black" points="8,-8 8,-548 378,-548 378,-8 8,-8"/>
+</g>
+<!-- Start2 -->
+<g id="node1" class="node">
+<title>Start2</title>
+<polygon fill="yellow" stroke="transparent" points="25,-511 25,-536 156,-536 156,-511 25,-511"/>
+<polygon fill="none" stroke="black" points="25,-511 25,-536 156,-536 156,-511 25,-511"/>
+<text text-anchor="start" x="72" y="-519.8" font-family="Times,serif" font-size="14.00">Start</text>
+<polygon fill="none" stroke="black" points="25,-480 25,-511 156,-511 156,-480 25,-480"/>
+<polygon fill="yellow" stroke="transparent" points="30,-485 30,-506 70,-506 70,-485 30,-485"/>
+<polygon fill="none" stroke="black" points="30,-485 30,-506 70,-506 70,-485 30,-485"/>
+<text text-anchor="start" x="33" y="-491.8" font-family="Times,serif" font-size="14.00">$ctrl</text>
+<polygon fill="none" stroke="black" points="70,-485 70,-506 101,-506 101,-485 70,-485"/>
+<text text-anchor="start" x="73" y="-491.8" font-family="Times,serif" font-size="14.00">arg</text>
+<polygon fill="none" stroke="black" points="101,-485 101,-506 126,-506 126,-485 101,-485"/>
+<text text-anchor="start" x="104" y="-491.8" font-family="Times,serif" font-size="14.00">$2</text>
+<polygon fill="none" stroke="black" points="126,-485 126,-506 151,-506 151,-485 126,-485"/>
+<text text-anchor="start" x="129" y="-491.8" font-family="Times,serif" font-size="14.00">$3</text>
+</g>
+<!-- Stop3 -->
+<g id="node2" class="node">
+<title>Stop3</title>
+<polygon fill="yellow" stroke="black" points="201,-52 147,-52 147,-16 201,-16 201,-52"/>
+<text text-anchor="middle" x="174" y="-30.3" font-family="Times,serif" font-size="14.00">Stop</text>
+</g>
+<!-- Return27 -->
+<g id="node15" class="node">
+<title>Return27</title>
+<polygon fill="yellow" stroke="black" points="207,-124 141,-124 141,-88 207,-88 207,-124"/>
+<text text-anchor="middle" x="174" y="-102.3" font-family="Times,serif" font-size="14.00">Return</text>
+</g>
+<!-- Stop3&#45;&gt;Return27 -->
+<g id="edge1" class="edge">
+<title>Stop3&#45;&gt;Return27</title>
+<path fill="none" stroke="red" d="M174,-52.3C174,-60.02 174,-69.29 174,-77.89"/>
+<polygon fill="red" stroke="red" points="170.5,-77.9 174,-87.9 177.5,-77.9 170.5,-77.9"/>
+<text text-anchor="middle" x="171" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- new8 -->
+<g id="node3" class="node">
+<title>new8</title>
+<ellipse fill="none" stroke="black" cx="203" cy="-422" rx="75.29" ry="18"/>
+<text text-anchor="middle" x="203" y="-418.3" font-family="Times,serif" font-size="14.00">new Vector2D</text>
+</g>
+<!-- new8&#45;&gt;Start2 -->
+<g id="edge2" class="edge">
+<title>new8&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="green" d="M147.76,-434.26C110.79,-443.18 66.61,-456.99 53.71,-474.14"/>
+<polygon fill="green" stroke="green" points="50.24,-473.41 50,-484 56.79,-475.87 50.24,-473.41"/>
+<text text-anchor="middle" x="144.76" y="-436.86" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_9 -->
+<g id="node4" class="node">
+<title>Con_9</title>
+<ellipse fill="none" stroke="black" cx="63" cy="-422" rx="27" ry="18"/>
+<text text-anchor="middle" x="63" y="-418.3" font-family="Times,serif" font-size="14.00">#0</text>
+</g>
+<!-- Store11 -->
+<g id="node5" class="node">
+<title>Store11</title>
+<ellipse fill="none" stroke="black" cx="170" cy="-350" rx="29.8" ry="18"/>
+<text text-anchor="middle" x="170" y="-346.3" font-family="Times,serif" font-size="14.00">.y =</text>
+</g>
+<!-- Store11&#45;&gt;Start2 -->
+<g id="edge3" class="edge">
+<title>Store11&#45;&gt;Start2:p3</title>
+<path fill="none" stroke="blue" d="M151.42,-364.19C139.69,-373.74 125.54,-387.77 119,-404 113.02,-418.84 115.61,-424.36 119,-440 122.69,-457.06 133.59,-461.26 137.54,-473.76"/>
+<polygon fill="blue" stroke="blue" points="134.13,-474.59 139,-484 141.06,-473.61 134.13,-474.59"/>
+<text text-anchor="middle" x="148.42" y="-366.79" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store11&#45;&gt;new8 -->
+<g id="edge4" class="edge">
+<title>Store11&#45;&gt;new8</title>
+<path fill="none" stroke="black" d="M177.82,-367.59C181.67,-375.75 186.4,-385.78 190.71,-394.93"/>
+<polygon fill="black" stroke="black" points="187.58,-396.49 195.01,-404.04 193.91,-393.51 187.58,-396.49"/>
+<text text-anchor="middle" x="174.82" y="-370.19" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store11&#45;&gt;Con_9 -->
+<g id="edge5" class="edge">
+<title>Store11&#45;&gt;Con_9</title>
+<path fill="none" stroke="black" d="M150.37,-363.84C133.5,-374.88 108.99,-390.92 90.22,-403.2"/>
+<polygon fill="black" stroke="black" points="88.24,-400.31 81.78,-408.71 92.07,-406.17 88.24,-400.31"/>
+<text text-anchor="middle" x="153.37" y="-366.44" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Con_12 -->
+<g id="node6" class="node">
+<title>Con_12</title>
+<ellipse fill="none" stroke="black" cx="323" cy="-422" rx="27" ry="18"/>
+<text text-anchor="middle" x="323" y="-418.3" font-family="Times,serif" font-size="14.00">#1</text>
+</g>
+<!-- Store13 -->
+<g id="node7" class="node">
+<title>Store13</title>
+<ellipse fill="none" stroke="black" cx="340" cy="-350" rx="29.8" ry="18"/>
+<text text-anchor="middle" x="340" y="-346.3" font-family="Times,serif" font-size="14.00">.x =</text>
+</g>
+<!-- Store13&#45;&gt;Start2 -->
+<g id="edge6" class="edge">
+<title>Store13&#45;&gt;Start2:p2</title>
+<path fill="none" stroke="blue" d="M350.63,-367.07C362.03,-386.53 376.33,-419.28 359,-440 290.38,-522.04 125.44,-383.17 114.57,-473.83"/>
+<polygon fill="blue" stroke="blue" points="111.06,-473.82 114,-484 118.05,-474.21 111.06,-473.82"/>
+<text text-anchor="middle" x="347.63" y="-369.67" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store13&#45;&gt;new8 -->
+<g id="edge7" class="edge">
+<title>Store13&#45;&gt;new8</title>
+<path fill="none" stroke="black" d="M317.99,-362.25C297.67,-372.63 267.01,-388.3 242.46,-400.84"/>
+<polygon fill="black" stroke="black" points="240.69,-397.81 233.38,-405.48 243.88,-404.04 240.69,-397.81"/>
+<text text-anchor="middle" x="314.99" y="-364.85" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store13&#45;&gt;Con_12 -->
+<g id="edge8" class="edge">
+<title>Store13&#45;&gt;Con_12</title>
+<path fill="none" stroke="black" d="M335.88,-367.95C333.99,-375.74 331.7,-385.18 329.58,-393.92"/>
+<polygon fill="black" stroke="black" points="326.15,-393.18 327.2,-403.72 332.96,-394.83 326.15,-393.18"/>
+<text text-anchor="middle" x="332.88" y="-370.55" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- If14 -->
+<g id="node8" class="node">
+<title>If14</title>
+<polygon fill="yellow" stroke="transparent" points="24,-267 24,-292 118,-292 118,-267 24,-267"/>
+<polygon fill="none" stroke="black" points="24,-267 24,-292 118,-292 118,-267 24,-267"/>
+<text text-anchor="start" x="65.5" y="-275.8" font-family="Times,serif" font-size="14.00">If</text>
+<polygon fill="none" stroke="black" points="24,-236 24,-267 118,-267 118,-236 24,-236"/>
+<polygon fill="yellow" stroke="transparent" points="29,-241 29,-262 69,-262 69,-241 29,-241"/>
+<polygon fill="none" stroke="black" points="29,-241 29,-262 69,-262 69,-241 29,-241"/>
+<text text-anchor="start" x="32" y="-247.8" font-family="Times,serif" font-size="14.00">True</text>
+<polygon fill="yellow" stroke="transparent" points="69,-241 69,-262 113,-262 113,-241 69,-241"/>
+<polygon fill="none" stroke="black" points="69,-241 69,-262 113,-262 113,-241 69,-241"/>
+<text text-anchor="start" x="72" y="-247.8" font-family="Times,serif" font-size="14.00">False</text>
+</g>
+<!-- If14&#45;&gt;Start2 -->
+<g id="edge9" class="edge">
+<title>If14&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M58.13,-296.08C47.38,-323.83 32.89,-365.85 27,-404 24.56,-419.81 23.18,-424.46 27,-440 31.32,-457.58 44.03,-461.08 48.46,-473.95"/>
+<polygon fill="red" stroke="red" points="45.02,-474.65 50,-484 51.94,-473.58 45.02,-474.65"/>
+<text text-anchor="middle" x="55.13" y="-298.68" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Con_18 -->
+<g id="node9" class="node">
+<title>Con_18</title>
+<ellipse fill="none" stroke="black" cx="95" cy="-350" rx="27" ry="18"/>
+<text text-anchor="middle" x="95" y="-346.3" font-family="Times,serif" font-size="14.00">#2</text>
+</g>
+<!-- Store19 -->
+<g id="node10" class="node">
+<title>Store19</title>
+<ellipse fill="none" stroke="black" cx="174" cy="-264" rx="29.8" ry="18"/>
+<text text-anchor="middle" x="174" y="-260.3" font-family="Times,serif" font-size="14.00">.y =</text>
+</g>
+<!-- Store19&#45;&gt;new8 -->
+<g id="edge12" class="edge">
+<title>Store19&#45;&gt;new8</title>
+<path fill="none" stroke="black" d="M188.91,-279.62C203.35,-295.52 222.56,-322.27 219,-349"/>
+<path fill="none" stroke="black" d="M219,-351C217.08,-365.43 213.58,-381.26 210.34,-394.21"/>
+<polygon fill="black" stroke="black" points="206.95,-393.34 207.84,-403.9 213.73,-395.09 206.95,-393.34"/>
+<text text-anchor="middle" x="185.91" y="-282.22" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store19&#45;&gt;Store11 -->
+<g id="edge11" class="edge">
+<title>Store19&#45;&gt;Store11</title>
+<path fill="none" stroke="blue" d="M173.19,-282C172.65,-293.31 171.93,-308.42 171.31,-321.43"/>
+<polygon fill="blue" stroke="blue" points="167.8,-321.58 170.82,-331.74 174.79,-321.92 167.8,-321.58"/>
+<text text-anchor="middle" x="170.19" y="-284.6" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store19&#45;&gt;Con_18 -->
+<g id="edge13" class="edge">
+<title>Store19&#45;&gt;Con_18</title>
+<path fill="none" stroke="black" d="M159.88,-280.02C147.56,-293.12 129.52,-312.29 115.59,-327.1"/>
+<polygon fill="black" stroke="black" points="113.04,-324.71 108.74,-334.39 118.14,-329.51 113.04,-324.71"/>
+<text text-anchor="middle" x="156.88" y="-282.62" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Con_22 -->
+<g id="node11" class="node">
+<title>Con_22</title>
+<ellipse fill="none" stroke="black" cx="265" cy="-350" rx="27" ry="18"/>
+<text text-anchor="middle" x="265" y="-346.3" font-family="Times,serif" font-size="14.00">#3</text>
+</g>
+<!-- Store23 -->
+<g id="node12" class="node">
+<title>Store23</title>
+<ellipse fill="none" stroke="black" cx="272" cy="-264" rx="29.8" ry="18"/>
+<text text-anchor="middle" x="272" y="-260.3" font-family="Times,serif" font-size="14.00">.y =</text>
+</g>
+<!-- Store23&#45;&gt;new8 -->
+<g id="edge15" class="edge">
+<title>Store23&#45;&gt;new8</title>
+<path fill="none" stroke="black" d="M257.04,-279.75C242.69,-295.35 222.67,-321.48 219,-349"/>
+<text text-anchor="middle" x="254.04" y="-282.35" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Store23&#45;&gt;Store11 -->
+<g id="edge14" class="edge">
+<title>Store23&#45;&gt;Store11</title>
+<path fill="none" stroke="blue" d="M254.7,-279.25C238.26,-292.79 213.37,-313.28 194.82,-328.56"/>
+<polygon fill="blue" stroke="blue" points="192.54,-325.9 187.05,-334.96 196.99,-331.31 192.54,-325.9"/>
+<text text-anchor="middle" x="251.7" y="-272.85" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Store23&#45;&gt;Con_22 -->
+<g id="edge16" class="edge">
+<title>Store23&#45;&gt;Con_22</title>
+<path fill="none" stroke="black" d="M270.58,-282C269.64,-293.31 268.38,-308.42 267.3,-321.43"/>
+<polygon fill="black" stroke="black" points="263.78,-321.48 266.44,-331.74 270.76,-322.06 263.78,-321.48"/>
+<text text-anchor="middle" x="267.58" y="-284.6" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+<!-- Region24 -->
+<g id="node13" class="node">
+<title>Region24</title>
+<polygon fill="yellow" stroke="black" points="123,-196 57,-196 57,-160 123,-160 123,-196"/>
+<text text-anchor="middle" x="90" y="-174.3" font-family="Times,serif" font-size="14.00">Region</text>
+</g>
+<!-- Region24&#45;&gt;If14 -->
+<g id="edge17" class="edge">
+<title>Region24&#45;&gt;If14:p0</title>
+<path fill="none" stroke="red" d="M70.46,-196.22C62.05,-205.18 53.41,-216.97 50.26,-229.91"/>
+<polygon fill="red" stroke="red" points="46.76,-229.64 49,-240 53.71,-230.51 46.76,-229.64"/>
+<text text-anchor="middle" x="67.46" y="-198.82" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Region24&#45;&gt;If14 -->
+<g id="edge18" class="edge">
+<title>Region24&#45;&gt;If14:p1</title>
+<path fill="none" stroke="red" d="M90.43,-196.09C90.64,-205.55 90.87,-217.77 90.96,-229.69"/>
+<polygon fill="red" stroke="red" points="87.46,-230.01 91,-240 94.46,-229.99 87.46,-230.01"/>
+<text text-anchor="middle" x="87.43" y="-198.69" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_326 -->
+<g id="node14" class="node">
+<title>Phi_326</title>
+<ellipse fill="lightyellow" stroke="black" cx="174" cy="-178" rx="33.29" ry="18"/>
+<text text-anchor="middle" x="174" y="-174.3" font-family="Times,serif" font-size="14.00">φ_$3</text>
+</g>
+<!-- Phi_326&#45;&gt;Store19 -->
+<g id="edge20" class="edge">
+<title>Phi_326&#45;&gt;Store19</title>
+<path fill="none" stroke="blue" d="M174,-196.4C174,-207.74 174,-222.77 174,-235.68"/>
+<polygon fill="blue" stroke="blue" points="170.5,-235.9 174,-245.9 177.5,-235.9 170.5,-235.9"/>
+<text text-anchor="middle" x="171" y="-199" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Phi_326&#45;&gt;Store23 -->
+<g id="edge21" class="edge">
+<title>Phi_326&#45;&gt;Store23</title>
+<path fill="none" stroke="blue" d="M191.07,-193.63C206.76,-207.08 230.2,-227.17 247.81,-242.27"/>
+<polygon fill="blue" stroke="blue" points="245.58,-244.97 255.45,-248.82 250.14,-239.65 245.58,-244.97"/>
+<text text-anchor="middle" x="188.07" y="-196.23" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Phi_326&#45;&gt;Region24 -->
+<g id="edge19" class="edge">
+<title>Phi_326&#45;&gt;Region24</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M140.62,-178C138.17,-178 135.71,-178 133.25,-178"/>
+<polygon fill="black" stroke="black" points="133.14,-174.5 123.14,-178 133.14,-181.5 133.14,-174.5"/>
+<text text-anchor="middle" x="137.62" y="-171.6" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return27&#45;&gt;new8 -->
+<g id="edge23" class="edge">
+<title>Return27&#45;&gt;new8</title>
+<path fill="none" stroke="black" d="M207.48,-120.36C230.67,-131.64 259.67,-150.25 273,-177"/>
+<path fill="none" stroke="black" d="M273,-179C286.16,-205.41 244.02,-204.62 233,-232 213.44,-280.58 225.92,-297.09 219,-349"/>
+<text text-anchor="middle" x="210.48" y="-113.96" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
+</g>
+<!-- Return27&#45;&gt;Store13 -->
+<g id="edge24" class="edge">
+<title>Return27&#45;&gt;Store13</title>
+<path fill="none" stroke="blue" d="M273,-179C286,-204.9 298.85,-205.68 311,-232 324.45,-261.13 332.19,-297.33 336.24,-321.69"/>
+<polygon fill="blue" stroke="blue" points="332.79,-322.32 337.8,-331.66 339.71,-321.24 332.79,-322.32"/>
+<text text-anchor="middle" x="270" y="-172.6" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
+</g>
+<!-- Return27&#45;&gt;Region24 -->
+<g id="edge22" class="edge">
+<title>Return27&#45;&gt;Region24</title>
+<path fill="none" stroke="red" d="M153.24,-124.3C142.76,-133.03 129.89,-143.76 118.5,-153.25"/>
+<polygon fill="red" stroke="red" points="115.97,-150.81 110.53,-159.9 120.45,-156.18 115.97,-150.81"/>
+<text text-anchor="middle" x="150.24" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
+</g>
+<!-- Return27&#45;&gt;Phi_326 -->
+<g id="edge25" class="edge">
+<title>Return27&#45;&gt;Phi_326</title>
+<path fill="none" stroke="blue" d="M174,-124.3C174,-132.02 174,-141.29 174,-149.89"/>
+<polygon fill="blue" stroke="blue" points="170.5,-149.9 174,-159.9 177.5,-149.9 170.5,-149.9"/>
+<text text-anchor="middle" x="171" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">3</text>
+</g>
+</g>
+</svg>