README: mention the macros in makefile
[neatroff_make.git] / tmac / tmac.s
blob9830ff9454beea48d338c84bcdd358d9216c686a
1 .ds sd \n(.D
2 .\" RT - reset everything to normal state
3 .de RT
4 .if \\n(CS \{\
5 .SR 1
6 .BG\}
7 .if !\\n(1T .BG
8 .ce 0
9 .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .if !\\n(FT .di
10 .ul 0
11 .if \\n(QP \{\
12 . ll +\\n(QIu
13 . in -\\n(QIu
14 . nr QP -1\}
15 .if \\n(NX<=1 .if \\n(AJ=0 .if \\n(FT=0 .ll \\n(LLu
16 .if !\\n(IF \{\
17 . ps \\n(PS
18 . ie \\n(VS>=41 .vs \\n(VSu
19 . el .vs \\n(VSp\}
20 .ie \\n(IP \{\
21 . in \\n(I\\n(IRu
22 . nr IP -1\}
23 .el .if !\\n(IR \{\
24 . nr I1 \\n(PIu
25 . nr I2 0
26 . nr I3 0
27 . nr I4 0
28 . nr I5 0\}
29 .ft 1
30 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
31 .hy \\n(HY
32 .fi
34 . \"IZ - initialization
35 .de IZ
36 .so \\*(sd/tmac.sdisp
37 .nr TN 0
38 .em EM
39 . \" ACCENTS say \*'e or \*`e to get e acute or e grave both were 4/10
40 .ds ' \h'\w'e'u*1/10'\z\(aa\h'-\w'e'u*1/10'
41 .ds ` \h'\w'e'u*2/10'\z\(ga\h'-\w'e'u*2/10'
42 . \" UMLAUT \*:u, etc.
43 .if t .ds : \\v'-0.6m'\\h'(1u-(\\\\n(.fu%2u))*0.13m+0.00m'\\z.\\h'0.2m'\\z.\\h'-((1u-(\\\\n(.fu%2u))*0.13m+0.20m)'\\v'0.6m'
44 .if n .ds : \z"
45 . \" TILDE and CIRCUMFLEX
46 .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u'
47 .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u'
48 . \" czech v symbol
49 .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u'
50 . \" cedilla
51 .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u'
52 .so \\*(sd/tmac.srefs
53 .ch FO \\n(YYu
54 .if !\\n(FM .nr FM 1i
55 .nr YY -\\n(FMu
56 .nr XX 0 1
57 .nr IP 0
58 .nr PI 5n
59 .nr QI 5n
60 .nr I0 \\n(PIu
61 .nr PS 10
62 .nr VS 12
63 .nr HY 14
64 .ie n \{\
65 . if !\\n(PD .nr PD 1v
66 . nr DV 1v\}
67 .el \{\
68 . if !\\n(PD .nr PD 0.3v
69 . nr DV .5v\}
70 .nr ML 3v
71 .ps \\n(PS
72 .ie \\n(VS>=41 .vs \\n(VSu
73 .el .vs \\n(VSp
74 .nr IR 0
75 .nr I0 0
76 .nr I1 \\n(PIu
77 .nr TB 0
78 .nr SJ \\n(.j
79 .nr LL 6i
80 .ll \\n(LLu
81 .nr LT \\n(.l
82 .lt \\n(LTu
83 .ev 1
84 .if !\\n(FL .nr FL \\n(LLu*11u/12u
85 .ll \\n(FLu
86 .ps 8
87 .vs 10p
88 .ev
89 .if \a\\*(CH\a\a .ds CH "\(hy \\\\n(PN \(hy
90 .wh 0 NP
91 .wh -\\n(FMu FO
92 .ch FO 16i
93 .wh -\\n(FMu FX
94 .ch FO -\\n(FMu
95 .if t .wh -\\n(FMu/2u BT
96 .if n .wh -\\n(FMu/2u-1v BT
97 . \" no overstriking bold or italic; switch underlining to bold italic
98 . \" (sad historical botch, the .uf font must be 2, 3, or 4)
99 .if n .uf 4
100 .if n .bd 3
101 .nr CW 0-1
102 .nr GW 0-1
104 .de TM
105 .if !\\n(IM .if !\\n(MN .pn 0
106 .so \\*(sd/tmac.scover
107 .if !\\n(IM .if !\\n(MN .rm IM MF MR
108 .if n .if !\\n(.T .pi /usr/bin/col
109 .nr ST 1
110 .ds QF TECHNICAL MEMORANDUM
112 .ds MN \\$1
113 .if !"\\$1"" .nr MM 1
114 .if !"\\$2"" .nr MC 1
115 .if !"\\$3"" .nr MG 1
116 .nr TN 1
117 .if \\n(.$-1 .ds CA \\$2
118 .if \\n(.$-2 .ds CC \\$3
119 .rm RP S0 S2 AX
121 . \" IM - internal memorandum
122 .de IM
123 .nr IM 1
124 .TM "\\$1" "\\$2" "\\$3"
125 .rm QF
127 .rm RA RP MF MR
129 . \" MF - memorandum for file.
130 .de MF
131 .nr MN 1
132 .TM "\\$1" "\\$2" "\\$3"
133 .rm MR
134 .rm IM
136 .rm RA RP TM
138 . \" MR - memo for record
139 .de MR
140 .nr MN 2
141 .TM "\\$1" "\\$2" "\\$3"
142 .ds QF MEMORANDUM FOR RECORD
143 .rm MF
145 .rm RA RP IM TM
147 . \" LT - letter
148 .de LT
149 .if !\\n(PO .ie n .nr PO 1.5i
150 .el .nr PO 1.3i
151 .po \\n(POu
154 .if !"\\$1"" \{\
155 . vs -2p
156 .if "\\$1"LT" .ta 3.9i 4.45i
157 .if !"\\$1"LT" .ta 3.9i 4.45i
158 . sp .2i
159 . nf
160 . if "\\$1"LT" \s36\(FA\s0
161 . if !"\\$1"LT" \s36\(LH\s0
162 . br
163 \s7\l'7i'\s0
165 . br
166 . if !"\\$2"" .ds xR " \\$2
167 . ds xP 908-582-3000
168 . if !"\\$3"" .ds xP \\$3
169 . if "\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
170 . if !"\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
171 . if !"\\$2"" \\*(xR
172 Murray Hill, NJ 07974-0636
173 \\*(xP
174 . if !"\\$4"" \\$4
175 . if !"\\$5"" \\$5
176 . if !"\\$6"" \\$6
177 . if !"\\$7"" \\$7
178 .ft 1
180 . sp -.75i
181 . vs
182 . fi \}
183 .if n \{\
184 . sp 1i
185 . in 4.55i\}
186 .if t \{\
187 . sp 1.45i
188 . in 3.5i\}
189 .ll 8i
190 \\*(DY
192 .in 0
194 .if t .sp 3
195 .if n \{\
196 . sp
197 . na\}
199 .rm CF
200 .de SG \" nested defn
201 .sp 2
202 .ta 3.5i
203 Sincerely,
204 .sp 3
205 \\\\$1
206 .ds CH
207 \\..
209 .de OK
212 .di OD
214 .de RP \" released paper
215 .nr ST 2
216 .pn 0
217 .rm SG CS TM QF IM MR MF EG
220 .de TR \" Comp. Sci. Tech Rept series.
221 .nr ST 3
222 .pn 0
223 .ds MN \\$1
224 .rm SG CS TM QF IM MR M EG
227 . \"FP - font position for a family
228 .de FP
229 .ds TF \\$1
230 .if '\\$1'palatino'\{\
231 . fp 1 R PA
232 . fp 2 I PI
233 . fp 3 B PB
234 . fp 4 BI PX\}
235 .if '\\$1'lucidabright'\{\
236 . fp 1 R LucidaBright
237 . fp 2 I LucidaBright-Italic
238 . fp 3 B LucidaBright-Demi
239 . fp 4 BI LucidaBright-DemiItalic
240 . fp 5 CW LucidaSansCW\}
241 .if '\\$1'lucidasans'\{\
242 . fp 1 R LucidaSans
243 . fp 2 I LucidaSansI
244 . fp 3 B LucidaSansB
245 . fp 5 CW LucidaCW\}
246 .if '\\$1'syntax'\{\
247 . fp 1 R Syntax
248 . fp 2 I SyntaxI
249 . fp 3 B SyntaxB
250 . fp 5 CW LucidaCW\}
251 .if '\\$1'century'\{\
252 . ie '\\*(.T'202'\{\
253 . fp 1 NR Centsb
254 . fp 2 NI CentI
255 . fp 3 NB CentB
256 . fp 4 NX CentBI\}
257 . el \{\
258 . fp 1 NR
259 . fp 2 NI
260 . fp 3 NB
261 . fp 4 NX\}\}
262 .if '\\$1'helvetica'\{\
263 . fp 1 H
264 . fp 2 HI
265 . fp 3 HB
266 . fp 4 HX\}
267 .if '\\$1'bembo'\{\
268 . ie '\\*(.T'202'\{\
269 . fp 1 B1 Bembo
270 . fp 2 B2 BemboI
271 . fp 3 B3 BemboB
272 . fp 4 B4 BemboBI\}
273 . el \{\
274 . fp 1 B1
275 . fp 2 B2
276 . fp 3 B3
277 . fp 4 B4\}\}
278 .if '\\$1'optima'\{\
279 . fp 1 R Optima
280 . fp 2 I OptimaI
281 . fp 3 B OptimaB
282 . fp 4 BI OptimaBI\}
283 .if '\\$1'souvenir'\{\
284 . fp 1 R Souvenir
285 . fp 2 I SouvenirI
286 . fp 3 B SouvenirB
287 . fp 4 BI SouvenirBI\}
288 .if '\\$1'melior'\{\
289 . fp 1 R Melior
290 . fp 2 I MeliorI
291 . fp 3 B MeliorB
292 . fp 4 BI MeliorBI\}
293 .if '\\$1'times'\{\
294 . fp 1 R
295 . fp 2 I
296 . fp 3 B
297 . fp 4 BI\}
299 . \"TL - title and initialization
300 .de TL
302 .nr TV 1
303 .if \\n(IM .rm CS
304 .if \\n(MN .rm CS
306 .rm ME
307 .di WT
310 .ie h .ll \\n(LLu
311 .el \{\
312 .ll 5.0i
313 .if n .if \\n(TN .ll 29
314 .if t .if \\n(TN .ll 3.5i \}
315 .ft 3
316 .ps \\n(PS
317 .if !\\n(TN \{\
318 . ps +2
319 . vs \\n(.s+2
320 . rm CS\}
321 .hy 0
322 .if h .ce 999
324 .de TX
326 .sp .5i
327 .ce 1000
328 .if n .ul 1000
329 .ps 12
330 .ft 3
331 .vs 15p
332 .ne 4
333 .hy 0
337 .hy \\n(HY
338 .ce 0
339 .ul 0
341 . \" AU - author(s)
342 .de AU
343 .nr AV 1
344 .ad \\n(SJ
349 .nr NA +1
350 .ds R\\n(NA \\$1
351 .ds E\\n(NA \\$2
352 .di A\\n(NA
353 .ll \\n(LLu
354 .ie t \{\
355 . ie !\\n(TN .ft 2
356 . el \{\
357 . ft 3
358 . ll 1.4i\}\}
359 .el \{\
360 . ie !\\n(TN .ft 1
361 . el \{\
362 . ft 3
363 . ll 16\}\}
364 .ps \\n(PS
365 .if h .ce 999
367 .de AX
368 .ft 1
370 .ce 1000
371 .if n .ul 0
372 .ps \\n(PS
373 .ie \\n(VS>=41 .vs \\n(VSu
374 .el .vs \\n(VSp
376 .if t \{\
377 . sp
378 . A1
379 . sp 0.5
380 . ns
381 . I1
382 . if \\n(NA-1 .sp
383 . A2
384 . if \\n(NA-1 .sp 0.5
385 . ns
386 . I2
387 . if \\n(NA-2 .sp
388 . A3
389 . if \\n(NA-2 .sp 0.5
390 . ns
391 . I3
392 . if \\n(NA-3 .sp
393 . A4
394 . if \\n(NA-3 .sp 0.5
395 . ns
396 . I4
397 . if \\n(NA-4 .sp
398 . A5
399 . if \\n(NA-4 .sp 0.5
400 . ns
401 . I5
402 . if \\n(NA-5 .sp
403 . A6
404 . if \\n(NA-5 .sp 0.5
405 . ns
406 . I6
407 . if \\n(NA-6 .sp
408 . A7
409 . if \\n(NA-6 .sp 0.5
410 . ns
411 . I7
412 . if \\n(NA-7 .sp
413 . A8
414 . if \\n(NA-7 .sp 0.5
415 . ns
416 . I8
417 . if \\n(NA-8 .sp
418 . A9
419 . if \\n(NA-8 .sp 0.5
420 . ns
421 . I9\}
422 .if n \{\
423 . sp 2
424 . A1
425 . sp
426 . ns
427 . I1
428 . if \\n(NA-1 .sp 2
429 . A2
430 . if \\n(NA-1 .sp
431 . ns
432 . I2
433 . if \\n(NA-2 .sp 2
434 . A3
435 . if \\n(NA-2 .sp
436 . ns
437 . I3
438 . if \\n(NA-3 .sp 2
439 . A4
440 . if \\n(NA-3 .sp
441 . ns
442 . I4
443 . if \\n(NA-4 .sp 2
444 . A5
445 . if \\n(NA-4 .sp
446 . ns
447 . I5
448 . if \\n(NA-5 .sp 2
449 . A6
450 . if \\n(NA-5 .sp
451 . ns
452 . I6
453 . if \\n(NA-6 .sp 2
454 . A7
455 . if \\n(NA-6 .sp
456 . ns
457 . I7
458 . if \\n(NA-7 .sp 2
459 . A8
460 . if \\n(NA-7 .sp
461 . ns
462 . I8
463 . if \\n(NA-8 .sp 2
464 . A9
465 . if \\n(NA-8 .sp
466 . ns
467 . I9\}
470 . \"AI - authors institution
471 .de AI
473 .ft 1
475 .di I\\n(NA
478 . \"AB - begin an abstract
479 .de AB
482 .ul 0
483 .ce 0
484 .nr 1T 1
485 .nr IK 1
486 .nr KI 1
487 .di WB
489 .nr AJ 1
490 .ce 1
491 .ft 2
492 .if n .ul
493 .ll \\n(LLu
494 .ie \\n(.$ \{\
495 . if !"\\$1"-" .if !"\\$1"no" \\$1
496 . if !"\\$1"-" .if !"\\$1"no" .sp\}
497 .el \{\
498 ABSTRACT
499 .sp\}
500 .hy \\n(HY
501 .ul 0
502 .ce 0
504 .ft 1
505 .nr OJ \\n(.i
506 .in +\\n(.lu/12u
507 .ll -\\n(.lu/12u
509 .ps \\n(PS
510 .ie \\n(VS>=41 .vs \\n(VSu
511 .el .vs \\n(VSp
512 .ti +\\n(PIu
514 . \"AE - end of an abstract
515 .de AE
518 .ll \\n(LLu
519 .ps \\n(PS
520 .ie \\n(VS>=41 .vs \\n(VSu
521 .el .vs \\n(VSp
522 .nr 1T 0
523 .nr IK 0
524 .in \\n(OJu
525 .nr AJ 0
527 .ce 0
528 .if \\n(ST=2 .S2
529 .if \\n(ST<3 .rm SY
531 . \"S2 - release paper style
532 . \"SY - cover sheet of released paper
533 .de SY
534 .ll \\n(LLu
536 .if \\n(TV .TX
537 .if \\n(AV .AX
539 .ce 0
541 .sp 3
542 .ls 1
543 .pn 2
545 .ls
546 .sp 3v
547 \\*(DY
548 .sp |9i
549 .if \\n(FP .FA
551 .if \\n(GA=1 .nr GA 2
554 . \"S2 - first text page, released paper format
555 .de S2
556 .ce 0
559 .rm SY
560 .bp 1
561 .if \\n(TV .TX
562 .if \\n(AV .AX
564 .ce 0
565 .ft 1
566 .ad \\n(SJ
568 . \"S0- mike lesk conserve paper style
569 .de S0
570 .ce 0
572 .ll \\n(LLu
573 .if \\n(TV+\\n(AV .ns
574 .if \\n(TV .TX
575 .if \\n(AV .AX
576 .if \\n(TV+\\n(AV .rs
577 .ce 0
578 .if \\n(TV .sp 2
579 .ls 1
580 .if \\n(FP \{\
581 . FJ
582 . nf
583 . FG
584 . fi
585 . FK
586 . nr FP 0\}
591 .ad \\n(SJ
593 . \"S3 - CSTR style
594 .de S3
596 .sp |2.25i
597 .ce 1000
599 .if \\n(NA>1 \{\
600 . sp .5
601 . I2\}
602 .if \\n(NA>2 \{\
603 . sp .5
604 . I3\}
605 .if \\n(NA>3 \{\
606 . sp .5
607 . I4\}
608 .if \\n(NA>4 \{\
609 . sp .5
610 . I5\}
611 .if \\n(NA>5 \{\
612 . sp .5
613 . I6\}
614 .if \\n(NA>6 \{\
615 . sp .5
616 . I7\}
617 .if \\n(NA>7 \{\
618 . sp .5
619 . I8\}
620 .if \\n(NA>8 \{\
621 . sp .5
622 . I9\}
623 .sp |4i
624 . \"check how long title is: can space extra .25 inch if short
625 .di EZ
628 .if \\n(dn<1.5v .if \\n(NA=1 .sp .25i
629 .ft 1
630 Computing Science Technical Report No. \\*(MN
632 .if t .ft 3
633 .if n .ul 100
634 .ps 12
635 .vs 15p
636 .hy 0
638 .hy \\n(HY
639 .ft 1
640 .if n .ul 0
641 .ps 10
642 .vs 12p
644 .ft 1
654 .ce 0
655 .sp |8.5i
656 .ce 0
657 \\*(DY
659 .bp 0
660 .ft 1
663 . \"SG - signature
664 .de SG
667 .in +2u*\\n(.lu/3u
668 .sp 4
670 .if \\n(NA>1 .sp 4
672 .if \\n(NA>2 .sp 4
674 .if \\n(NA>3 .sp 4
676 .if \\n(NA>4 .sp 4
678 .if \\n(NA>5 .sp 4
680 .if \\n(NA>6 .sp 4
682 .if \\n(NA>7 .sp 4
684 .if \\n(NA>8 .sp 4
688 .if \\n(.$<1 .G9
689 .sp -1
690 .if \\n(.$>=1 \\$1
691 .if \\n(.$>=2 \\$2
692 .if \\n(.$>=3 \\$3
693 .if \\n(.$>=4 \\$4
694 .if \\n(.$>=5 \\$5
695 .if \\n(.$>=6 \\$6
696 .if \\n(.$>=7 \\$7
697 .if \\n(.$>=8 \\$8
698 .if \\n(.$>=9 \\$9
703 . \"Tables. TS - table start, TE - table end
704 .de TS
706 .if !\\n(1T .RT
707 .ul 0
708 .ti \\n(.iu
709 .if t .sp 0.5
710 .if n .sp
711 .if \a\\$1\aH\a .TQ
712 .nr IX 1
714 .de TQ
715 .di TT
716 .nr IT 1
718 .de TH
719 .if \\n(.d>0.5v \{\
720 . nr T. 0
721 . T# 0\}
723 .nr TQ \\n(.i
724 .nr HT 1
725 .in 0
726 .mk #a
727 .mk #b
728 .mk #c
729 .mk #d
730 .mk #e
731 .mk #f
733 .in \\n(TQu
734 .mk #T
736 .de TE
737 .nr IX 0
738 .if \\n(IT .if !\\n(HT \{\
739 . di
740 . nr EF \\n(.u
741 . nf
742 . TT
743 . if \\n(EF .fi\}
744 .nr IT 0
745 .nr HT 0
746 .if n .sp 1
747 .if t .sp 0.5
748 .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+
749 .rr 32 33 34 35 36 37 38 40 79 80 81 82
750 .rr a| b| c| d| e| f| g| h| i| j| k| l| m|
751 .rr a- b- c- d- e- f- g- h- i- j- k- l- m-
753 .so \*(sd/tmac.skeep
754 .de EQ \"equation, breakout and display
755 .nr EF \\n(.u
756 .rm EE
757 .nr LE 1 \" 1 is center
758 .ds EL \\$1
759 .if "\\$1"L" \{\
760 . ds EL \\$2
761 . nr LE 0\}
762 .if "\\$1"C" .ds EL \\$2
763 .if "\\$1"R" \{\
764 . ds EL \\$2 \" 2 is right adjust
765 . nr LE 2\}
766 .if "\\$1"I" \{\
767 . nr LE 0
768 . if "\\$3"" .ds EE \\h'|10n'
769 . el .ds EE \\h'\\$3'
770 . ds EL \\$2\}
771 .if \\n(YE .nf
772 .di EZ
774 .de EN \" end of a displayed equation
777 .rm EZ
778 .nr ZN \\n(dn
779 .if \\n(ZN .if !\\n(YE .LP
780 .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1
781 .if \\n(ZN \{\
782 . ie "\\n(.z"" \{\
783 . if t .if !\\n(nl=\\n(PE .sp .5
784 . if n .if !\\n(nl=\\n(PE .sp 1\}
785 . el \{\
786 . if t .if !\\n(.d=\\n(PE .sp .5
787 . if n .if !\\n(.d=\\n(PE .sp 1\}\}
789 .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup
790 .if \\n(MK \{\
791 . if \\n(LE=1 .ds EE \\h'|10n'
792 . nr LE 0\}
793 'lt \\n(.lu
794 .if !\\n(EP .if \\n(ZN \{\
795 . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
796 . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts
797 . if !\\n(LE \{\
798 . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
799 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
800 . if \\n(BD \!\\*(10\\t\\*(EL\}\}
801 .if \\n(EP .if \\n(ZN \{\
802 . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
803 . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts
804 . if !\\n(LE \{\
805 . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
806 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
807 . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\}
808 'lt \\n(LLu
809 'pc %
810 .if \\n(YE .if \\n(EF .fi
811 .if t .if \\n(ZN .sp .5
812 .if n .if \\n(ZN .sp
813 .ie "\\n(.z"" .nr PE \\n(nl
814 .el .nr PE \\n(.d
816 .de PS \" start picture
817 . \" $1 is height, $2 is width, both in inches
818 .if \\$1>0 .sp .35
819 .ie \\$1>0 .nr $1 \\$1
820 .el .nr $1 0
821 .in (\\n(.lu-\\$2)/2u
822 .ne \\$1
824 .de PE \" end of picture
826 .if \\n($1>0 .sp .65
828 . \" .P1/.P2 macros for programs
830 .nr XP 1 \" delta point size for program
831 .nr XV 1p \" delta vertical for programs
832 .nr XT 8 \" delta tab stop for programs
833 .nr DV .5v \" space before start of program
835 .de P1
837 .nr v \\n(.v
838 .nr i 2m
839 .if \\n(.$ .nr i \\$1
840 .di p1
841 .in \\niu
843 .ps -\\n(XP
844 .vs -\\n(XVu
845 .ft CW
846 .nr t \\n(XT*\\w'x'u
847 .ta 1u*\\ntu 2u*\\ntu 3u*\\ntu 4u*\\ntu 5u*\\ntu 6u*\\ntu 7u*\\ntu 8u*\\ntu 9u*\\ntu 10u*\\ntu 11u*\\ntu 12u*\\ntu 13u*\\ntu 14u*\\ntu
850 .de P2
852 .ps \\n(PS
853 .vs \\n(VSp
854 .vs \\nvu
855 .ft 1
856 .in 0
859 .sp \\n(DVu
861 .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu
864 .sp \\n(DVu
868 .de ME
869 .nr SJ \\n(.j
870 .if \\n(LL .nr LT \\n(LL
871 .nr YE 1
872 .if !\\n(PO .nr PO \\n(.o
873 .if \\n(mo-0 .ds MO January
874 .if \\n(mo-1 .ds MO February
875 .if \\n(mo-2 .ds MO March
876 .if \\n(mo-3 .ds MO April
877 .if \\n(mo-4 .ds MO May
878 .if \\n(mo-5 .ds MO June
879 .if \\n(mo-6 .ds MO July
880 .if \\n(mo-7 .ds MO August
881 .if \\n(mo-8 .ds MO September
882 .if \\n(mo-9 .ds MO October
883 .if \\n(mo-10 .ds MO November
884 .if \\n(mo-11 .ds MO December
885 .if \\n(dw-0 .ds DW Sunday
886 .if \\n(dw-1 .ds DW Monday
887 .if \\n(dw-2 .ds DW Tuesday
888 .if \\n(dw-3 .ds DW Wednesday
889 .if \\n(dw-4 .ds DW Thursday
890 .if \\n(dw-5 .ds DW Friday
891 .if \\n(dw-6 .ds DW Saturday
892 .nr yP (\\n(yr+2000)/100)
893 .nr yD (\\n(yr%100
894 .af yD 01
895 .if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
896 .if "\\*(CF"" .if n .ds CF "\\*(DY
898 . \"EM end up macro - process left over keep-release
899 .de EM
901 .if \\n(AJ .tm Syntax error: no .AE
902 .if \\n(IF .ab Missing .FE somewhere
903 .if t .if \\n(TB=0 .wh -1p CM
904 .if \\n(TB \{\&\c
905 ' bp
906 . ch CM 160\}
908 . \"NP new page
909 .de NP
910 .rr PE
911 .if \\n(FM+\\n(HM>=\\n(.p \{\
912 . tm Margins bigger than page length.
913 . ab
914 . ex\}
915 .if t .CM
916 .if !\\n(HM .nr HM 1i
917 'sp \\n(HMu/2u
918 .ev 1
919 .nr PX \\n(.s
920 .nr PF \\n(.f
921 .nr PV \\n(.v
922 .lt \\n(LTu
923 .ps \\n(PS
924 .vs \\n(PS+2
925 .ft 1
926 .if \\n(PO .po \\n(POu
928 .ps \\n(PX
929 .vs \\n(PVu
930 .ft \\n(PF
932 'sp |\\n(HMu
933 .nr XX 0 1
934 .nr YY 0-\\n(FMu
935 .ch FO 16i
936 .ch FX 17i
937 .ch FO \\n(.pu-\\n(FMu
938 .ch FX \\n(.pu-\\n(FMu
939 .if \\n(MF .FV
940 .nr MF 0
943 .ev 1
944 .if !\\n(TD .if \\n(TC<5 .XK
945 .nr TC 0
948 .nr TQ \\n(.i
949 .nr TK \\n(.u
950 .if \\n(IT \{\
951 . in 0
952 . nf
953 . TT
954 . in \\n(TQu
955 . if \\n(TK .fi\
957 .mk #T
958 ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
960 .de XK
961 .nr TD 1
963 .ls 1
964 .in 0
965 .rn KJ KL
967 .rm KL
968 .if "\\n(.z"KJ" .di
969 .nr TB 0
970 .if "\\n(.z"KJ" .nr TB 1
975 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
976 . if \\n(NX>1 .RC
977 . if \\n(NX<1 .bp\}
978 .nr TD 0
980 .de KD
981 .nr KM 0
982 .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
983 . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
984 . sp 15i\}
985 .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
986 .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
987 .if \\n(KM>0 \!.KD \\$1 \\$2
988 .nr KR \\n(.t
989 .if \\n(nl<=\\n(HM .nr KR 32767
990 .if \\n(KM=0 \{\
991 . if \\n(KR<\\$1 \{\
992 . di KJ
993 . nr KM 1\}
994 . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
996 .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
998 .de PT
999 .lt \\n(LLu
1000 .pc %
1001 .nr PN \\n%
1002 .if \\n%-1 .tl \a\\*(LH\a\\*(CH\a\\*(RH\a
1003 .lt \\n(.lu
1005 . \"FO - footer of page
1006 .de FO
1007 .rn FO FZ
1008 .if \\n(IT>0 \{\
1009 . nr T. 1
1010 . if \\n(FC=0 .T# 1
1011 . br\}
1012 .nr FC +1
1013 .if \\n(NX<2 .nr WF 0
1014 .nr dn 0
1015 .if \\n(FC<=1 .if \\n(XX .XF
1016 .rn FZ FO
1017 .nr MF 0
1018 .if \\n(dn .nr MF 1
1019 .if !\\n(WF \{\
1020 . nr YY 0-\\n(FMu
1021 . ch FO \\n(YYu\}
1022 .if !\\n(dn .nr WF 0
1023 .if \\n(FC<=1 .if \\n(XX=0 \{\
1024 . if \\n(NX>1 .RC
1025 . if \\n(NX<1 'bp\}
1026 .nr FC -1
1027 .if \\n(ML>0 .ne \\n(MLu
1029 . \"2C - begin double column
1030 .de 2C
1031 .MC \" default MC is double column
1033 .de MC \" multiple columns- arg is line length
1034 .nr L1 \\n(LL*7/15
1035 .if \\n(CW>=0 .nr L1 \\n(CWu
1036 .if \\n(.$ .nr L1 \\$1n
1037 .if \\n(GW>=0 .nr GW \\n(GWu
1038 .if \\n(.$>1 .nr GW \\$2n
1039 .nr NQ \\n(LL/\\n(L1
1040 .if \\n(NQ<1 .nr NQ 1
1041 .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
1042 .if !\\n(1T \{\
1043 . BG
1044 . if n .sp 4
1045 . if t .sp 2\}
1046 .if \\n(NX=0 .nr NX 1
1047 .if !\\n(NX=\\n(NQ \{\
1048 . RT
1049 . if \\n(NX>1 .bp
1050 . mk
1051 . nr NC 1
1052 . po \\n(POu\}
1053 .if \\n(NQ>1 .hy \\n(HY
1054 .nr NX \\n(NQ
1055 .if \\n(NX>1 .nr CW \\n(L1
1056 .ll \\n(L1u
1057 .nr FL \\n(L1u*11u/12u
1058 .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
1059 .nr RO \\n(L1+\\n(GW
1062 .de RC
1063 .ie \\n(NC>=\\n(NX .C2
1064 .el .C1
1066 .de C1
1068 .po +\\n(ROu
1069 .nr NC +1
1070 .if \\n(NC>\\n(NX .nr NC 1
1071 .nr XX 0 1
1072 .nr YY 0-\\n(FMu
1073 .if \\n(MF .FV
1074 .ch FX \\n(.pu-\\n(FMu
1075 .ev 1
1076 .if \\n(TB .XK
1077 .nr TC 0
1079 .nr TQ \\n(.i
1080 .if \\n(IT \{\
1081 . in 0
1082 . TT
1083 . in \\n(TQu\}
1084 .mk #T
1087 .de C2
1088 .po \\n(POu
1089 .nr NC +1
1090 .if \\n(NC>\\n(NX .nr NC 1
1093 . \"1C - return to single column format
1094 .de 1C
1095 .MC \\n(LLu
1096 .hy \\n(HY
1098 .de MH
1099 Bell Laboratories
1100 Murray Hill, New Jersey 07974
1102 .de PY
1103 Bell Laboratories
1104 Piscataway, New Jersey 08854
1106 .de AW
1107 Bell Laboratories
1108 2018 Antwerp, Belgium
1110 .de BT
1111 .nr PX \\n(.s
1112 .nr PF \\n(.f
1113 .ft 1
1114 .ps \\n(PS
1115 'lt \\n(LTu
1116 .po \\n(POu
1117 .if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
1118 .ft \\n(PF
1119 .ps \\n(PX
1121 . \"PP - paragraph
1122 .de PP
1124 .if \\n(1T .sp \\n(PDu
1125 .ne 2v
1126 .ti +\\n(PIu
1128 . \"SH - (unnumbered) section heading
1129 .de SH
1130 .ti \\n(.iu
1132 .ie \\n(1T .sp 1
1133 .el .BG
1135 .ne 4
1136 .ft 3
1137 .if n .ul 1000
1139 . \"NH - numbered heading
1140 .de N{
1142 .ie \\n(1T .sp 1
1143 .el .BG
1145 .ne 4
1146 .ft 3
1147 .if n .ul 1000
1148 .nr NS \\$1
1149 .if !\\n(.$ .nr NS 1
1150 .if !\\n(NS .nr NS 1
1151 .nr H\\n(NS +1
1152 .if !\\n(NS-4 .nr H5 0
1153 .if !\\n(NS-3 .nr H4 0
1154 .if !\\n(NS-2 .nr H3 0
1155 .if !\\n(NS-1 .nr H2 0
1156 .if !\\$1 .if \\n(.$ .nr H1 1
1157 .ds SN \\n(H1.
1158 .ti \\n(.iu
1159 .if \\n(NS-1 .as SN \\n(H2.
1160 .if \\n(NS-2 .as SN \\n(H3.
1161 .if \\n(NS-3 .as SN \\n(H4.
1162 .if \\n(NS-4 .as SN \\n(H5.
1164 .de NH
1165 .N{ \\$1
1166 \\*(SN
1168 . \"BG - begin, execute at first PP
1169 .de BG
1172 .rm ME
1174 .ce 0
1175 .nr KI 0
1176 .hy \\n(HY
1177 .nr 1T 1
1178 .nr CS 0
1179 .S\\n(ST
1180 .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
1181 .de TL
1182 .ft 3
1184 .if n .ul 100
1185 .ce 100
1186 .ps +2
1187 \\..
1188 .de AU
1189 .ft 2
1190 .if n .ul 0
1191 .ce 100
1194 \\..
1195 .de AI
1196 .ft 1
1197 .ce 100
1198 .if n .ul 0
1199 .if n .sp
1200 .if t .sp .5
1202 \\..
1204 .rm RA
1205 .rn FJ FS
1206 .rn FK FE
1208 .ev 1
1209 .ps \\n(PS-2
1210 .vs \\n(.s+2p
1212 .if !\\n(KG .nr FP 0
1213 .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
1214 .nr KG 0
1215 .if \\n(FP \{\
1216 . FS
1217 . FG
1218 . FE\}
1220 .if n .if \\n(TV .sp 2
1221 .if t .if \\n(TV .sp 1
1223 .ll \\n(LLu
1224 .ev 1
1225 .if !\\n(FL .nr FL \\n(LLu*11u/12u
1226 .ll \\n(FLu
1229 .de RA \"redefine abstract macros
1230 .de AB
1232 .if !\\n(1T .BG
1233 .ce 1
1234 .sp 1
1235 .ie \\n(.$ \{\
1236 . if !"\\$1"-" .if !"\\$1"no" \{\
1237 \\$1
1238 .sp\}\}
1239 .el \{\
1240 ABSTRACT
1241 .sp\}
1242 .sp 1
1243 .nr AJ 1
1244 .in +\\n(.lu/12u
1245 .ll -\\n(.lu/12u
1247 \\..
1248 .de AE
1249 .nr AJ 0
1251 .in 0
1252 .ll \\n(LLu
1253 .ie \\n(VS>=41 .vs \\n(VSu
1254 .el .vs \\n(VSp
1255 \\..
1257 . \"IP - indented paragraph
1258 .de IP
1260 .if !\\n(IP .nr IP +1
1261 .ie \\n(ID>0 .sp \\n(IDu
1262 .el .sp \\n(PDu
1263 .nr IU \\n(IR+1
1264 .if \\n(.$>1 .nr I\\n(IU \\n(I\\n(IRu+\\$2n
1265 .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
1266 .in \\n(I\\n(IUu
1267 .nr TY \\n(TZ-\\n(.i
1268 .nr JQ \\n(I\\n(IU-\\n(I\\n(IR
1269 .ta \\n(JQu \\n(TYuR
1270 .if \\n(.$ \{\
1271 .ti \\n(I\\n(IRu
1272 \&\\$1\t\c
1275 . \"LP - left aligned (block) paragraph
1276 .de LP
1277 .ti \\n(.iu
1279 .if \\n(1T .sp \\n(PDu
1281 .de QP
1282 .ti \\n(.iu
1284 .if \\n(1T .sp \\n(PDu
1285 .ne 1.1
1286 .nr QP 1
1287 .in +\\n(QIu
1288 .ll -\\n(QIu
1289 .ti \\n(.iu
1291 . \"IE - synonym for .LP
1292 .de IE
1295 . \"RS - prepare for double indenting
1296 .de RS
1297 .nr IS \\n(IP
1299 .nr IP \\n(IS
1300 .nr IR \\n(IU
1301 .nr IU +1
1302 .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
1303 .in \\n(I\\n(IRu
1304 .nr TY \\n(TZ-\\n(.i
1305 .ta \\n(TYuR
1307 . \"RE - retreat to the left
1308 .de RE
1309 .nr IS \\n(IP
1311 .nr IP \\n(IS
1312 .nr IU \\n(IR
1313 .if \\n(IR>0 .nr IR -1
1314 .in \\n(I\\n(IRu
1316 .de TC
1317 .nr TZ \\n(.lu
1318 .if \\n(.$ .nr TZ \\$1n
1319 .ta \\n(TZuR
1321 .de TD
1323 .nr TZ 0
1325 . \"CM - cut mark
1326 .de CM
1327 .po 0
1328 .lt 7.6i
1329 .ft 1
1330 .ps 10
1331 .vs 4p
1332 .if "\\*(.T"aps" .tl '--''--'
1339 . \" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before
1340 .de OF \" this is completely WRONG if any argument contains "'s
1341 .nr PQ \\n(.f
1342 .hy 0
1343 .if t .if "\\$3"" .ft \\$1
1344 .if t .if !"\\$3"" \{\
1345 \&\\$5\\$2\\$3\\f\\n(PQ\\$4
1346 .hy \\n(HY\}
1347 .if n \{\
1348 . if \\n(.$=5 \&\\$5
1349 . ie "\\$3"" .ul 1000
1350 . el .ul 1
1351 . if \\n(.$=3 \&\\$3
1352 . if \\n(.$>3 \&\\$3\\c
1353 . if \\n(.$>3 \&\\$4
1354 . hy \\n(HY\}
1356 . \"B - bold font
1357 .de B
1358 .OF 3 \\f3 "\\$1" "\\$2" "\\$3"
1360 .de BI \" bold italic -- only on 202
1361 .OF 4 \\f4 "\\$1" "\\$2" "\\$3"
1363 . \"R - Roman font
1364 .de R
1365 .nr PQ \\n(.f
1366 .ft 1
1367 .ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2
1368 .el .if n .ul 0
1370 . \"I - italic font
1371 .de I
1372 .OF 2 \\f2 "\\$1" "\\$2" "\\$3"
1374 . \"CW - constant width font
1375 .de CW
1376 .nr PQ \\n(.f
1377 .if t .if \\n(.$>0 \%\&\\$3\f(CW\\$1\f\\n(PQ\&\\$2
1378 .if t .if \\n(.$=0 .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1379 .if n .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1381 . \"TA - tabs set in ens or chars
1382 .de TA
1383 .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
1385 . \"SM - make smaller size
1386 .de SM
1387 .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2
1388 .el .ps -2
1390 . \"LG - make larger size
1391 .de LG
1392 .ps +2
1394 . \"NL - return to normal size
1395 .de NL
1396 .ps \\n(PS
1398 . \"DA - force date; ND - no date or new date.
1399 .de DA
1400 .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
1401 .ds CF \\*(DY
1403 .de ND
1405 .rm ME
1406 .ds DY \\$1 \\$2 \\$3 \\$4
1407 .rm CF
1409 .de FN
1412 . \"FS - begin footnote
1413 .de FJ
1414 'ce 0
1415 .nr IA \\n(IP
1416 .nr IB \\n(.i
1417 .ev 1
1418 .ll \\n(FLu
1419 .da FF
1421 .if \\n(IF \{\
1422 . tm Footnote within footnote-illegal.
1423 . ab\}
1424 .nr IF 1
1425 .if !\\n+(XX-1 .FA
1427 . \"FE - footnote end
1428 .de FK
1430 .in 0
1431 .nr IF 0
1434 .if !\\n(XX-1 .nr dn +\\n(.v
1435 .nr YY -\\n(dn
1436 .if !\\n(NX .nr WF 1
1437 .if \\n(dl>\\n(CW .nr WF 1
1438 .ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
1439 .el \{\
1440 . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
1441 . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
1442 . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\}
1443 .nr IP \\n(IA
1444 'in \\n(IBu
1446 .\" First page footer.
1447 .de FS
1448 .ev 1
1450 .ll \\n(FLu
1451 .da FG
1453 .de FE
1456 .nr FP \\n(dn
1457 .if !\\n(1T .nr KG 1 \"not in abstract repeat next page.
1458 .if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
1461 .de FA
1462 .if n __________________________
1463 .if t \l'1i'
1466 .de FV
1469 .ls 1
1475 .de FX
1476 .if \\n(XX \{\
1477 . di FY
1478 . ns\}
1480 .de XF
1481 .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
1482 .ev 1
1484 .ls 1
1486 .rm FF
1487 .nr XX 0 1
1494 .de FL
1495 .ev 1
1496 .nr FL \\$1n
1497 .ll \\$1
1500 .de HO
1501 Bell Laboratories
1502 Holmdel, New Jersey 07733
1504 .de WH
1505 Bell Laboratories
1506 Whippany, New Jersey 07981
1508 .de IH
1509 Bell Laboratories
1510 Naperville, Illinois 60540
1512 .de UL \" underline argument, don't italicize
1513 .ie t \\$1\l'|0\(ul'\\$2
1514 .el .I "\\$1" "\\$2"
1516 .de UX
1517 .ie \\n(GA \\$2\s-1UNIX\s0\\$1
1518 .el \{\
1519 .ie n \{\\$2UNIX\\$1*
1521 * UNIX is a
1522 .ie \\$3=1 Footnote
1523 .el registered trademark
1524 of X/Open.
1525 .FE\}
1526 .el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP
1527 .nr GA 1\}
1529 .de US
1532 operating system\\$1
1534 .de QS
1537 .in +\\n(QIu
1538 .ll -\\n(QIu
1540 .de QE
1542 .ll +\\n(QIu
1543 .in -\\n(QIu
1546 .de B1 \" begin boxed stuff
1548 .di BB
1549 .nr BC 0
1550 .if "\\$1"C" .nr BC 1
1551 .nr BE 1
1553 .de B2 \" end boxed stuff
1555 .nr BI 1n
1556 .if \\n(.$>0 .nr BI \\$1n
1558 .nr BE 0
1559 .nr BW \\n(dl
1560 .nr BH \\n(dn
1561 .ne \\n(BHu+\\n(.Vu
1562 .nr BQ \\n(.j
1564 .ti 0
1565 .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
1566 .in +\\n(BIu
1567 .ls 1
1570 .in -\\n(BIu
1571 .nr BW +2*\\n(BI
1572 .sp -1
1573 \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
1574 .nr BW -2*\\n(BI
1575 .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
1576 .if \\n(BQ .fi
1579 .de AT
1582 .ne 2
1583 Attached:
1585 .de CT
1588 .ne 2
1589 .ie \\n(.$ Copy to \\$1:
1590 .el Copy to:
1592 .de BX
1593 .ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
1594 .el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
1597 .rm IZ
1598 .de [
1601 .de ]