shithub: 9intro

ref: 2b99422480d596ebc26921c87c6bb81a07949f3e
dir: /tmac.s/

View raw version
.lg 0
.ds sd /sys/lib/tmac
.\"	RT -  reset everything to normal state
.de RT
.if \\n(CS \{\
.SR 1
.BG\}
.if !\\n(1T .BG
.ce 0
.if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .if !\\n(FT .di
.ul 0
.if \\n(QP \{\
.	ll +\\n(QIu
.	in -\\n(QIu
.	nr QP -1\}
.if \\n(NX<=1 .if \\n(AJ=0 .if \\n(FT=0 .ll \\n(LLu
.if !\\n(IF \{\
.	ps \\n(PS
.	ie \\n(VS>=41 .vs \\n(VSu
.	el .vs \\n(VSp\}
.ie \\n(IP \{\
.	in \\n(I\\n(IRu
.	nr IP -1\}
.el .if !\\n(IR \{\
.	nr I1 \\n(PIu
.	nr I2 0
.	nr I3 0
.	nr I4 0
.	nr I5 0\}
.ft 1
.ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
.hy \\n(HY
.fi
..
.	\"IZ - initialization
.de IZ
.so \\*(sd/tmac.sdisp
.nr TN 0
.em EM
. \"  ACCENTS  say \*'e or \*`e to get e acute or e grave both were 4/10
.ds ' \h'\w'e'u*1/10'\z\(aa\h'-\w'e'u*1/10'
.ds ` \h'\w'e'u*2/10'\z\(ga\h'-\w'e'u*2/10'
. \"  UMLAUT  \*:u, etc.
.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'
.if n .ds : \z"
. \" TILDE and CIRCUMFLEX
.ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u'
.ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u'
.	\" czech v symbol
.ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u'
.		\" cedilla
.ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u'
.so \\*(sd/tmac.srefs
.ch FO \\n(YYu
.if !\\n(FM .nr FM 1i
.nr YY -\\n(FMu
.nr XX 0 1
.nr IP 0
.nr PI 5n
.nr QI 5n
.nr I0 \\n(PIu
.nr PS 10
.nr VS 12
.nr HY 14
.ie n \{\
.	if !\\n(PD .nr PD 1v
.	nr DV 1v\}
.el \{\
.	if !\\n(PD .nr PD 0.3v
.	nr DV .5v\}
.nr ML 3v
.ps \\n(PS
.ie \\n(VS>=41 .vs \\n(VSu
.el .vs \\n(VSp
.nr IR 0
.nr I0 0
.nr I1 \\n(PIu
.nr TB 0
.nr SJ \\n(.j
.nr LL 13cm
.ll \\n(LLu
.nr LT \\n(.l
.lt \\n(LTu
.ev 1
.if !\\n(FL .nr FL \\n(LLu*11u/12u
.ll \\n(FLu
.ps 8
.vs 10p
.ev
.if \\*(CH .ds CH "\(hy \\\\n(PN \(hy
.wh 0 NP
.wh -\\n(FMu FO
.ch FO 16i
.wh -\\n(FMu FX
.ch FO -\\n(FMu
.if t .wh -\\n(FMu/2u BT
.if n .wh -\\n(FMu/2u-1v BT
. \" no overstriking bold or italic; switch underlining to bold italic
. \" (sad historical botch, the .uf font must be 2, 3, or 4)
.if n .uf 4
.if n .bd 3
.nr CW 0-1
.nr GW 0-1
..
.de TM
.if !\\n(IM .if !\\n(MN .pn 0
.so \\*(sd/tmac.scover
.if !\\n(IM .if !\\n(MN .rm IM MF MR
.if n .if !\\n(.T .pi /usr/bin/col
.nr ST 1
.ds QF TECHNICAL MEMORANDUM
.br
.ds MN \\$1
.if !"\\$1"" .nr MM 1
.if !"\\$2"" .nr MC 1
.if !"\\$3"" .nr MG 1
.nr TN 1
.if \\n(.$-1 .ds CA \\$2
.if \\n(.$-2 .ds CC \\$3
.rm RP S0 S2 AX
..
.		\" IM - internal memorandum
.de IM
.nr IM 1
.TM "\\$1" "\\$2" "\\$3"
.rm QF
.RA
.rm RA RP MF MR
..
.		\" MF - memorandum for file.
.de MF
.nr MN 1
.TM "\\$1" "\\$2" "\\$3"
.rm MR
.rm IM
.RA
.rm RA RP TM
..
.		\" MR - memo for record
.de MR
.nr MN 2
.TM "\\$1" "\\$2" "\\$3"
.ds QF MEMORANDUM FOR RECORD
.rm MF
.RA
.rm RA RP IM TM
..
.	\" LT - letter
.de LT
.if !\\n(PO .ie n .nr PO 1.5i
.el .nr PO 1.3i
.po \\n(POu
.LP
.rs
.if !"\\$1"" \{\
.	vs -2p
.if "\\$1"LT" .ta 3.9i 4.45i
.if !"\\$1"LT" .ta 3.9i 4.45i
.	sp .2i
.	nf
.	if "\\$1"LT" 	\s36\(FA\s0
.	if !"\\$1"LT" 	\s36\(LH\s0
.	br
\s7\l'7i'\s0
.sp
.	br
.	if !"\\$2"" .ds xR "		\\$2
.	ds xP 908-582-3000
.	if !"\\$3"" .ds xP \\$3
.	if "\\$1"LT" \s8\f(HBBell Laboratories\fP		\fH600 Mountain Avenue
.	if !"\\$1"LT" \s8\f(HBBell Laboratories\fP		\fH600 Mountain Avenue
.	if !"\\$2"" \\*(xR
		Murray Hill, NJ 07974-0636
		\\*(xP
.	if !"\\$4"" 		\\$4
.	if !"\\$5"" 		\\$5
.	if !"\\$6"" 		\\$6
.	if !"\\$7"" 		\\$7
.ft 1
.ps
.	sp -.75i
.	vs
.	fi \}
.if n \{\
.	sp 1i
.	in 4.55i\}
.if t \{\
.	sp 1.45i
.	in 3.5i\}
.ll 8i
\\*(DY
.ll
.in 0
.br
.if t .sp 3
.if n \{\
.	sp
.	na\}
.nf
.rm CF
.de SG	\" nested defn
.sp 2
.ta 3.5i
	Sincerely,
.sp 3
	\\\\$1
.ds CH
\\..
..
.de OK
.br
.di
.di OD
..
.de RP		\" released paper
.nr ST 2
.pn 0
.rm SG CS TM QF IM MR MF EG
.br
..
.de TR		\" Comp. Sci. Tech Rept series.
.nr ST 3
.pn 0
.ds MN \\$1
.rm SG CS TM QF IM MR M EG
.br
..
.	\"FP - font position for a family
.de FP
.ds TF \\$1
.if '\\$1'palatino'\{\
.	fp 1 R PA
.	fp 2 I PI
.	fp 3 B PB
.	fp 4 BI PX\}
.if '\\$1'lucidabright'\{\
.	fp 1 R LucidaBright
.	fp 2 I LucidaBright-Italic
.	fp 3 B LucidaBright-Demi
.	fp 4 BI LucidaBright-DemiItalic
.	fp 5 CW LucidaSansCW\}
.if '\\$1'lucidasans'\{\
.	fp 1 R LucidaSans
.	fp 2 I LucidaSansI
.	fp 3 B LucidaSansB
.	fp 5 CW LucidaCW\}
.if '\\$1'syntax'\{\
.	fp 1 R Syntax
.	fp 2 I SyntaxI
.	fp 3 B SyntaxB
.	fp 5 CW LucidaCW\}
.if '\\$1'century'\{\
.	ie '\\*(.T'202'\{\
.		fp 1 NR Centsb
.		fp 2 NI CentI
.		fp 3 NB CentB
.		fp 4 NX CentBI\}
.	el \{\
.		fp 1 NR
.		fp 2 NI
.		fp 3 NB
.		fp 4 NX\}\}
.if '\\$1'helvetica'\{\
.	fp 1 H
.	fp 2 HI
.	fp 3 HB
.	fp 4 HX\}
.if '\\$1'bembo'\{\
.	ie '\\*(.T'202'\{\
.		fp 1 B1 Bembo
.		fp 2 B2 BemboI
.		fp 3 B3 BemboB
.		fp 4 B4 BemboBI\}
.	el \{\
.		fp 1 B1
.		fp 2 B2
.		fp 3 B3
.		fp 4 B4\}\}
.if '\\$1'optima'\{\
.	fp 1 R Optima
.	fp 2 I OptimaI
.	fp 3 B OptimaB
.	fp 4 BI OptimaBI\}
.if '\\$1'souvenir'\{\
.	fp 1 R Souvenir
.	fp 2 I SouvenirI
.	fp 3 B SouvenirB
.	fp 4 BI SouvenirBI\}
.if '\\$1'melior'\{\
.	fp 1 R Melior
.	fp 2 I MeliorI
.	fp 3 B MeliorB
.	fp 4 BI MeliorBI\}
.if '\\$1'times'\{\
.	fp 1 R
.	fp 2 I
.	fp 3 B
.	fp 4 BI\}
..
.	\"TL - title and initialization
.de TL
.br
.nr TV 1
.if \\n(IM .rm CS
.if \\n(MN .rm CS
.ME
.rm ME
.di WT
.na
.fi
.ie h .ll \\n(LLu
.el \{\
.ll 5.0i
.if n .if \\n(TN .ll 29
.if t .if \\n(TN .ll 3.5i \}
.ft 3
.ps \\n(PS
.if !\\n(TN \{\
.	ps +2
.	vs \\n(.s+2
.	rm CS\}
.hy 0
.if h .ce 999
..
.de TX
.rs
.sp .5i
.ce 1000
.if n .ul 1000
.ps 12
.ft 3
.vs 15p
.ne 4
.hy 0
.WT
.hy \\n(HY
.ce 0
.ul 0
..
.	\"	AU - author(s)
.de AU
.nr AV 1
.ad \\n(SJ
.br
.di
.br
.nf
.nr NA +1
.ds R\\n(NA \\$1
.ds E\\n(NA \\$2
.di A\\n(NA
.ll \\n(LLu
.ie t \{\
.	ie !\\n(TN .ft 2
.	el \{\
.		ft 3
.		ll 1.4i\}\}
.el \{\
.	ie !\\n(TN .ft 1
.	el \{\
.		ft 3
.		ll 16\}\}
.ps \\n(PS
.if h .ce 999
..
.de AX
.ft 1
.rs
.ce 1000
.if n .ul 0
.ps \\n(PS
.ie \\n(VS>=41 .vs \\n(VSu
.el .vs \\n(VSp
.if t \{\
.	sp
.	A1
.	sp 0.5
.	ns
.	I1
.	if \\n(NA-1 .sp
.	A2
.	if \\n(NA-1 .sp 0.5
.	ns
.	I2
.	if \\n(NA-2 .sp
.	A3
.	if \\n(NA-2 .sp 0.5
.	ns
.	I3
.	if \\n(NA-3 .sp
.	A4
.	if \\n(NA-3 .sp 0.5
.	ns
.	I4
.	if \\n(NA-4 .sp
.	A5
.	if \\n(NA-4 .sp 0.5
.	ns
.	I5
.	if \\n(NA-5 .sp
.	A6
.	if \\n(NA-5 .sp 0.5
.	ns
.	I6
.	if \\n(NA-6 .sp
.	A7
.	if \\n(NA-6 .sp 0.5
.	ns
.	I7
.	if \\n(NA-7 .sp
.	A8
.	if \\n(NA-7 .sp 0.5
.	ns
.	I8
.	if \\n(NA-8 .sp
.	A9
.	if \\n(NA-8 .sp 0.5
.	ns
.	I9\}
.if n \{\
.	sp 2
.	A1
.	sp 
.	ns
.	I1
.	if \\n(NA-1 .sp 2
.	A2
.	if \\n(NA-1 .sp
.	ns
.	I2
.	if \\n(NA-2 .sp 2
.	A3
.	if \\n(NA-2 .sp
.	ns
.	I3
.	if \\n(NA-3 .sp 2
.	A4
.	if \\n(NA-3 .sp
.	ns
.	I4
.	if \\n(NA-4 .sp 2
.	A5
.	if \\n(NA-4 .sp
.	ns
.	I5
.	if \\n(NA-5 .sp 2
.	A6
.	if \\n(NA-5 .sp
.	ns
.	I6
.	if \\n(NA-6 .sp 2
.	A7
.	if \\n(NA-6 .sp
.	ns
.	I7
.	if \\n(NA-7 .sp 2
.	A8
.	if \\n(NA-7 .sp
.	ns
.	I8
.	if \\n(NA-8 .sp 2
.	A9
.	if \\n(NA-8 .sp
.	ns
.	I9\}
..
.	\"AI - authors institution
.de AI
.br
.ft 1
.di
.di I\\n(NA
.nf
..
.	\"AB - begin an abstract
.de AB
.br
.di
.ul 0
.ce 0
.nr 1T 1
.nr IK 1
.nr KI 1
.di WB
.rs
.nr AJ 1
.ce 1
.ft 2
.if n .ul
.ll \\n(LLu
.ie \\n(.$ \{\
.	if !"\\$1"-" .if !"\\$1"no" \\$1
.	if !"\\$1"-" .if !"\\$1"no" .sp\}
.el \{\
ABSTRACT
.sp\}
.hy \\n(HY
.ul 0
.ce 0
.fi
.ft 1
.nr OJ \\n(.i
.in +\\n(.lu/12u
.ll -\\n(.lu/12u
.br
.ps \\n(PS
.ie \\n(VS>=41 .vs \\n(VSu
.el .vs \\n(VSp
.ti +\\n(PIu
..
.	\"AE - end of an abstract
.de AE
.br
.di
.ll \\n(LLu
.ps \\n(PS
.ie \\n(VS>=41 .vs \\n(VSu
.el .vs \\n(VSp
.nr 1T 0
.nr IK 0
.in \\n(OJu
.nr AJ 0
.di
.ce 0
.if \\n(ST=2 .SY
.if \\n(ST<3 .rm SY
..
.	\"S2 - release paper style
.	\"SY - cover sheet of released paper
.de SY
.ll \\n(LLu
.ns
.if \\n(TV .TX
.if \\n(AV .AX
.rs
.ce 0
.nf
.sp 3
.ls 1
.pn 2
.WB
.ls 
.sp 3v
\\*(DY
.sp |9i
.if \\n(FP .FA
.FG
.if \\n(GA=1 .nr GA 2
.fi
..
.	\"S2 - first text page, released paper format
.de S2
.ce 0
.br
.SY
.rm SY
.bp 1
.if \\n(TV .TX
.if \\n(AV .AX
.rs
.ce 0
.ft 1
.ad \\n(SJ
..
.	\"S0- mike lesk conserve paper style
.de S0
.ce 0
.br
.ll \\n(LLu
.if \\n(TV+\\n(AV .ns
.if \\n(TV .TX
.if \\n(AV .AX
.if \\n(TV+\\n(AV .rs
.ce 0
.if \\n(TV .sp 2
.ls 1
.if \\n(FP \{\
.	FJ
.	nf
.	FG
.	fi
.	FK
.	nr FP 0\}
.nf
.WB
.ls
.fi
.ad \\n(SJ
..
.	\"S3 - CSTR style
.de S3
.rs
.sp |2.25i
.ce 1000
.I1
.if \\n(NA>1 \{\
.	sp .5
.	I2\}
.if \\n(NA>2 \{\
.	sp .5
.	I3\}
.if \\n(NA>3 \{\
.	sp .5
.	I4\}
.if \\n(NA>4 \{\
.	sp .5
.	I5\}
.if \\n(NA>5 \{\
.	sp .5
.	I6\}
.if \\n(NA>6 \{\
.	sp .5
.	I7\}
.if \\n(NA>7 \{\
.	sp .5
.	I8\}
.if \\n(NA>8 \{\
.	sp .5
.	I9\}
.sp |4i
.	\"check how long title is: can space extra .25 inch if short
.di EZ
.WT
.di
.if \\n(dn<1.5v .if \\n(NA=1 .sp .25i
.ft 1
Computing Science Technical Report No. \\*(MN
.sp
.if t .ft 3
.if n .ul 100
.ps 12
.vs 15p
.hy 0
.WT
.hy \\n(HY
.ft 1
.if n .ul 0
.ps 10
.vs 12p
.sp
.ft 1
.A1
.A2
.A3
.A4
.A5
.A6
.A7
.A8
.A9
.ce 0
.sp |8.5i
.ce 0
\\*(DY
.DZ
.bp 0
.ft 1
.S2
..
.	\"SG - signature
.de SG
.br
.KS
.in +2u*\\n(.lu/3u
.sp 4
.A1
.if \\n(NA>1 .sp 4
.A2
.if \\n(NA>2 .sp 4
.A3
.if \\n(NA>3 .sp 4
.A4
.if \\n(NA>4 .sp 4
.A5
.if \\n(NA>5 .sp 4
.A6
.if \\n(NA>6 .sp 4
.A7
.if \\n(NA>7 .sp 4
.A8
.if \\n(NA>8 .sp 4
.A9
.in
.nf
.if \\n(.$<1 .G9
.sp -1
.if \\n(.$>=1 \\$1
.if \\n(.$>=2 \\$2
.if \\n(.$>=3 \\$3
.if \\n(.$>=4 \\$4
.if \\n(.$>=5 \\$5
.if \\n(.$>=6 \\$6
.if \\n(.$>=7 \\$7
.if \\n(.$>=8 \\$8
.if \\n(.$>=9 \\$9
.fi
.br
.KE
..
.	\"Tables.  TS - table start, TE - table end
.de TS
.br
.if !\\n(1T .RT
.ul 0
.ti \\n(.iu
.if t .sp 0.5
.if n .sp
.if \\$1H .TQ
.nr IX 1
..
.de TQ
.di TT
.nr IT 1
..
.de TH
.if \\n(.d>0.5v \{\
.	nr T. 0
.	T# 0\}
.di
.nr TQ \\n(.i
.nr HT 1
.in 0
.mk #a
.mk #b
.mk #c
.mk #d
.mk #e
.mk #f
.TT
.in \\n(TQu
.mk #T
..
.de TE
.nr IX 0
.if \\n(IT .if !\\n(HT \{\
.	di
.	nr EF \\n(.u
.	nf
.	TT
.	if \\n(EF .fi\}
.nr IT 0
.nr HT 0
.if n .sp 1
.if t .sp 0.5
.rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+
.rr 32 33 34 35 36 37 38 40 79 80 81 82
.rr a| b| c| d| e| f| g| h| i| j| k| l| m|
.rr a- b- c- d- e- f- g- h- i- j- k- l- m-
..
.so \*(sd/tmac.skeep
.de EQ  \"equation, breakout and display
.nr EF \\n(.u
.rm EE
.nr LE 1	\" 1 is center
.ds EL \\$1
.if "\\$1"L" \{\
.	ds EL \\$2
.	nr LE 0\}
.if "\\$1"C" .ds EL \\$2
.if "\\$1"R" \{\
.	ds EL \\$2 \" 2 is right adjust
.	nr LE 2\}
.if "\\$1"I" \{\
.	nr LE 0
.	if "\\$3"" .ds EE \\h'|10n'
.	el .ds EE \\h'\\$3'
.	ds EL \\$2\}
.if \\n(YE .nf
.di EZ
..
.de EN  \" end of a displayed equation
.br
.di
.rm EZ
.nr ZN \\n(dn
.if \\n(ZN .if !\\n(YE .LP
.if !\\n(ZN .if !"\\*(EL"" .nr ZN 1
.if \\n(ZN \{\
.	ie "\\n(.z"" \{\
.		if t .if !\\n(nl=\\n(PE .sp .5
.		if n .if !\\n(nl=\\n(PE .sp 1\}
.	el \{\
.		if t .if !\\n(.d=\\n(PE .sp .5
.		if n .if !\\n(.d=\\n(PE .sp 1\}\}
'pc
.if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup
.if \\n(MK \{\
.	if \\n(LE=1 .ds EE \\h'|10n'
.	nr LE 0\}
'lt \\n(.lu
.if !\\n(EP .if \\n(ZN \{\
.	if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
.	if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts
.	if !\\n(LE \{\
.		if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
.		if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
.		if \\n(BD \!\\*(10\\t\\*(EL\}\}
.if \\n(EP .if \\n(ZN \{\
.	if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
.	if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts
.	if !\\n(LE \{\
.		if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
.		if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
.		if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\}
'lt \\n(LLu
'pc %
.if \\n(YE .if \\n(EF .fi
.if t .if \\n(ZN .sp .5
.if n .if \\n(ZN .sp
.ie "\\n(.z"" .nr PE \\n(nl
.el .nr PE \\n(.d
..
.de PS	\" start picture
.	\" $1 is height, $2 is width, both in inches
.if \\$1>0 .sp .35
.ie \\$1>0 .nr $1 \\$1
.el .nr $1 0
.in (\\n(.lu-\\$2)/2u
.ne \\$1
..
.de PE	\" end of picture
.in
.if \\n($1>0 .sp .65
..
.			\" .P1/.P2 macros for programs
.
.nr XP 1	\" delta point size for program
.nr XV 1p	\" delta vertical for programs
.nr XT 8	\" delta tab stop for programs
.nr DV .5v	\" space before start of program
.
.de P1
.br
.nr v \\n(.v
.nr i 2m
.if \\n(.$ .nr i \\$1
.di p1
.in \\niu
.nf
.ps -\\n(XP
.vs -\\n(XVu
.ft CW
.nr t \\n(XT*\\w'x'u
.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
..
.
.de P2
.br
.ps \\n(PS
.vs \\n(VSp
.vs \\nvu
.ft 1
.in 0
.di
.br
.sp \\n(DVu
.RT
.if \\n(.$=0 .ne \\n(dnu  \" -\\n(DVu
.nf
.p1
.sp \\n(DVu
.RT
..
.
.de ME
.nr SJ \\n(.j
.if \\n(LL .nr LT \\n(LL
.nr YE 1
.if !\\n(PO .nr PO \\n(.o
.if \\n(mo-0 .ds MO January
.if \\n(mo-1 .ds MO February
.if \\n(mo-2 .ds MO March
.if \\n(mo-3 .ds MO April
.if \\n(mo-4 .ds MO May
.if \\n(mo-5 .ds MO June
.if \\n(mo-6 .ds MO July
.if \\n(mo-7 .ds MO August
.if \\n(mo-8 .ds MO September
.if \\n(mo-9 .ds MO October
.if \\n(mo-10 .ds MO November
.if \\n(mo-11 .ds MO December
.if \\n(dw-0 .ds DW Sunday
.if \\n(dw-1 .ds DW Monday
.if \\n(dw-2 .ds DW Tuesday
.if \\n(dw-3 .ds DW Wednesday
.if \\n(dw-4 .ds DW Thursday
.if \\n(dw-5 .ds DW Friday
.if \\n(dw-6 .ds DW Saturday
.nr yP (\\n(yr+2000)/100)
.nr yD (\\n(yr%100
.af yD 01
.if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
.if "\\*(CF"" .if n .ds CF "\\*(DY
..
.	\"EM end up macro - process left over keep-release
.de EM
.br
.if \\n(AJ .tm Syntax error: no .AE
.if \\n(IF .ab Missing .FE somewhere
.if t .if \\n(TB=0 .wh -1p CM
.if \\n(TB \{\&\c
'	bp
.	NP
.	ch CM 160\}
..
.	\"NP new page
.de NP
.rr PE
.if \\n(FM+\\n(HM>=\\n(.p \{\
.	tm Margins bigger than page length.
.	ab
.	ex\}
.if t .CM
.if !\\n(HM .nr HM 2cm
'sp \\n(HMu/2u
.ev 1
.nr PX \\n(.s
.nr PF \\n(.f
.nr PV \\n(.v
.lt \\n(LTu
.ps \\n(PS
.vs \\n(PS+2
.ft 1
.if \\n(PO .po \\n(POu
.PT
.ps \\n(PX
.vs \\n(PVu
.ft \\n(PF
.ev
'sp |\\n(HMu
.nr XX 0 1
.nr YY 0-\\n(FMu
.ch FO 16i
.ch FX 17i
.ch FO \\n(.pu-\\n(FMu
.ch FX \\n(.pu-\\n(FMu
.if \\n(MF .FV
.nr MF 0
.mk
.os
.ev 1
.if !\\n(TD .if \\n(TC<5  .XK
.nr TC 0
.ns
.ev
.nr TQ \\n(.i
.nr TK \\n(.u
.if \\n(IT \{\
.	in 0
.	nf
.	TT
.	in \\n(TQu
.	if \\n(TK .fi\
\}
.mk #T
....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
..
.de XK
.nr TD 1
.nf
.ls 1
.in 0
.rn KJ KL
.KL
.rm KL
.if "\\n(.z"KJ" .di
.nr TB 0
.if "\\n(.z"KJ" .nr TB 1
.br
.in
.ls
.fi
.if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
.	if \\n(NX>1 .RC
.	if \\n(NX<1 .bp\}
.nr TD 0
..
.de KD
.nr KM 0
.if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
.	if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
.	sp 15i\}
.if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
.if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
.if \\n(KM>0 \!.KD \\$1 \\$2
.nr KR \\n(.t
.if \\n(nl<=\\n(HM .nr KR 32767
.if \\n(KM=0 \{\
.	if \\n(KR<\\$1 \{\
.		di KJ
.		nr KM 1\}
.	if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
.rs
.if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
..
.de PT
.lt \\n(LLu
.pc %
.nr PN \\n%
.if \\n%-1 .tl \\*(LH\\*(CH\\*(RH
.lt \\n(.lu
..
.	\"FO - footer of page
.de FO
.rn FO FZ
.if \\n(IT>0 \{\
.	nr T. 1
.	if \\n(FC=0  .T# 1
.	br\}
.nr FC +1
.if \\n(NX<2 .nr WF 0
.nr dn 0
.if \\n(FC<=1 .if \\n(XX .XF
.rn FZ FO
.nr MF 0
.if \\n(dn  .nr MF 1
.if !\\n(WF \{\
.	nr YY 0-\\n(FMu
.	ch FO \\n(YYu\}
.if !\\n(dn .nr WF 0
.if \\n(FC<=1 .if \\n(XX=0 \{\
.	if \\n(NX>1 .RC
.	if \\n(NX<1 'bp\}
.nr FC -1
.if \\n(ML>0 .ne \\n(MLu
..
.	\"2C - begin double column
.de 2C
.MC \" default MC is double column
..
.de MC \" multiple columns- arg is line length
.nr L1 \\n(LL*7/15
.if \\n(CW>=0 .nr L1 \\n(CWu
.if \\n(.$ .nr L1 \\$1n
.if \\n(GW>=0 .nr GW \\n(GWu
.if \\n(.$>1 .nr GW \\$2n
.nr NQ \\n(LL/\\n(L1
.if \\n(NQ<1 .nr NQ 1
.if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
.if !\\n(1T \{\
.	BG
.	if n .sp 4
.	if t .sp 2\}
.if \\n(NX=0 .nr NX 1
.if !\\n(NX=\\n(NQ \{\
.	RT
.	if \\n(NX>1 .bp
.	mk
.	nr NC 1
.	po \\n(POu\}
.if \\n(NQ>1 .hy \\n(HY
.nr NX \\n(NQ
.if \\n(NX>1 .nr CW \\n(L1
.ll \\n(L1u
.nr FL \\n(L1u*11u/12u
.if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
.nr RO \\n(L1+\\n(GW
.ns
..
.de RC
.ie \\n(NC>=\\n(NX .C2
.el .C1
..
.de C1
.rt
.po +\\n(ROu
.nr NC +1
.if \\n(NC>\\n(NX .nr NC 1
.nr XX 0 1
.nr YY 0-\\n(FMu
.if \\n(MF .FV
.ch FX \\n(.pu-\\n(FMu
.ev 1
.if \\n(TB .XK
.nr TC 0
.ev
.nr TQ \\n(.i
.if \\n(IT \{\
.	in 0
.	TT
.	in \\n(TQu\}
.mk #T
.ns
..
.de C2
.po \\n(POu
.nr NC +1
.if \\n(NC>\\n(NX .nr NC 1
'bp
..
.	\"1C - return to single column format
.de 1C
.MC \\n(LLu
.hy \\n(HY
..
.de MH
Bell Laboratories
Murray Hill, New Jersey 07974
..
.de PY
Bell Laboratories
Piscataway, New Jersey 08854
..
.de BT
.nr PX \\n(.s
.nr PF \\n(.f
.ft 1
.ps \\n(PS
'lt \\n(LTu
.po \\n(POu
.if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
.ft \\n(PF
.ps \\n(PX
..
.	\"PP - paragraph
.de PP
.RT
.if \\n(1T .sp \\n(PDu
.ti +\\n(PIu
..
.	\"SH - (unnumbered) section heading
.de SH
.ti \\n(.iu
.RT
.ie \\n(1T .sp 1
.el .BG
.RT
.ne 4
.ft 3
.if n .ul 1000
..
.	\"NH - numbered heading
.de N{
.RT
.ie \\n(1T .sp 1
.el .BG
.RT
.ne 4
.ft 3
.if n .ul 1000
.nr NS \\$1
.if !\\n(.$ .nr NS 1
.if !\\n(NS .nr NS 1
.nr H\\n(NS +1
.if !\\n(NS-4 .nr H5 0
.if !\\n(NS-3 .nr H4 0
.if !\\n(NS-2 .nr H3 0
.if !\\n(NS-1 .nr H2 0
.if !\\$1 .if \\n(.$ .nr H1 1
.ds SN \\n(H1.
.ti \\n(.iu
.if \\n(NS-1 .as SN \\n(H2.
.if \\n(NS-2 .as SN \\n(H3.
.if \\n(NS-3 .as SN \\n(H4.
.if \\n(NS-4 .as SN \\n(H5.
..
.de NH
.N{ \\$1
\\*(SN
..
.	\"BG - begin, execute at first PP
.de BG
.br
.ME
.rm ME
.di
.ce 0
.nr KI 0
.hy \\n(HY
.nr 1T 1
.nr CS 0
.S\\n(ST
.rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
.de TL
.ft 3
.sp
.if n .ul 100
.ce 100
.ps +2
\\..
.de AU
.ft 2
.if n .ul 0
.ce 100
.sp
.NL
\\..
.de AI
.ft 1
.ce 100
.if n .ul 0
.if n .sp
.if t .sp .5
.NL
\\..
.RA
.rm RA
.rn FJ FS
.rn FK FE
.nf
.ev 1
.ps \\n(PS-2
.vs \\n(.s+2p
.ev
.if !\\n(KG .nr FP 0 
.if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
.nr KG 0 
.if \\n(FP \{\
.	FS
.	FG
.	FE\}
.br
.if n .if \\n(TV .sp 2
.if t .if \\n(TV .sp 1
.fi
.ll \\n(LLu
.ev 1
.if !\\n(FL .nr FL \\n(LLu*11u/12u
.ll \\n(FLu
.ev
..
.de RA \"redefine abstract macros
.de AB
.br
.if !\\n(1T .BG
.ce 1
.sp 1
.ie \\n(.$ \{\
.	if !"\\$1"-" .if !"\\$1"no" \{\
\\$1
.sp\}\}
.el \{\
ABSTRACT
.sp\}
.sp 1
.nr AJ 1
.in +\\n(.lu/12u
.ll -\\n(.lu/12u
.RT
\\..
.de AE
.nr AJ 0
.br
.in 0
.ll \\n(LLu
.ie \\n(VS>=41 .vs \\n(VSu
.el .vs \\n(VSp
\\..
..
.	\"IP - indented paragraph
.de IP
.RT
.if !\\n(IP .nr IP +1
.ie \\n(ID>0 .sp \\n(IDu
.el .sp \\n(PDu
.nr IU \\n(IR+1
.if \\n(.$>1 .nr I\\n(IU \\n(I\\n(IRu+\\$2n
.if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
.in \\n(I\\n(IUu
.nr TY \\n(TZ-\\n(.i
.nr JQ \\n(I\\n(IU-\\n(I\\n(IR
.ta \\n(JQu \\n(TYuR
.if \\n(.$ \{\
.ti \\n(I\\n(IRu
\&\\$1\t\c
.\}
..
.	\"LP - left aligned (block) paragraph
.de LP
.ti \\n(.iu
.RT
.if \\n(1T .sp \\n(PDu
..
.de QP
.ti \\n(.iu
.RT
.if \\n(1T .sp \\n(PDu
.ne 1.1
.nr QP 1
.in +\\n(QIu
.ll -\\n(QIu
.ti \\n(.iu
..
.	\"IE - synonym for .LP
.de IE
.LP
..
.	\"RS - prepare for double indenting
.de RS
.nr IS \\n(IP
.RT
.nr IP \\n(IS
.nr IR \\n(IU
.nr IU +1
.if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
.in \\n(I\\n(IRu
.nr TY \\n(TZ-\\n(.i
.ta \\n(TYuR
..
.	\"RE - retreat to the left
.de RE
.nr IS \\n(IP
.RT
.nr IP \\n(IS
.nr IU \\n(IR
.if \\n(IR>0 .nr IR -1
.in \\n(I\\n(IRu
..
.de TC
.nr TZ \\n(.lu
.if \\n(.$ .nr TZ \\$1n
.ta \\n(TZuR
..
.de TD
.LP
.nr TZ 0
..
.	\"CM - cut mark
.de CM
.po 0
.lt 7.6i
.ft 1
.ps 10
.vs 4p
.if "\\*(.T"aps" .tl '--''--'
.po
.vs
.lt
.ps
.ft
..
.		\" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before
.de OF		\" this is completely WRONG if any argument contains "'s
.nr PQ \\n(.f
.hy 0
.if t .if "\\$3"" .ft \\$1
.if t .if !"\\$3"" \{\
\&\\$5\\$2\\$3\\f\\n(PQ\\$4
.hy \\n(HY\}
.if n \{\
.	if \\n(.$=5 \&\\$5
.	ie "\\$3"" .ul 1000
.	el .ul 1
.	if \\n(.$=3 \&\\$3
.	if \\n(.$>3 \&\\$3\\c
.	if \\n(.$>3 \&\\$4
.	hy \\n(HY\}
..
.	\"B - bold font
.de B
.OF 3 \\f3 "\\$1" "\\$2" "\\$3"
..
.de BI	\" bold italic -- only on 202
.OF 4 \\f4 "\\$1" "\\$2" "\\$3"
..
.	\"R - Roman font
.de R
.nr PQ \\n(.f
.ft 1
.ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2
.el .if n .ul 0
..
.	\"I - italic font
.de I
.OF 2 \\f2 "\\$1" "\\$2" "\\$3"
..
.	\"CW - constant width font
.de CW
.nr PQ \\n(.f
.if t .if \\n(.$>0 \%\&\\$3\f(CW\\$1\f\\n(PQ\&\\$2
.if t .if \\n(.$=0 .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
.if n .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
..
.	\"TA - tabs set in ens or chars
.de TA
.ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
..
.	\"SM - make smaller size
.de SM
.ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2
.el .ps -2
..
.	\"LG - make larger size
.de LG
.ps +2
..
.	\"NL - return to normal size
.de NL
.ps \\n(PS
..
.	\"DA - force date; ND - no date or new date.
.de DA
.if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
.ds CF \\*(DY
..
.de ND
.ME
.rm ME
.ds DY \\$1 \\$2 \\$3 \\$4
.rm CF
..
.de FN
.FS
..
.	\"FS - begin footnote
.de FJ
'ce 0
.nr IA \\n(IP
.nr IB \\n(.i
.ev1
.ll \\n(FLu
.da FF
.br
.if \\n(IF \{\
.	tm Footnote within footnote-illegal.
.	ab\}
.nr IF 1
.if !\\n+(XX-1 .FA
..
.	\"FE - footnote end
.de FK
.br
.in 0
.nr IF 0
.di
.ev
.if !\\n(XX-1 .nr dn +\\n(.v
.nr YY -\\n(dn
.if !\\n(NX .nr WF 1
.if \\n(dl>\\n(CW .nr WF 1
.ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
.el \{\
.	if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
.	if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
.	if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\}
.nr IP \\n(IA
'in \\n(IBu
..
.\"	First page footer.
.de FS
.ev1
.br
.ll \\n(FLu
.da FG
..
.de FE
.br
.di
.nr FP \\n(dn
.if !\\n(1T .nr KG 1 \"not in abstract repeat next page.
.if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
.ev
..
.de FA
.if n __________________________
.if t \l'1i'
.br
..
.de FV
.FS
.nf
.ls 1
.FY
.ls
.fi
.FE
..
.de FX
.if \\n(XX \{\
.	di FY
.	ns\}
..
.de XF
.if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
.ev1
.nf
.ls 1
.FF
.rm FF
.nr XX 0 1
.br
.ls
.di
.fi
.ev
..
.de FL
.ev1
.nr FL \\$1n
.ll \\$1
.ev
..
.de HO
Bell Laboratories
Holmdel, New Jersey 07733
..
.de WH
Bell Laboratories
Whippany, New Jersey 07981
..
.de IH
Bell Laboratories
Naperville, Illinois 60540
..
.de UL \" underline argument, don't italicize
.ie t \\$1\l'|0\(ul'\\$2
.el .I "\\$1" "\\$2"
..
.de UX
.ie \\n(GA \\$2\s-1UNIX\s0\\$1
.el \{\
.ie n \{\\$2UNIX\\$1*
.FS
* UNIX is a
.ie \\$3=1 Footnote
.el registered trademark
of X/Open.
.FE\}
.el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP
.nr GA 1\}
..
.de US
the
.UX
operating system\\$1
..
.de QS
.br
.LP
.in +\\n(QIu
.ll -\\n(QIu
..
.de QE
.br
.ll +\\n(QIu
.in -\\n(QIu
.LP
..
.de B1 \" begin boxed stuff
.br
.di BB
.nr BC 0
.if "\\$1"C" .nr BC 1
.nr BE 1
..
.de B2 \" end boxed stuff
.br
.nr BI 1n
.if \\n(.$>0 .nr BI \\$1n
.di
.nr BE 0
.nr BW \\n(dl
.nr BH \\n(dn
.ne \\n(BHu+\\n(.Vu
.nr BQ \\n(.j
.nf
.ti 0
.if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
.in +\\n(BIu
.ls 1
.BB
.ls
.in -\\n(BIu
.nr BW +2*\\n(BI
.sp -1
\l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
.nr BW -2*\\n(BI
.if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
.if \\n(BQ .fi
.br
..
.de AT
.nf
.sp
.ne 2
Attached:
..
.de CT
.nf
.sp
.ne 2
.ie \\n(.$ Copy to \\$1:
.el Copy to:
..
.de BX
.ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
.el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
..
.IZ
.rm IZ
.de [
[
..
.de ]
]
..