1 .\" From mel Sat Sep 16 14:46:23 1978
2 .\" the GE macro places figures.
3 .\" G8 is zero until the figure is placed
4 .\" G5 is non-zero if there was an argument
5 .\" on GS which specifies
10 .\" the macros HN - top next pge
11 .\" HT - top this page
12 .\" HB - bottom this page
13 .\" HH : here on this page
14 .\" The current algorithm is: if it does not fit,
15 .\" top next page; otherwise if no arg to GS
16 .\" put it at top or bottom of this page, whichever
17 .\" is closer (there is a threshold of half the figure
18 .\" size or something)
19 .\" if arg to GS is given it governs.
21 .de Vx \" volume, number, Month, year, page 1, page n, top title(s) in one blast (bwk)
22 .\" also needs DY for date received as 31 July 1978
26 .if "\\$3"January" .ds MO JANUARY
27 .if "\\$3"February" .ds MO FEBRUARY
28 .if "\\$3"March" .ds MO MARCH
29 .if "\\$3"April" .ds MO APRIL
30 .if "\\$3"May" .ds MO MAY
31 .if "\\$3"June" .ds MO JUNE
32 .if "\\$3"July" .ds MO JULY
33 .if "\\$3"August" .ds MO AUGUST
34 .if "\\$3"September" .ds MO SEPTEMBER
35 .if "\\$3"October" .ds MO OCTOBER
36 .if "\\$3"November" .ds MO NOVEMBER
37 .if "\\$3"December" .ds MO DECEMBER
46 .de PS \" start picture (bwk)
47 . \" $1 is height, $2 is width in units
49 .in (\\n(.lu-\\$2u)/2u
52 .de PE \" end of picture
65 .ds Co \s12\v'.2m'\(co\v'-.2m'\s0 20\\n(yr by John Wiley & Sons, Ltd.
70 SOFTWARE\(emPRACTICE AND EXPERIENCE, VOL. \\*(VN(\\*(NU), \\n(P<-\\n(P> (\\*(MO 20\\n(yr)
79 .if \\n(PS=0 .nr PS 10
80 .if \\n(VS=0 .nr VS 12
81 .if \\n(PL=0 .nr PL 10.25i
82 .if \\n(LP=0 .nr LP 8i
83 .if \\n(LL=0 .nr LL 5.6i
84 .if \\n(LS=0 .nr LS 0.9v
85 .if \\n(JS=0 .nr JS 0.5v
92 .nr L4 \\n(LPu-\\n(LSu
106 .if \\n(.d=0 .nr TP 1
107 .if \\n(.t<4v .nr TO 1
145 .if \\n(.n>\\n(.l .tm Too many authors on a line
174 .if \\n(.i>0 .SP \\n(JSu
176 .if \\n(FR=0 .ps \\n(PS
183 .if \\n(.i>0 .SP \\n(JSu
185 .if \\n(FR=0 .ps \\n(PS
191 .if \\n(FR=0 .ps \\n(PS
200 .\".if \\n(.d>0 .if \\n(.d<1.5v .if \\n(HI=0 .tm Top widow page \\n% (JP)
201 .if \\n(FR=0 .ps \\n(PS
203 .if \\n(.i=0 .SP \\n(JSu
206 .if \\n(.f=1 \h'0.3i-\w"(\f2\\$1\|\fP)"u'(\f2\\$1\|\fP)\h'|.4i'\c
207 .if \\n(.f=2 \h'0.3i-\w"(\f2\\$1\^\fP)"u'(\f2\\$1\^\fP)\h'|.4i'\c
216 .if \\n(HI=0 .if \\n(.d>0 .SP 1.25v
217 .if \\n(HI>0 .if \\n(.d>0 .if \\n(FR>0 .sp 1
238 .if \\n(P1<0 .nr Q1 0
239 .if \\n(EX=1 .nr Q1 0 \" don't pad on last page of article
242 .if \\n(G1>0 .if \\n(EX=0 .sp \\n(P1u
243 .if \\n(G1>0 .if \\n(EX=0 .nr P1 0
245 .if \\n(G1>0 .nr Q1 0 \" if top figure, pad below
246 .if \\n(G2>0 .nr Q1 0 \" if bottom figure pad above
247 .if \\nB .tm Page \\n%: pad \\n(P3 space \\n(Q1 places, top \\n(G1, bot \\n(G2
250 .if \\n(G2>0 .if \\n(P1>0 .sp \\n(P1u
251 .if \\n(G2>0 .nr P1 0
255 .if \\n(EX>0 .if \\n(P1>0 .sp \\n(P1u
256 .if \\nB .tm Bottom of page \\n% at \\n(nl
268 .nr L4 \\n(LPu-\\n(LSu
269 .if \\n(G1>(\\n(L4-1i) .FB \" full page figure
273 .ie \\n(LX<=26 .af LX a
282 .if \\nB .tm Full page figure on page \\n%
295 .de CP \" cut text on page arg1 by arg2
299 .if \\n(C1>52 .tm Page>52, gok what happens.
300 .ie \\n(C1<=26 .af C1 a
303 .if \\n(C2>0 .nr C\\n(C1 \\n(C2
306 .if \\n(.t<\\$1 .\\*(DT
307 .if \\n(.d>0 .ST \\$1
316 .if \\n(Q1>0 .nr P4 3*((\\n(P1/3)/\\n(Q1)
318 .if \\n(P4>1v .tm Padding of \\n(P4u exceeds one space page \\n%
322 .de CL \" change length: add/sub lines this page
328 . \"argument positions: 1 top here, 2 bottom here, 3 next page, 4 right here
329 .if \\n(.$>0 .if \\$1=4 .br
333 .if \n(KK=0 .ps \\n(PS-2
334 .if \n(KK=0 .vs \\n(VSp-4p
336 .if \\n(.$>0 .nr G5 \\$1
345 .nr G8 0 \" not placed
346 .if \\n(KG=0 .if \\n(G8=0 .if \\n(G0>\\n(.t .HN
347 .if \\n(G8=0 .if \\n(G5=0 .if \\n(G0>2*\\n(.d .if \\n(G1=0 .HT
348 .if \\n(G8=0 .if \\n(G5=0 .if 3*\\n(G0>2*\\n(.t .if \\n(G2=0 .HB
349 .if \\n(G8=0 .if \\n(G5=0 .HH
350 .if \\n(G8=0 .if \\n(G5=1 .HT
351 .if \\n(G8=0 .if \\n(G5=2 .HB
352 .if \\n(G8=0 .if \\n(G5=3 .HN
353 .if \\n(G8=0 .if \\n(G5=4 .HH
382 .nr KG 0 \" KG on if not a floating display
385 .if \\n(G3>0 .tm Two figures pushed to next page.
415 .if \\n(G0>\\n(.t .if \\n(KK>0 .sp 10i
422 .if \\n(FR=0 .ps \\n(PS
427 .if \\n(.$ \\$1\ \ \c
441 .if \\n(Pf>0 .if o .tl ""\s7\\*(Tr\s0"\s10\\n%"
442 .if \\n(Pf>0 .if e .tl "\s10\\n%"\s7\\*(Tl\s0""
455 .\" price = 1.00 if <= 10 pages, otherwise .10/page.
456 .nr p1 (1+\\n(P>-\\n(P<)*10
457 .if \\n(p1<100 .nr p1 100
461 .if \\n(Pf=0 .tl "\s90038-0644/\\n(yr/\\n(NU\\n(VN-\\n(P<$0\\*(pr""\f2Received \\*(DY\f1\s0"
462 .if \\n(Pf=0 \s9\\*(Co\s0
468 .de EQ \"equation, breakout and display
470 .ds EE \\h'.5i' \" default for indent is .5 inch
471 .nr LE 1 \" 1 is center, 0 is I or L
473 .if "\\$1"L" .ds EL \\$2
474 .if "\\$1"L" .nr LE 0
475 .if "\\$1"C" .ds EL \\$2
476 .if "\\$1"I" .nr LE 0
477 .if "\\$1"I" .ds EE \\h'.5i'
478 .if "\\$1"I" .if !"\\$3"" .ds EE \\h'\\$3'
479 .if "\\$1"I" .ds EL \\$2
483 .\" -----------------------------
484 .de EN \" end of a displayed equation
485 .if !"\\n(.z"EZ" .tm EN not preceded by EQ, disaster follows.
492 .if "\\*(10"" .nr ZN 0
493 .if \\n(ZN=0 .if !"\\*(EL"" .nr ZN 1
496 .if \\n(ZN>0 .if !\\n(.d=\\n(PE .SP 0.5
498 .if \\n(BD>0 .nr LE 0 \" can't mean centering in this case.
499 .if \\n(ZN>0 .if \\n(LE>0 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
500 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD=0 .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
501 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 \!\\*(10\\\\t\\*(EL
502 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 .if \\n(BD<\\w'\\*(10' .nr BD \\w'\\*(10'
506 .if \\n(ZN>0 .if \\n(EF>0 .fi
513 .if \\n(.$>0 \\$3\f3\\$1\fP\\$2
517 .if \\n(.$>0 \\$3\f2\\$1\fP\^\\$2
545 .\".if \\n(.d>0 .if \\n(.d<1.5v .if \\n(HI=0 .tm Top widow page \\n%
548 .if "\\n(.z"PA" .tm Warning: are you missing a .P2?
553 .if \\n(HI .if \\n(.d<=1.5v .if \\n(G1=0 .sp .5v
557 . \"ACCENTS say \*'e or \*`e to get e acute or e grave
558 .ds ' \h'\w'e'u*4/10'\z\(aa\h'-\w'e'u*4/10'
559 .ds ` \h'\w'e'u*4/10'\z\(ga\h'-\w'e'u*4/10'
560 . \"UMLAUT \*:u, etc.
561 .ds : \v'-0.6m'\h'(1u-(\\n(.fu%2u))*0.13m+0.06m'\z.\h'0.2m'\z.\h'-((1u-(\\n(.fu%2u))*0.13m+0.26m)'\v'0.6m'
562 . \"TILDE and CIRCUMFLEX
563 .ds ^ \\k:\h'-\\n(.fu+1u/2u*2u+\\n(.fu-1u*0.13m+0.06m'\z^\h'|\\n:u'
564 .ds ~ \\k:\h'-\\n(.fu+1u/2u*2u+\\n(.fu-1u*0.13m+0.06m'\z~\h'|\\n:u'
566 .ds > \v'-.1m'\s-4---\z-\v'.1m'\h'-.3m'\z>\s+4
567 . \"czech symbol as in kucera & francis
568 .ds C \h'.1m'\v'-0.6m'\s6\zv\s0\v'0.6m'\h'-.1m'
570 . \"NH - numbered heading
577 .if \\n(Nh=0 .SP 1.2v
579 .if \\n(HI=0 .if \\n(.d>0 .SP 1.5v
580 .if \\n(HI>0 .if \\n(.d>0 .if \\n(FR>0 .sp 1
586 . \"Ch - centered, unnumbered heading
594 . \"Lh - left-justified, unnumbered heading
604 \\n(H1.\\n(H2.\\n(H3.\\n(H4 \\$1
608 .ie \\n(GA>0 \\$2\s-2UNIX\s0\\$1
610 .if n \\$2UNIX\(dg\\$1
611 .if t \\$2\s-2UNIX\s0\(dg\\$1
613 \(dg \s-2UNIX\s0 is a registered trademark of X/Open.
617 .de Ux \" cap-small cap, not used
618 .\" .ie \\n(GA>0 \\$2U\s-2NIX\s0\\$1
619 .ie \\n(GA>0 \\$2\s-2UNIX\s0\\$1
622 .\".if t \\$2U\s-2NIX\s0*\\$1
623 .if t \\$2\s-2UNIX\s0*\\$1
625 * \s-2UNIX\s0 is a registered trademark of X/Open.
634 .so /usr/lib/tmac/tmac.sdisp
642 \&\\$3\f3\\$1\fP\&\\$2
645 \&\\$3\s-2\\$1\\s+2\&\\$2
647 .de Uc \" cap-small cap, not used
648 .\" \&\\$4\\$1\s-2\\$2\s+2\&\\$3
649 \&\\$4\s-2\\$1\\$2\s+2\&\\$3
653 \&\\$3\f2\\$1\fP\|\&\\$2
656 \&\\$3\\f3\s-2\\$1\s+2\f1\&\\$2
664 .if n .ta 5 10 15 20 25 30 35 40 45 50 55 60
665 .if t .ta .4i .8i 1.2i 1.6i 2i 2.4i 2.8i 3.2i 3.6i 4i 4.4i 4.8i 5.2i 5.6i
666 .if t .tr -\-|\(bv'\(fm*\(**
684 .if \\n(dl>(\\n(.l-\\n(.i) .tm Page \\n% program fragment too wide
685 .nr PB \\n(.l-\\n(dl-\\n(.i-2n
686 .if \\n(PB<0 .nr PB 0
688 . \" indent; don't center
702 \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
707 \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
716 \&\\$3\\f3\\$1\f\\n(NQ\\$2
719 .\".if \\n(.d>0 .if \\n(.d<1.5v .tm Top widow page \\n%
720 .if \\$1>5 .tm Bad arg to ][
725 .if t .ds [. \s-2\v'-.4m'\f1
727 .if t .ds .] \v'.4m'\s+2\fP
742 .if !"\\*([A"" \\*([A,
743 .if !"\\*([T"" \\f2\\*([T\\f1\c
744 .if !"\\*([T"" .if !"\\*([O"" ,\
745 .ie !"\\*([O"" \\*([O
746 .el .if !"\\*([T"" \&.
747 .if !"\\*([D"" \\*([D.
751 .de [1 \" journal article
752 .if "\\*([Q"This issue" .rm [V [N [D
753 .if !"\\*([R"" .rm [C
755 .if !"\\*([A"" \\*([A,
756 .if !"\\*([T"" \\*([o\\*([T,\\*([c
758 .if "\\*([V"" .if !"\\*([C"" \\*([J,
759 .if "\\*([V"" .if "\\*([C"" .if !"\\*([Q"This issue" \\*([J
760 .if "\\*([V"" .if "\\*([C"" .if "\\*([Q"This issue" \\*([J,
761 .if !"\\*([V"" \\*([J,
763 .if !"\\*([V"" \{.if n Vol.\&
765 .if !"\\*([N"" \\*([N,
766 .if !"\\*([C"" \\*([C
767 .if !"\\*([P"" \\*([P
768 .if !"\\*([D"" (\\*([D).
774 .if !"\\*([A"" \\*([A,
777 .if !"\\*([D"" \\*([D\c
779 .if !"\\*([G"" Gov't. ordering no. \\*([G
780 .if !"\\*([O"" \\*([O
785 .if "\\*([I"Bell Laboratories" .rm [C
787 \\*([A, \\*([o\\*([T,\\*([c
789 .if !"\\*([G"" \& (\\*([G)\c
790 .if !"\\*([I"" , \\*([I\c
791 .if !"\\*([C"" , \\*([C\c
792 .if !"\\*([D"" \\0(\\*([D)\c
794 .if !"\\*([O"" \\*([O
798 .de [3 \" article in book
800 \\*([A, \\*([o\\*([T,\\*([c
802 .if !"\\*([E"" , ed. \\*([E\c
804 .if !"\\*([I"" \ \\*([I,\c
805 .if !"\\*([P"" \ \\*([P
806 .if !"\\*([D"" \ (\\*([D).
820 .nr PI \w'\s8\0\0.\0'
826 .de Fx \" fix date to discard all but year
833 .rm [V [P [A [T [N [C [B [O [R [I [E [Q [D [Q
845 .if !"\\$2"" .nr ZB \\$2n
859 .if \\n(FR=0 .ps \\n(PS
863 .if \\n(.$>0 .ti 0-.1i-\h'\w'\\$1'u'
864 .if \\n(.$>0 \\$1\h'|.4i'\c
868 Bell Labs, 600 Mountain Avenue, Murray Hill, New Jersey 07974, U. S. A.
871 Bell Labs, Holmdel, New Jersey 07733, U. S. A.
874 Bell Labs, Whippany, New Jersey 07981, U. S. A.
877 .\" REFER macros .... citations
882 .if \\$1>5 .tm Bad arg to []
886 .if t .ds [. \s-2\v'-.4m'\f1
888 .if t .ds .] \v'.4m'\s+2\fP
893 .\" the next lines deal with the problem of .[1] or [1].
894 .\" refer will write "linexxx\*(<.[1]\*(>.
895 .\" and either "<." or ">." should produce the .;
905 \\*([A, \\f2\\*([T\\f1,
907 .el Bell Laboratories internal memorandum (\\*([D).
914 .if !"\\*([F"" .IP "\\*([F.\0"
915 .if !"\\*([A"" \{.nr [: 1
917 .if !"\\*([T"" \{.if \\n([:>0 ,
920 .if !"\\*([O""\{.if \\n([:>0 ,
922 .if \\n([O>0 .nr [: 0
925 .if !"\\*([D"" \{.if \\n([:>0 ,
929 .if !"\\*([%"" Cited p. \\*([%.
933 .de [1 \" journal article
934 .nr %T 1 \" title font
936 .if !"\\*([R"" .rm [C
937 .if !"\\*([F"" .IP "\\*([F.\0"
938 .if !"\\*([A"" \\*([A,
939 .if !"\\*([T"" \\*([o\\*([T\\*([c,
941 .if !"\\*([C"" , \\*([C\c
942 .if !"\\*([V"" .if n ,\& Vol.\&\c
943 .if !"\\*([V"" ,\& \\f3\\*([V\\f1\c
948 .if !"\\*([I"" .if "\\*([R"" , \\*([I\c
949 .if !"\\*([O"" .if \\n([O=0 , \\*([O\c
950 .if !"\\*([D"" \& (\\*([D)\c
952 .if !"\\*([O"" .if \\n([O>0 \\*([O
953 .if !"\\*([%"" Cited p. \\*([%.
960 .if !"\\*([F"" .IP "\\*([F.\0"
961 .if !"\\*([A"" \\*([A,
962 .if !"\\*([T"" \\f2\\*([T,\\f1
964 .if !"\\*([C"" , \\*([C\c
965 .if !"\\*([D"" \& (\\*([D)\c
967 .if !"\\*([G"" Gov't. ordering no. \\*([G.
968 .if !"\\*([O"" \\*([O
969 .if !"\\*([%"" Cited p. \\*([%.
975 .if !"\\*([F"" .IP "\\*([F.\0"
977 \\*([A, \\*([o\\*([T\\*([c,
979 .if !"\\*([G"" \& (\\*([G)\c
980 .if !"\\*([I"" , \\*([I\c
981 .if !"\\*([C"" , \\*([C\c
982 .if !"\\*([D"" \& (\\*([D)\c
984 .if !"\\*([O"" \\*([O
985 .if !"\\*([%"" Cited p. \\*([%.
989 .de [3 \" article in book
992 .if !"\\*([F"" .IP "\\*([F.\0"
993 .if !"\\*([A"" \\*([A,
994 .if !"\\*([T"" \\*([o\\*([T,\\*([c
995 .if !"\\*([P"" \\*([P
997 .if !"\\*([E"" , ed. \\*([E\c
998 .if !"\\*([I"" , \\*([I\c
999 .if !"\\*([C"" , \\*([C\c
1000 .if !"\\*([D"" \& (\\*([D)\c
1002 .if !"\\*([O"" \\*([O
1003 .if !"\\*([%"" Cited p. \\*([%.
1030 .\"this is never executed and just uses up an end-of-file bug.