-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathbanyan_topo.eps
249 lines (234 loc) · 10.4 KB
/
banyan_topo.eps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
%!PS-Adobe-3.0 EPSF-3.0
%%Title: router.eps
%%Creator: XCircuit v3.7 rev40
%%CreationDate: Wed May 25 16:05:06 2016
%%Pages: 1
%%BoundingBox: 68 68 564 353
%%DocumentNeededResources: font Helvetica Times-Roman
%%EndComments
%%BeginProlog
%
% PostScript prolog for output from xcircuit
% Version: 3.7
%
% Electrical circuit (and otherwise general) drawing program
%
% Written by Tim Edwards 8/5/93--11/1/10 (tim.edwards@multigig.com)
% The Johns Hopkins University (1993-2004)
% MultiGiG, Inc. (2004-present)
%
%%BeginResource: procset XCIRCproc 3.7 2
%
% supporting definitions --- these are the primary xcircuit types.
/XCIRCsave save def
/topmat matrix currentmatrix def
/fontslant { /slant exch def [1 0 slant 1 0 0]
exch findfont exch makefont dup length dict /ndict exch def
{ 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall
ndict definefont pop} def
/ul { dup type /stringtype eq showflag 1 eq and { gsave
currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_)
false charpath flattenpath pathbbox grestore exch pop 1 index
sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0
rlineto stroke moveto } if } def
/ol { dup type /stringtype eq showflag 1 eq and { gsave gsave
currentpoint topmat setmatrix 2 index stringwidth pop 3 index
true charpath flattenpath pathbbox grestore exch pop
exch pop topmat setmatrix (_) true charpath pathbbox grestore
exch pop 1 index sub setlinewidth exch pop currentpoint
exch 4 1 roll exch sub add moveto pop 0 rlineto stroke
moveto } if } def
/stW { gsave currentpoint newpath moveto true charpath flattenpath
pathbbox pop exch pop sub grestore } def
/Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs
0 currentpoint pop put} def
/Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def
/Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt
{currentpoint exch pop moveto exit} {pop} ifelse } for } def
/qS { (aa) stW (a a) stW sub 4 div 0 Kn } def
/hS { qS qS } def
/pspc 0 def
/cf0 { scalefont setfont } bind def
/Kn { dup kY add /kY exch def rmoveto } bind def
/ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
0.33 mul neg Kn} def
/Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
0.67 mul Kn } def
/ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def
/CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def
/cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq
{ 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def}
{fscale0 mul fscale mul cf0} ifelse } def
/ctmk { counttomark dup 2 add -1 roll pop } bind def
/label { gsave translate 0 0 moveto dup scale neg /rotval exch def
/just exch def just 384 and 0 gt {/mshow {pop} def} {/mshow {show}
def} ifelse just 16 and 0 gt {gsave rotval rotate 0 1 dtransform
gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform
gsave pagemat setmatrix idtransform exch grestore dup abs 1e-9 lt
{pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse grestore {-1 /rotval
rotval neg def /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse
exch -1e-9 lt {-1 /rotval rotval neg def /just just dup 12 and
4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def
/fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def
/kY 0 def gsave dup 1 add copy 0 exch 1 0 dtransform exch atan rotate
{exch dup type /stringtype eq {true charpath flattenpath} {dup type
/arraytype eq {exec} {12 string cvs true charpath flattenpath} ifelse}
ifelse} repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just
1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5
mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4
and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg}
ifelse} {pop neg fspc add} ifelse rotval rotate Kn currentpoint
translate /showflag 1 def /Bline 0 def /Tabs 0 array def /fscale
1.0 def /kY 0 def {dup type /stringtype eq {mshow} {dup type
/arraytype eq {exec} {12 string cvs mshow} ifelse} ifelse} repeat
grestore endclip} def
/pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 10 def label
/pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def
/pinglobal { pinlabel } def
/infolabel { pinlabel } def
/graphic { gsave 4 index cvx exec /DataSource get resetfile translate 0 0
moveto neg rotate dup scale cvx exec image grestore endclip} def
/scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def
/cRedef {/defColor currentcolor 3 array astore def} def
/begingate {dup type /dicttype ne {1 dict} if begin % default params
dup type /dicttype ne {1 dict} if begin % instanced params
/hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore
def gsave sce translate 0 0 moveto neg rotate dup type /nametype
eq not { dup abs currentlinewidth exch div setlinewidth } { pop }
ifelse dup abs scale clipped 1 and 1 eq {/clipped clipped 1 add def}
if} bind def
/endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef
scb end end endclip} bind def
/hlevel 0 def
/endclip {clipped 1 and 1 eq {grestore /clipped clipped 1 sub def} if} def
/tmpa [1 0 0 1 0 0] def
/gar {8 8 true tmpa {<c0 c0 00 00 0c 0c 00 00>} imagemask} bind
{8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind
{8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind
{8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind
{8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind
{8 8 true tmpa {<df cf 8f 9f fd fc f8 f9>} imagemask} bind
{8 8 true tmpa {<ff 3f 3f ff ff f3 f3 ff>} imagemask} bind 7 array astore def
/ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll
neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy
gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll
{ 3 index exch 5 exch put dup -8 3 index { 3 index
exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def
/setstyles {
currentlinewidth mul setlinewidth /style exch def style 2048 and 0 gt
clipped 1 and 0 eq and {clip newpath /clipped clipped 1 add def} {
style 1 and 0 gt not {closepath} if
style 1024 and 0 gt {2 setlinecap} if
style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if
style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if
gsave style 16 and 0 gt { style 224 and -5 bitshift style 256 and 0 gt {
7 exch sub 8 div dup 1 exch sub currentrgbcolor 3 array astore
{3 copy mul add 4 1 roll pop} forall pop pop setrgbcolor eofill}
{dup 7 lt {gar exch get ppaint} {pop eofill} ifelse} ifelse}
{style 256 and 0 gt {1 setgray eofill} if} ifelse grestore style 8 and 0 gt
style 512 eq or {newpath} {stroke} ifelse grestore endclip} ifelse} def
/addtoy {exch dup dup 2 mul 3 add 1 roll -1 1 { 4 1 roll dup 4 1 roll add
4 -1 roll 2 mul 1 add index 2 mul 2 add 2 roll} for pop} def
/addtoy1 {1 exch addtoy pop} def
/addtoy3 {3 exch addtoy pop} def
/addtoy4 {4 exch addtoy pop} def
/addtox {exch dup dup 2 mul 3 add 1 roll -1 1 { 4 1 roll dup 4 1 roll 3 -1 roll
add exch 4 -1 roll 2 mul 1 add index 2 mul 2 add 2 roll} for pop} def
/addtox1 {1 exch addtox pop} def
/addtox3 {3 exch addtox pop} def
/addtox4 {4 exch addtox pop} def
/polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def
/xcarc { gsave newpath arc setstyles } def
/elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll
3 index div 1 scale } def
/ele { 0 4 1 roll 0 4 1 roll } bind def
/ellipse { gsave elb newpath ele arc setmatrix setstyles } def
/pellip { elb ele arc setmatrix } def
/nellip { elb ele arcn setmatrix } def
/spline { gsave moveto curveto setstyles } def
/polyc { {lineto} repeat } bind def
/beginpath { gsave moveto } bind def
/endpath { setstyles } bind def
/bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef
/clipped 0 def} def
/psinsertion {/PSobj save def /showpage {} def /setpagedevice {pop} def bop
rotate translate dup scale} def
/end_insert {PSobj restore} def
/setpagemat {/pagemat matrix currentmatrix def} def
/inchscale {setpagemat 0.375 mul dup scale} def
/cmscale {setpagemat 0.35433071 mul dup scale} def
%%EndResource
%%EndProlog
% XCircuit output starts here.
%%BeginSetup
/generic::dot {
% trivial
begingate
248 1.000 0 0 6 0.000 360.000 xcarc
1.000 0.000 0.000 scb
(x) {/Times-Roman cf} 2 29 0 1.000 0 0 pinlabel
endgate
} def
/generic::arrowhead {
% nonetwork
begingate
8 -28 beginpath
3 -18 3 -15 0 0 curveto
-3 -15 -3 -18 -8 -28 curveto
-2 -26 2 -26 8 -28 curveto
249
1.000 endpath
endgate
} def
%%EndSetup
%%Page: router 1
%%PageOrientation: Portrait
/pgsave save def bop
1.0000 inchscale
2.6000 setlinewidth 547 771 translate
1 1.000 112 -32 112 -160 192 -128 192 -64 112 -32 5 polygon
1 1.000 112 -192 112 -320 192 -288 192 -224 112 -192 5 polygon
1 1.000 112 -384 112 -512 192 -480 192 -416 112 -384 5 polygon
1 1.000 112 160 112 32 192 64 192 128 112 160 5 polygon
1 1.000 112 -480 -176 -480 2 polygon
1 1.000 112 -288 -176 -288 2 polygon
1 1.000 112 128 -176 128 2 polygon
1 1.000 112 -64 -176 -64 2 polygon
1 1.000 112 -128 48 -128 -112 -480 3 polygon
1.000 0 -112 -480 generic::dot
1 1.000 112 64 48 64 -112 -288 3 polygon
1.000 0 -112 -288 generic::dot
1 1.000 112 -416 48 -416 -112 -64 3 polygon
1 1.000 112 -224 48 -224 -112 128 3 polygon
1.000 0 -112 128 generic::dot
1.000 0 -112 -64 generic::dot
0 1.000 336 144 336 -144 592 -144 592 144 4 polygon
0 1.000 336 -208 336 -496 592 -496 592 -208 4 polygon
1 1.000 592 96 720 96 2 polygon
1.000 90 736 96 generic::arrowhead
1 1.000 592 -96 720 -96 2 polygon
1.000 90 736 -96 generic::arrowhead
1 1.000 592 -256 720 -256 2 polygon
1.000 90 736 -256 generic::arrowhead
1 1.000 592 -448 720 -448 2 polygon
1.000 90 736 -448 generic::arrowhead
(Order N/2) {/Helvetica cf} 2 21 0 1.000 464 32 label
(Switch) {/Helvetica cf} 2 21 0 1.000 464 -32 label
(Order N/2) {/Helvetica cf} 2 21 0 1.000 464 -320 label
(Switch) {/Helvetica cf} 2 21 0 1.000 464 -384 label
1 1.000 -176 160 -192 160 -192 -512 -176 -512 4 polygon
(N Inputs) {/Helvetica cf} 2 23 0 1.000 -208 -176 label
1 1.000 736 128 752 128 752 -480 736 -480 4 polygon
(N Outputs) {/Helvetica cf} 2 20 0 1.000 768 -176 label
1 1.000 80 -512 80 -528 224 -528 224 -512 4 polygon
(N 2-way data muxes) {/Helvetica cf} 2 21 0 1.000 144 -560 label
1 1.000 192 96 336 96 2 polygon
1 1.000 192 -96 336 -96 2 polygon
1 1.000 192 -256 336 -256 2 polygon
1 1.000 192 -448 336 -448 2 polygon
pgsave restore showpage
%%Trailer
XCIRCsave restore
%%EOF