2 %%BoundingBox: 15 702 300 767
3 %%Title: cons-cell-diagram2a
4 %%CreationDate: Tue Mar 14 15:09:30 1995
5 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
7 % Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
10 /tgifdict 132 dict def
14 % Using a zero value radius for an ellipse or an arc would result
15 % in a non-invertible CTM matrix which causes problem when this
16 % when this PostScript is wrapped inside other routines, such as
17 % the multi.ps package from
18 % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
19 % error by uncommenting the sole line of the procedure below:
23 % dup 0.01 lt { pop 0.01 } if
26 /tgifellipsedict 6 dict def
27 tgifellipsedict /mtrx matrix put
30 { tgifellipsedict begin
35 /savematrix mtrx currentmatrix def
43 /tgifarrowtipdict 8 dict def
44 tgifarrowtipdict /mtrx matrix put
47 { tgifarrowtipdict begin
54 /savematrix mtrx currentmatrix def
64 /tgifarcdict 8 dict def
65 tgifarcdict /mtrx matrix put
75 /savematrix mtrx currentmatrix def
78 0 0 1 startangle endangle arc
91 /savematrix mtrx currentmatrix def
94 0 0 1 startangle endangle arcn
99 /tgifsetuserscreendict 22 dict def
100 tgifsetuserscreendict begin
103 /tempscale matrix def
106 { /proc2 exch cvlit def
107 /proc1 exch cvlit def
108 /newproc proc1 length proc2 length add array def
109 newproc 0 proc1 putinterval
110 newproc proc1 length proc2 putinterval
113 /resmatrix matrix def
115 { 72 0 resmatrix defaultmatrix dtransform
116 /yres exch def /xres exch def
117 xres dup mul yres dup mul add sqrt
122 { tgifsetuserscreendict begin
123 /spotfunction exch def
124 /screenangle exch def
127 /m tempctm currentmatrix def
128 /rm screenangle temprot rotate def
129 /sm cellsize dup tempscale scale def
131 sm rm m m concatmatrix m concatmatrix pop
133 1 0 m dtransform /y1 exch def /x1 exch def
135 /veclength x1 dup mul y1 dup mul add sqrt def
136 /frequency findresolution veclength div def
138 /newscreenangle y1 x1 atan def
140 m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
142 {{neg} /spotfunction load concatprocs
143 /spotfunction exch def
146 frequency newscreenangle /spotfunction load setscreen
150 /tgifsetpatterndict 18 dict def
151 tgifsetpatterndict begin
153 { /ybit exch def /xbit exch def
154 /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
156 /mask 1 7 xbit 8 mod sub bitshift def
157 bytevalue mask and 0 ne
161 /tgifbitpatternspotfunction
162 { tgifsetpatterndict begin
163 /y exch def /x exch def
165 /xindex x 1 add 2 div bpside mul cvi def
166 /yindex y 1 add 2 div bpside mul cvi def
168 xindex yindex bitison
169 { /onbits onbits 1 add def 1 }
170 { /offbits offbits 1 add def 0 }
176 { tgifsetpatterndict begin
183 /onbits 0 def /offbits 0 def
184 cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
186 offbits offbits onbits add div setgray
190 /tgifxpmdict 4 dict def
191 /tgifbwpicstr 1 string def
192 /tgifcolorpicstr 3 string def
194 /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
196 /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
202 pixels index 3 mul 3 getinterval aload pop
203 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
212 pixels index 3 mul 3 getinterval aload pop
213 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
214 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
215 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
223 pixels index 3 mul 3 getinterval aload pop setrgbcolor
227 /tgifcolordict 4 dict def
232 { tgifcolordict begin
241 tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
242 x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
253 /tgifpatdict 10 dict def
256 { currentdict /retstr get exch
257 pat i cellsz mod get put
261 { 0 1 widthlim {tgifpatbyte} for retstr
274 /widthlim w cellsz div cvi 1 sub def
275 /retstr widthlim 1 add string def
279 w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
280 ltx neg lty neg translate
284 /pat1 <ffffffffffffffff> def
285 /pat2 <0000000000000000> def
286 /pat3 <8000000008000000> def
287 /pat4 <8800000022000000> def
288 /pat5 <8800220088002200> def
289 /pat6 <8822882288228822> def
290 /pat7 <aa55aa55aa55aa55> def
291 /pat8 <77dd77dd77dd77dd> def
292 /pat9 <77ffddff77ffddff> def
293 /pat10 <77ffffff77ffffff> def
294 /pat11 <7fffffff7fffffff> def
295 /pat12 <8040200002040800> def
296 /pat13 <40a00000040a0000> def
297 /pat14 <ff888888ff888888> def
298 /pat15 <ff808080ff080808> def
299 /pat16 <f87422478f172271> def
300 /pat17 <038448300c020101> def
301 /pat18 <081c22c180010204> def
302 /pat19 <8080413e080814e3> def
303 /pat20 <8040201008040201> def
304 /pat21 <8844221188442211> def
305 /pat22 <77bbddee77bbddee> def
306 /pat23 <c1e070381c0e0783> def
307 /pat24 <7fbfdfeff7fbfdfe> def
308 /pat25 <3e1f8fc7e3f1f87c> def
309 /pat26 <0102040810204080> def
310 /pat27 <1122448811224488> def
311 /pat28 <eeddbb77eeddbb77> def
312 /pat29 <83070e1c3870e0c1> def
313 /pat30 <fefdfbf7efdfbf7f> def
314 /pat31 <7cf8f1e3c78f1f3e> def
316 /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
318 /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
320 /tgifreencsmalldict 12 dict def
322 { tgifreencsmalldict begin
323 /newcodesandnames exch def
324 /newfontname exch def
325 /basefontname exch def
327 /basefontdict basefontname findfont def
328 /newfont basefontdict maxlength dict def
333 { exch dup length array copy newfont 3 1 roll put }
334 { exch newfont 3 1 roll put }
342 newfont /FontName newfontname put
343 newcodesandnames aload pop
345 newcodesandnames length 2 idiv
346 { newfont /Encoding get 3 1 roll put}
349 newfontname newfont definefont pop
353 /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
355 /tgifboxdict 6 dict def
358 /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
360 w 1 eq { w setlinewidth } if
361 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
362 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
363 pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
364 pat pat1 ne pat pat2 ne and { grestore } if
365 w 1 eq { 1 setlinewidth } if
371 /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
372 pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
373 newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
374 pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
375 pat pat1 ne pat pat2 ne and { grestore } if
381 %%PageBoundingBox: 15 702 300 767
383 /tgifsavedpage save def
390 72 0 mul 72 11.00 mul translate
391 72 128 div 100 mul 100 div dup neg scale
397 /Courier findfont [17 0 0 -17 0 0] makefont setfont
399 32 62 moveto (bouquet) show
407 0 49 atan dup cos 8 mul 113 exch sub
408 exch sin 8 mul 120 exch sub lineto
413 113 120 8 3 49 0 tgifarrowtip
419 /Courier findfont [17 0 0 -17 0 0] makefont setfont
421 128 110 moveto (car) show
426 /Courier findfont [17 0 0 -17 0 0] makefont setfont
428 128 142 moveto (rose) show
433 /Courier findfont [17 0 0 -17 0 0] makefont setfont
435 192 110 moveto (cdr) show
440 newpath 207 124 4 4 tgifellipse stroke
447 0 38 atan dup cos 8 mul 255 exch sub
448 exch sin 8 mul 123 exch sub lineto
453 255 123 8 3 38 0 tgifarrowtip
459 /Courier findfont [17 0 0 -17 0 0] makefont setfont
461 268 111 moveto (car) show
466 /Courier findfont [17 0 0 -17 0 0] makefont setfont
468 264 143 moveto (violet) show
473 /Courier findfont [17 0 0 -17 0 0] makefont setfont
475 332 111 moveto (cdr) show
480 newpath 347 125 4 4 tgifellipse stroke
487 0 38 atan dup cos 8 mul 395 exch sub
488 exch sin 8 mul 124 exch sub lineto
493 395 124 8 3 38 0 tgifarrowtip
499 /Courier findfont [17 0 0 -17 0 0] makefont setfont
501 408 112 moveto (car) show
506 /Courier findfont [17 0 0 -17 0 0] makefont setfont
508 408 136 moveto (butter-) show
509 408 153 moveto (cup) show
514 /Courier findfont [17 0 0 -17 0 0] makefont setfont
516 496 113 moveto (cdr) show
521 /Courier findfont [17 0 0 -17 0 0] makefont setfont
523 495 137 moveto (nil) show
554 120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
563 257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
572 397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
578 tgifsavedpage restore
580 %MatchingCreationDate: Tue Mar 14 15:09:30 1995