1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2<!-- Created with Inkscape (http://www.inkscape.org/) --> 3<svg 4 xmlns:dc="http://purl.org/dc/elements/1.1/" 5 xmlns:cc="http://web.resource.org/cc/" 6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 7 xmlns:svg="http://www.w3.org/2000/svg" 8 xmlns="http://www.w3.org/2000/svg" 9 xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" 10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 11 width="11in" 12 height="8.5in" 13 id="svg2" 14 sodipodi:version="0.32" 15 inkscape:version="0.43" 16 version="1.0" 17 sodipodi:docbase="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc" 18 sodipodi:docname="container_cd.svg" 19 inkscape:export-filename="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc/container_cd.png" 20 inkscape:export-xdpi="90" 21 inkscape:export-ydpi="90"> 22 <defs 23 id="defs4"> 24 <marker 25 inkscape:stockid="Arrow1Mstart" 26 orient="auto" 27 refY="0.0" 28 refX="0.0" 29 id="Arrow1Mstart" 30 style="overflow:visible"> 31 <path 32 id="path3311" 33 d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 34 style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" 35 transform="scale(0.4)" /> 36 </marker> 37 <marker 38 inkscape:stockid="Arrow2Sstart" 39 orient="auto" 40 refY="0" 41 refX="0" 42 id="Arrow2Sstart" 43 style="overflow:visible"> 44 <path 45 id="path3319" 46 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 47 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 48 transform="matrix(0.3,0,0,0.3,-1.5,0)" /> 49 </marker> 50 <marker 51 inkscape:stockid="Arrow1Sstart" 52 orient="auto" 53 refY="0" 54 refX="0" 55 id="Arrow1Sstart" 56 style="overflow:visible"> 57 <path 58 id="path3337" 59 d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " 60 style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 61 transform="scale(0.2,0.2)" /> 62 </marker> 63 <marker 64 inkscape:stockid="Arrow2Send" 65 orient="auto" 66 refY="0" 67 refX="0" 68 id="Arrow2Send" 69 style="overflow:visible"> 70 <path 71 id="path3316" 72 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 73 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 74 transform="matrix(-0.3,0,0,-0.3,1.5,0)" /> 75 </marker> 76 <marker 77 inkscape:stockid="Arrow2Mend" 78 orient="auto" 79 refY="0" 80 refX="0" 81 id="Arrow2Mend" 82 style="overflow:visible"> 83 <path 84 id="path3322" 85 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 86 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 87 transform="matrix(-0.6,0,0,-0.6,3,0)" /> 88 </marker> 89 <marker 90 inkscape:stockid="Arrow1Lend" 91 orient="auto" 92 refY="0" 93 refX="0" 94 id="Arrow1Lend" 95 style="overflow:visible"> 96 <path 97 id="path3346" 98 d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " 99 style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" 100 transform="scale(-0.8,-0.8)" /> 101 </marker> 102 <marker 103 inkscape:stockid="Arrow2Lstart" 104 orient="auto" 105 refY="0" 106 refX="0" 107 id="Arrow2Lstart" 108 style="overflow:visible"> 109 <path 110 id="path3331" 111 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 112 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 113 transform="matrix(1.1,0,0,1.1,-5.5,0)" /> 114 </marker> 115 <marker 116 inkscape:stockid="Arrow2Lend" 117 orient="auto" 118 refY="0" 119 refX="0" 120 id="Arrow2Lend" 121 style="overflow:visible"> 122 <path 123 id="path3328" 124 style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" 125 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 126 transform="matrix(-1.1,0,0,-1.1,5.5,0)" /> 127 </marker> 128 </defs> 129 <sodipodi:namedview 130 id="base" 131 pagecolor="#ffffff" 132 bordercolor="#666666" 133 borderopacity="1.0" 134 inkscape:pageopacity="0.0" 135 inkscape:pageshadow="2" 136 inkscape:zoom="2" 137 inkscape:cx="396.81316" 138 inkscape:cy="280" 139 inkscape:document-units="in" 140 inkscape:current-layer="layer1" 141 showguides="true" 142 inkscape:guide-bbox="true" 143 inkscape:window-width="1278" 144 inkscape:window-height="973" 145 inkscape:window-x="0" 146 inkscape:window-y="0" 147 gridtolerance="0.125in" 148 guidetolerance="0.125in"> 149 <sodipodi:guide 150 orientation="horizontal" 151 position="629" 152 id="guide1307" /> 153 <sodipodi:guide 154 orientation="horizontal" 155 position="449" 156 id="guide1309" /> 157 <sodipodi:guide 158 orientation="horizontal" 159 position="269" 160 id="guide1311" /> 161 <sodipodi:guide 162 orientation="vertical" 163 position="496" 164 id="guide1313" /> 165 <sodipodi:guide 166 orientation="vertical" 167 position="361" 168 id="guide1315" /> 169 <sodipodi:guide 170 orientation="vertical" 171 position="226" 172 id="guide1317" /> 173 <sodipodi:guide 174 orientation="vertical" 175 position="631" 176 id="guide1319" /> 177 <sodipodi:guide 178 orientation="vertical" 179 position="766" 180 id="guide1321" /> 181 <sodipodi:guide 182 orientation="vertical" 183 position="91" 184 id="guide1345" /> 185 <sodipodi:guide 186 orientation="vertical" 187 position="901" 188 id="guide1347" /> 189 <sodipodi:guide 190 orientation="horizontal" 191 position="539" 192 id="guide3390" /> 193 <sodipodi:guide 194 orientation="horizontal" 195 position="359" 196 id="guide3392" /> 197 <sodipodi:guide 198 orientation="vertical" 199 position="280.5" 200 id="guide3324" /> 201 <sodipodi:guide 202 orientation="vertical" 203 position="172" 204 id="guide3326" /> 205 <sodipodi:guide 206 orientation="vertical" 207 position="388" 208 id="guide3328" /> 209 <sodipodi:guide 210 orientation="vertical" 211 position="711.5" 212 id="guide3340" /> 213 </sodipodi:namedview> 214 <metadata 215 id="metadata7"> 216 <rdf:RDF> 217 <cc:Work 218 rdf:about=""> 219 <dc:format>image/svg+xml</dc:format> 220 <dc:type 221 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 222 <dc:creator> 223 <cc:Agent> 224 <dc:title>Benjamin Kosnik</dc:title> 225 </cc:Agent> 226 </dc:creator> 227 </cc:Work> 228 </rdf:RDF> 229 </metadata> 230 <g 231 inkscape:label="Layer 1" 232 inkscape:groupmode="layer" 233 id="layer1"> 234 <rect 235 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 236 id="rect1425" 237 width="141.64481" 238 height="23.200001" 239 x="209.57762" 240 y="382.56177" /> 241 <rect 242 y="382.56177" 243 x="425.57761" 244 height="23.200001" 245 width="141.64481" 246 id="rect3376" 247 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 248 <rect 249 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 250 id="rect3378" 251 width="141.64481" 252 height="23.200001" 253 x="640.77765" 254 y="382.56177" /> 255 <text 256 sodipodi:linespacing="100%" 257 id="use1329" 258 y="397.09772" 259 x="497.20001" 260 style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 261 xml:space="preserve"><tspan 262 sodipodi:role="line" 263 id="tspan1703" 264 x="497.20001" 265 y="397.09772">list_update</tspan><tspan 266 sodipodi:role="line" 267 id="tspan1705" 268 x="497.20001" 269 y="406.69772" /></text> 270 <text 271 xml:space="preserve" 272 style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" 273 x="712.40002" 274 y="397.09772" 275 id="use1337" 276 sodipodi:linespacing="100%"><tspan 277 sodipodi:role="line" 278 id="tspan1707" 279 x="712.40002" 280 y="397.09772">basic_hash_table</tspan></text> 281 <text 282 xml:space="preserve" 283 style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 284 x="282" 285 y="397.09772" 286 id="text1339" 287 sodipodi:linespacing="100%"><tspan 288 sodipodi:role="line" 289 id="tspan1701" 290 x="282" 291 y="397.09772">basic_tree</tspan></text> 292 <rect 293 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 294 id="rect3418" 295 width="141.64481" 296 height="23.200001" 297 x="101.57762" 298 y="472.5618" /> 299 <rect 300 y="472.5618" 301 x="317.57761" 302 height="23.200001" 303 width="141.64481" 304 id="rect3420" 305 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 306 <rect 307 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 308 id="rect3422" 309 width="141.64481" 310 height="23.200001" 311 x="533.57764" 312 y="472.5618" /> 313 <rect 314 y="472.5618" 315 x="748.77765" 316 height="23.200001" 317 width="141.64481" 318 id="rect3424" 319 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 320 <text 321 xml:space="preserve" 322 style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 323 x="171.20001" 324 y="486.29773" 325 id="text3394" 326 sodipodi:linespacing="100%"><tspan 327 sodipodi:role="line" 328 id="tspan1715" 329 x="171.20001" 330 y="486.29773">tree</tspan><tspan 331 sodipodi:role="line" 332 id="tspan1717" 333 x="171.20001" 334 y="495.89773" /></text> 335 <text 336 sodipodi:linespacing="100%" 337 id="text3400" 338 y="486.29773" 339 x="386.39999" 340 style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 341 xml:space="preserve"><tspan 342 sodipodi:role="line" 343 id="tspan1709" 344 x="386.39999" 345 y="486.29773">trie</tspan><tspan 346 sodipodi:role="line" 347 id="tspan1711" 348 x="386.39999" 349 y="495.89773" /></text> 350 <text 351 sodipodi:linespacing="100%" 352 id="text3406" 353 y="486.29773" 354 x="601.20001" 355 style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" 356 xml:space="preserve"><tspan 357 sodipodi:role="line" 358 id="tspan1713" 359 x="601.20001" 360 y="486.29773">cc_hash_table</tspan></text> 361 <text 362 xml:space="preserve" 363 style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" 364 x="818" 365 y="486.29773" 366 id="text3412" 367 sodipodi:linespacing="100%"><tspan 368 sodipodi:role="line" 369 id="tspan1719" 370 x="818" 371 y="486.29773">gp_hash_table</tspan></text> 372 <rect 373 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 374 id="rect3380" 375 width="141.64481" 376 height="23.200001" 377 x="425.57764" 378 y="292.56177" /> 379 <text 380 xml:space="preserve" 381 style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans" 382 x="497.20001" 383 y="307.09772" 384 id="text1323" 385 sodipodi:linespacing="100%" 386 inkscape:export-xdpi="90" 387 inkscape:export-ydpi="90" 388 inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/container_diagram.png"><tspan 389 sodipodi:role="line" 390 id="tspan1369" 391 x="497.20001" 392 y="307.09772">container_base</tspan></text> 393 <path 394 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 395 d="M 170.97058,472.5 L 170.97058,451 L 387.51871,450 L 387.51871,472.5" 396 id="path2244" /> 397 <path 398 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 399 d="M 280.5,450.53297 L 280.5,410.62445" 400 id="path3332" /> 401 <path 402 id="path3353" 403 d="M 601.47058,472.5 L 601.47058,451 L 818.01871,450 L 818.01871,472.5" 404 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 405 <path 406 id="path3355" 407 d="M 711,450.53297 L 711,410.62445" 408 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 409 <path 410 id="path3344" 411 d="M 281.18218,383.28102 L 281.18218,361.78102 L 711.79281,360.78102 L 711.79281,383.28102" 412 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.3682909px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> 413 <path 414 id="path3347" 415 d="M 497.75146,383.49616 L 497.75146,322.77107" 416 style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 417 </g> 418</svg> 419