benchmark silo added
[c11concurrency-benchmarks.git] / silo / masstree / doc / examples.mp
1 input masstree;
2 verbatimtex %&latex
3 \documentclass[12pt]{article}
4 \usepackage{elemfig,amsmath}
5 \begin{document}
6 \newcommand{\xlab}[1]{\mlabel{\textsc{#1}}}
7 etex;
8
9 picture data[];
10 data[0] = btex \xlab{a} etex; data[1] = btex \xlab{b} etex; data[2] = btex \xlab{c} etex;
11 data[3] = btex \xlab{d} etex; data[4] = btex \xlab{e} etex; data[5] = btex \xlab{f} etex;
12 data[6] = btex \xlab{g} etex; data[7] = btex \xlab{h} etex; data[8] = btex \xlab{i} etex;
13 data[9] = btex \xlab{j} etex; data[10] = btex \xlab{k} etex; data[11] = btex \xlab{l} etex;
14 data[12] = btex \xlab{m} etex; data[13] = btex \xlab{n} etex; data[14] = btex \xlab{o} etex;
15
16 pair min_reasonable_cell; min_reasonable_cell := (0,0);
17 for _i_ = 0 upto 14:
18   min_reasonable_cell :=
19     (max(xpart min_reasonable_cell, xpart (urcorner data[_i_] - llcorner data[_i_])),
20       max(ypart min_reasonable_cell, ypart (urcorner data[_i_] - llcorner data[_i_])));
21 endfor;
22 color deletedelement; deletedelement = .5white;
23
24 picture emptyqueue; emptyqueue := btex \phantom{\elementlabel{Queue}} etex;
25 picture vemptyqueue; vemptyqueue := emptyqueue rotated 90 xscaled .4;
26 hardborderscale = 3;
27
28 beginfig(1);
29   % initial tree
30   boxjoin(b.w - a.e = (20,0));
31   leafit.a(data[0], data[1], data[2]);
32   leafit.d(data[3], data[4], data[5]);
33   leafit.g(data[6], data[7], data[8]);
34   leafit.j(data[9], data[10], data[11]);
35   leafit.m(data[12], data[13], data[14]);
36   boxjoin();
37   internalnodeit.ina(data[3], data[6], nullpicture);
38   internalnodeit.inj(data[12], nullpicture, nullpicture);
39   internalnodeit.root(data[9], nullpicture, nullpicture);
40   ina.s = .5[a.nw,g.ne] + (0,24);
41   inj.s = .5[j.nw,m.ne] + (0,24);
42   root.s = .5[ina.nw,inj.ne] + (0,24);
43   fixelement(a,d,g,j,m);
44   fixelement(root,ina,inj);
45   leafconnect(a,d,g,j,m);
46   drawelement(a,d,g,j,m,ina,inj,root);
47   internalnodeconnect(ina,a,d,g);
48   internalnodeconnect(inj,j,m);
49   internalnodeconnect(root,ina,inj);
50   label.lft(btex \small{(1)~~} etex, inj.w);
51 endfig;
52
53 end