1 %!PS-Adobe-2.0 EPSF-2.0
3 %%Creator: fig2dev Version 3.1 Patchlevel 1
4 %%CreationDate: Wed Oct 30 19:15:59 1996
5 %%For: hess@rugmd17 (Berk Hess, 17.14)
6 %%Orientation: Portrait
7 %%BoundingBox: -12 0 776 404
10 %%IncludeFeature: *PageSize Letter
13 /$F2psDict 200 dict def
15 $F2psDict /mtrx matrix put
17 /col0 {0.000 0.000 0.000 srgb} bind def
18 /col1 {0.000 0.000 1.000 srgb} bind def
19 /col2 {0.000 1.000 0.000 srgb} bind def
20 /col3 {0.000 1.000 1.000 srgb} bind def
21 /col4 {1.000 0.000 0.000 srgb} bind def
22 /col5 {1.000 0.000 1.000 srgb} bind def
23 /col6 {1.000 1.000 0.000 srgb} bind def
24 /col7 {1.000 1.000 1.000 srgb} bind def
25 /col8 {0.000 0.000 0.560 srgb} bind def
26 /col9 {0.000 0.000 0.690 srgb} bind def
27 /col10 {0.000 0.000 0.820 srgb} bind def
28 /col11 {0.530 0.810 1.000 srgb} bind def
29 /col12 {0.000 0.560 0.000 srgb} bind def
30 /col13 {0.000 0.690 0.000 srgb} bind def
31 /col14 {0.000 0.820 0.000 srgb} bind def
32 /col15 {0.000 0.560 0.560 srgb} bind def
33 /col16 {0.000 0.690 0.690 srgb} bind def
34 /col17 {0.000 0.820 0.820 srgb} bind def
35 /col18 {0.560 0.000 0.000 srgb} bind def
36 /col19 {0.690 0.000 0.000 srgb} bind def
37 /col20 {0.820 0.000 0.000 srgb} bind def
38 /col21 {0.560 0.000 0.560 srgb} bind def
39 /col22 {0.690 0.000 0.690 srgb} bind def
40 /col23 {0.820 0.000 0.820 srgb} bind def
41 /col24 {0.500 0.190 0.000 srgb} bind def
42 /col25 {0.630 0.250 0.000 srgb} bind def
43 /col26 {0.750 0.380 0.000 srgb} bind def
44 /col27 {1.000 0.500 0.500 srgb} bind def
45 /col28 {1.000 0.630 0.630 srgb} bind def
46 /col29 {1.000 0.750 0.750 srgb} bind def
47 /col30 {1.000 0.880 0.880 srgb} bind def
48 /col31 {1.000 0.840 0.000 srgb} bind def
54 .9 .9 scale % to make patterns same scale as in xfig
56 % This junk string is used by the show operators
58 /PATawidthshow { % cx cy cchar rx ry string
59 % Loop over each character in the string
60 { % cx cy cchar rx ry char
62 dup % cx cy cchar rx ry char char
63 PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
64 false charpath % cx cy cchar rx ry char
66 % Move past the character (charpath modified the
68 currentpoint % cx cy cchar rx ry char x y
70 moveto % cx cy cchar rx ry char
71 % Reposition by cx,cy if the character in the string is cchar
72 3 index eq { % cx cy cchar rx ry
73 4 index 4 index rmoveto
75 % Reposition all characters by rx ry
76 2 copy rmoveto % cx cy cchar rx ry
78 pop pop pop pop pop % -
85 /lw currentlinewidth def
86 /lc currentlinecap def
87 /lj currentlinejoin def
88 /ml currentmiterlimit def
89 /ds [ currentdash ] def
90 /cc [ currentrgbcolor ] def
91 /cm matrix currentmatrix def
94 % PATdraw - calculates the boundaries of the object and
95 % fills it with the current pattern
98 PATpcalc % proc nw nh px py
99 5 -1 roll exec % nw nh px py
104 % PATfill - performs the tiling for the shape
105 /PATfill { % nw nh px py PATfill -
106 PATDict /CurrentPattern get dup begin
108 % Set the coordinate system to Pattern Space
110 % Set the color for uncolored pattezns
111 PaintType 2 eq { PATDict /PColor get PATsc } if
112 % Create the string for showing
113 3 index string % nw nh px py str
114 % Loop for each of the pattern sources
115 0 1 Multi 1 sub { % nw nh px py str source
116 % Move to the starting location
117 3 index 3 index % nw nh px py str source px py
118 moveto % nw nh px py str source
119 % For multiple sources, set the appropriate color
120 Multi 1 ne { dup PC exch get PATsc } if
121 % Set the appropriate string for the source
122 0 1 7 index 1 sub { 2 index exch 2 index put } for pop
123 % Loop over the number of vertical cells
124 3 index % nw nh px py str nh
126 currentpoint % nw nh px py str cx cy
127 2 index show % nw nh px py str cx cy
128 YStep add moveto % nw nh px py str
129 } repeat % nw nh px py str
135 % PATkshow - kshow with the current pattezn
136 /PATkshow { % proc string
137 exch bind % string proc
138 1 index 0 get % string proc char
139 % Loop over all but the last character in the string
140 0 1 4 index length 2 sub {
141 % string proc char idx
142 % Find the n+1th character in the string
143 3 index exch 1 add get % string proe char char+1
144 exch 2 copy % strinq proc char+1 char char+1 char
145 % Now show the nth character
146 PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
147 false charpath % string proc char+1 char char+1
149 % Move past the character (charpath modified the current point)
150 currentpoint newpath moveto
151 % Execute the user proc (should consume char and char+1)
152 mark 3 1 roll % string proc char+1 mark char char+1
153 4 index exec % string proc char+1 mark...
154 cleartomark % string proc char+1
156 % Now display the last character
157 PATsstr dup 0 4 -1 roll put % string proc (char+1)
158 false charpath % string proc
163 % PATmp - the makepattern equivalent
164 /PATmp { % patdict patmtx PATmp patinstance
165 exch dup length 7 add % We will add 6 new entries plus 1 FID
166 dict copy % Create a new dictionary
168 % Matrix to install when painting the pattern
170 /PatternGState PATcg def
171 PatternGState /cm 3 -1 roll put
172 % Check for multi pattern sources (Level 1 fast color patterns)
173 currentdict /Multi known not { /Multi 1 def } if
174 % Font dictionary definitions
176 % Create a dummy encoding vector
177 /Encoding 256 array def
179 Encoding exch dup 3 index cvs cvn put } for pop
180 /FontMatrix matrix def
183 mark 3 1 roll % mark dict char
185 Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
186 PaintType 2 eq Multi 1 ne or
187 { XStep 0 FontBBox aload pop setcachedevice }
188 { XStep 0 setcharwidth } ifelse
189 currentdict % mark [paintdata] dict
190 /PaintProc load % mark [paintdata] dict paintproc
193 false PATredef exec true PATredef
199 /foo exch % /foo newlict
202 % PATpcalc - calculates the starting point and width/height
203 % of the tile fill for the shape
204 /PATpcalc { % - PATpcalc nw nh px py
205 PATDict /CurrentPattern get begin
207 % Set up the coordinate system to Pattern Space
208 % and lock down pattern
209 PatternGState /cm get setmatrix
210 BBox aload pop pop pop translate
211 % Determine the bounding box of the shape
212 pathbbox % llx lly urx ury
214 % Determine (nw, nh) the # of cells to paint width and height
215 PatHeight div ceiling % llx lly urx qh
216 4 1 roll % qh llx lly urx
217 PatWidth div ceiling % qh llx lly qw
218 4 1 roll % qw qh llx lly
219 PatHeight div floor % qw qh llx ph
220 4 1 roll % ph qw qh llx
221 PatWidth div floor % ph qw qh pw
222 4 1 roll % pw ph qw qh
223 2 index sub cvi abs % pw ph qs qh-ph
224 exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
225 % Determine the starting point of the pattern fill
227 4 2 roll % nw nh pw ph
228 PatHeight mul % nw nh pw py
230 PatWidth mul exch % nw nh px py
234 % Save the original routines so that we can use them later on
235 /oldfill /fill load def
236 /oldeofill /eofill load def
237 /oldstroke /stroke load def
238 /oldshow /show load def
239 /oldashow /ashow load def
240 /oldwidthshow /widthshow load def
241 /oldawidthshow /awidthshow load def
242 /oldkshow /kshow load def
244 % These defs are necessary so that subsequent procs don't bind in
246 /fill { oldfill } bind def
247 /eofill { oldeofill } bind def
248 /stroke { oldstroke } bind def
249 /show { oldshow } bind def
250 /ashow { oldashow } bind def
251 /widthshow { oldwidthshow } bind def
252 /awidthshow { oldawidthshow } bind def
253 /kshow { oldkshow } bind def
257 /fill { /clip load PATdraw newpath } bind def
258 /eofill { /eoclip load PATdraw newpath } bind def
259 /stroke { PATstroke } bind def
260 /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
261 /ashow { 0 0 null 6 3 roll PATawidthshow }
263 /widthshow { 0 0 3 -1 roll PATawidthshow }
265 /awidthshow { PATawidthshow } bind def
266 /kshow { PATkshow } bind def
268 /fill { oldfill } bind def
269 /eofill { oldeofill } bind def
270 /stroke { oldstroke } bind def
271 /show { oldshow } bind def
272 /ashow { oldashow } bind def
273 /widthshow { oldwidthshow } bind def
274 /awidthshow { oldawidthshow } bind def
275 /kshow { oldkshow } bind def
280 % Conditionally define setcmykcolor if not available
281 /setcmykcolor where { pop } {
285 3 index add neg dup 0 lt { pop 0 } if 3 1 roll
290 /PATsc { % colorarray
291 aload length % c1 ... cn length
292 dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
302 cc aload pop setrgbcolor
311 /CurrentPattern exch def
312 % If it's an uncolored pattern, save the color
313 CurrentPattern /PaintType get 2 eq {
316 /CColor [ currentrgbcolor ] def
319 % PATstroke - stroke with the current pattern
325 currentpoint strokepath moveto
326 PATpcalc % proc nw nh px py
329 (*** PATstroke Warning: Path is too complex, stroking
333 countdictstack exch sub dup 0 gt
334 { { end } repeat } { pop } ifelse
335 gsave 0.5 setgray oldstroke grestore
336 } { pop restore pop } ifelse
339 /PATtcalc { % modmtx tilingtype PATtcalc tilematrix
340 % Note: tiling types 2 and 3 are not supported
342 exch concat % tilingtype
343 matrix currentmatrix exch % cmtx tilingtype
344 % Tiling type 1 and 3: constant spacing
346 % Distort the pattern so that it occupies
347 % an integral number of device pixels
348 dup 4 get exch dup 5 get exch % tx ty cmtx
350 round exch round exch % tx ty cmtx dx.x dx.y
351 XStep div exch XStep div exch % tx ty cmtx a b
353 round exch round exch % tx ty cmtx a b dy.x dy.y
354 YStep div exch YStep div exch % tx ty cmtx a b c d
355 7 -3 roll astore % { a b c d tx ty }
366 % this is the pattern fill program from the Second edition Reference Manual
367 % with changes to call the above pattern fill
381 { 32 16 true [ 32 0 0 -16 0 16 ]
382 {<c000c000300030000c000c000300030000c000c000300030
383 000c000c00030003c000c000300030000c000c0003000300
384 00c000c000300030000c000c00030003>}
394 1.1111 1.1111 scale %restore scale
396 /clp {closepath} bind def
397 /ef {eofill} bind def
398 /gr {grestore} bind def
402 /n {newpath} bind def
404 /slc {setlinecap} bind def
405 /slj {setlinejoin} bind def
406 /slw {setlinewidth} bind def
407 /srgb {setrgbcolor} bind def
408 /rot {rotate} bind def
410 /tr {translate} bind def
411 /tnt {dup dup currentrgbcolor
412 4 -2 roll dup 1 exch sub 3 -1 roll mul add
413 4 -2 roll dup 1 exch sub 3 -1 roll mul add
414 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
416 /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
417 4 -2 roll mul srgb} bind def
425 /savematrix mtrx currentmatrix def
426 x y tr xrad yrad sc 0 0 1 startangle endangle arc
431 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
432 /$F2psEnd {$F2psEnteredState restore end} def
440 n 6652.82 3178.17 1177.36 -92.57 -60.64 arc
444 n 1800 4200 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
447 n 1800 1200 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
450 n 3000 600 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
451 15.00 15.00 sc P1 [16 0 0 -8 195.00 35.00] PATmp PATsp ef gr PATusp gs col-1 s gr
454 n 1200 4800 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
455 15.00 15.00 sc P1 [16 0 0 -8 75.00 315.00] PATmp PATsp ef gr PATusp gs col-1 s gr
458 n 6000 4200 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
459 15.00 15.00 sc P1 [16 0 0 -8 395.00 275.00] PATmp PATsp ef gr PATusp gs col-1 s gr
462 n 7800 1200 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
463 15.00 15.00 sc P1 [16 0 0 -8 515.00 75.00] PATmp PATsp ef gr PATusp gs col-1 s gr
466 n 7800 600 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
469 n 6000 4800 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
472 n 10800 3900 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
473 15.00 15.00 sc P1 [16 0 0 -8 715.00 255.00] PATmp PATsp ef gr PATusp gs col-1 s gr
476 n 12600 1500 75 75 0 360 DrawEllipse gs /PC [[0.00 0.00 0.00] [0.00 0.00 0.00]] def
477 15.00 15.00 sc P1 [16 0 0 -8 835.00 95.00] PATmp PATsp ef gr PATusp gs col-1 s gr
480 n 12600 1200 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
483 n 10800 4200 75 75 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr
487 n 1800 4200 m 1800 1200 l gs col-1 s gr [] 0 setdash
490 n 6600 4200 m 6600 1200 l gs col-1 s gr [] 0 setdash
493 n 11400 4200 m 11400 1200 l gs col-1 s gr [] 0 setdash
495 n 8775 6150 m 9375 6150 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
496 15.00 15.00 sc P1 [16 0 0 -8 585.00 410.00] PATmp PATsp ef gr PATusp gs col-1 s gr
497 n 9135.00 6090.00 m 9375.00 6150.00 l 9135.00 6210.00 l gs col-1 s gr
499 n 3975 6150 m 4575 6150 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
500 15.00 15.00 sc P1 [16 0 0 -8 265.00 410.00] PATmp PATsp ef gr PATusp gs col-1 s gr
501 n 4335.00 6090.00 m 4575.00 6150.00 l 4335.00 6210.00 l gs col-1 s gr
503 n 2850 300 m 1650 900 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
504 15.00 15.00 sc P1 [16 0 0 -8 110.00 20.00] PATmp PATsp ef gr PATusp gs col-1 s gr
505 n 2565.57 375.13 m 2850.00 300.00 l 2619.24 482.46 l 2635.84 407.83 l 2565.57 375.13 l clp gs 0.00 setgray ef gr gs col-1 s gr
507 n 1425 5025 m 2025 4425 l gs col-1 s gr
508 n 1671.07 4863.78 m 1425.00 5025.00 l 1586.22 4778.93 l 1595.21 4855.79 l 1671.07 4863.78 l clp gs 0.00 setgray ef gr gs col-1 s gr
510 n 6000 4200 m 7800 1200 l gs col-1 s gr
512 n 5700 4800 m 5700 4200 l gs col-1 s gr
513 n 5640.00 4488.00 m 5700.00 4200.00 l 5760.00 4488.00 l 5700.50 4440.50 l 5640.00 4488.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
515 n 8100 600 m 8100 1200 l gs col-1 s gr
516 n 8160.00 912.00 m 8100.00 1200.00 l 8040.00 912.00 l 8100.50 960.50 l 8160.00 912.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
518 n 10800 3900 m 12600 1500 l gs col-1 s gr
520 n 12900 1200 m 12900 1500 l gs col-1 s gr
521 n 12960.00 1212.00 m 12900.00 1500.00 l 12840.00 1212.00 l 12900.50 1260.50 l 12960.00 1212.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
523 n 10500 4200 m 10500 3900 l gs col-1 s gr
524 n 10440.00 4188.00 m 10500.00 3900.00 l 10560.00 4188.00 l 10500.50 4140.50 l 10440.00 4188.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
526 n 1200 4800 m 3000 600 l gs col-1 s gr
528 [1 75.0] 75.000000 setdash
529 n 1800 1200 m 3600 1200 l gs col-1 s gr [] 0 setdash
531 [1 75.0] 75.000000 setdash
532 n 1800 4200 m 3600 4200 l gs col-1 s gr [] 0 setdash
534 [1 75.0] 75.000000 setdash
535 n 7800 1200 m 6300 300 l gs col-1 s gr [] 0 setdash
537 [1 75.0] 75.000000 setdash
538 n 6000 4200 m 4500 3300 l gs col-1 s gr [] 0 setdash
540 [1 75.0] 75.000000 setdash
541 n 10800 3900 m 9300 2775 l gs col-1 s gr [] 0 setdash
543 [1 75.0] 75.000000 setdash
544 n 12600 1500 m 11100 375 l gs col-1 s gr [] 0 setdash
546 [1 75.0] 75.000000 setdash
547 n 10800 3900 m 13500 3900 l gs col-1 s gr [] 0 setdash
549 [1 75.0] 75.000000 setdash
550 n 12675 1500 m 13500 1500 l gs col-1 s gr [] 0 setdash
552 [1 75.0] 75.000000 setdash
553 n 3300 1200 m 3300 2400 l gs col-1 s gr [] 0 setdash
554 n 3240.00 1440.00 m 3300.00 1200.00 l 3360.00 1440.00 l gs col-1 s gr
556 [1 75.0] 75.000000 setdash
557 n 3300 4200 m 3300 3000 l gs col-1 s gr [] 0 setdash
558 n 3360.00 3960.00 m 3300.00 4200.00 l 3240.00 3960.00 l gs col-1 s gr
560 [1 75.0] 75.000000 setdash
561 n 4800 3450 m 5550 2250 l gs col-1 s gr [] 0 setdash
562 n 4978.08 3278.28 m 4800.00 3450.00 l 4876.32 3214.68 l gs col-1 s gr
564 [1 75.0] 75.000000 setdash
565 n 6600 525 m 5925 1650 l gs col-1 s gr [] 0 setdash
566 n 6425.07 699.93 m 6600.00 525.00 l 6527.97 761.67 l gs col-1 s gr
568 [1 75.0] 75.000000 setdash
569 n 9600 3000 m 10275 2100 l gs col-1 s gr [] 0 setdash
570 n 9792.00 2844.00 m 9600.00 3000.00 l 9696.00 2772.00 l gs col-1 s gr
572 [1 75.0] 75.000000 setdash
573 n 11400 600 m 10725 1500 l gs col-1 s gr [] 0 setdash
574 n 11208.00 756.00 m 11400.00 600.00 l 11304.00 828.00 l gs col-1 s gr
576 [1 75.0] 75.000000 setdash
577 n 13200 1500 m 13200 2400 l gs col-1 s gr [] 0 setdash
578 n 13140.00 1740.00 m 13200.00 1500.00 l 13260.00 1740.00 l gs col-1 s gr
580 [1 75.0] 75.000000 setdash
581 n 13200 3900 m 13200 3000 l gs col-1 s gr [] 0 setdash
582 n 13260.00 3660.00 m 13200.00 3900.00 l 13140.00 3660.00 l gs col-1 s gr
584 [1 75.0] 75.000000 setdash
585 n 6075 4200 m 8700 4200 l gs col-1 s gr [] 0 setdash
587 [1 75.0] 75.000000 setdash
588 n 8400 1200 m 8400 2400 l gs col-1 s gr [] 0 setdash
589 n 8340.00 1440.00 m 8400.00 1200.00 l 8460.00 1440.00 l gs col-1 s gr
591 [1 75.0] 75.000000 setdash
592 n 8400 4200 m 8400 3000 l gs col-1 s gr [] 0 setdash
593 n 8460.00 3960.00 m 8400.00 4200.00 l 8340.00 3960.00 l gs col-1 s gr
595 [1 75.0] 75.000000 setdash
596 n 7800 1200 m 8700 1200 l gs col-1 s gr [] 0 setdash
597 /Helvetica findfont 450.00 scalefont setfont
599 gs 1 -1 sc (unconstrained) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
600 /Helvetica findfont 450.00 scalefont setfont
602 gs 1 -1 sc (update) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
603 /Helvetica findfont 450.00 scalefont setfont
605 gs 1 -1 sc (correction for) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
606 /Helvetica findfont 450.00 scalefont setfont
608 gs 1 -1 sc (rotational) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
609 /Helvetica findfont 450.00 scalefont setfont
611 gs 1 -1 sc (lengthening) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
612 /Helvetica findfont 450.00 scalefont setfont
614 gs 1 -1 sc (projecting out) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
615 /Helvetica findfont 450.00 scalefont setfont
617 gs 1 -1 sc (forces working) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
618 /Helvetica findfont 450.00 scalefont setfont
620 gs 1 -1 sc (along the bonds) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr
621 /Symbol findfont 450.00 scalefont setfont
623 gs 1 -1 sc (q) col-1 show gr
624 /Helvetica findfont 450.00 scalefont setfont
626 gs 1 -1 sc (d) col-1 show gr
627 /Helvetica findfont 450.00 scalefont setfont
629 gs 1 -1 sc (l) col-1 show gr
630 /Helvetica findfont 450.00 scalefont setfont
632 gs 1 -1 sc (d) col-1 show gr
633 /Helvetica findfont 450.00 scalefont setfont
635 gs 1 -1 sc (p) col-1 show gr
636 /Helvetica findfont 450.00 scalefont setfont
638 gs 1 -1 sc (d) col-1 show gr