1466 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			1466 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .so mnx.mac
 | ||
| .TH MACROS 9
 | ||
| .\" Macro package for producing books (based on -ms)
 | ||
| .nr PS 12
 | ||
| .nr PZ 12
 | ||
| .\"	RT -  reset everything to normal state
 | ||
| .de RT
 | ||
| .if !\\n(1T .BG
 | ||
| .ce 0
 | ||
| .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
 | ||
| .ul 0
 | ||
| .if \\n(QP \{\
 | ||
| .	ll +\\n(QIu
 | ||
| .	in -\\n(QIu
 | ||
| .	nr QP -1\}
 | ||
| .if \\n(NX<=1 .if \\n(AJ=0 .ll \\n(LLu
 | ||
| .if \\n(IF=0 \{\
 | ||
| .	ps \\n(PS
 | ||
| .	if \\n(VS>=41 .vs \\n(VSu
 | ||
| .	if \\n(VS<=40 .vs \\n(VSp\}
 | ||
| .if \\n(IP .in -\\n(I\\n(IRu
 | ||
| .if \\n(IP=0 .nr I0 \\n(PIu
 | ||
| .if \\n(IP .nr IP -1
 | ||
| .ft 1
 | ||
| .bd 1
 | ||
| .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
 | ||
| .fi
 | ||
| ..
 | ||
| .	\"IZ - initialization
 | ||
| .de IZ
 | ||
| .nr TN 0
 | ||
| .em EM
 | ||
| .if n .ds [. [
 | ||
| .if t .ds [. \s-2\v'-.4m'\f1
 | ||
| .if n .ds .] ]
 | ||
| .if t .ds .] \v'.4m'\s+2\fP
 | ||
| .if n .ds [o ""
 | ||
| .if n .ds [c ""
 | ||
| .if t .ds [o ``
 | ||
| .if t .ds [c ''
 | ||
| .ch FO \\n(YYu
 | ||
| .if \\n(FM=0 .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 PZ 12
 | ||
| .nr VZ 13.8p
 | ||
| .nr PS \n(PZ
 | ||
| .nr VS \\n(VZu
 | ||
| .if !\\n(PD .if n .nr PD 1v
 | ||
| .if !\\n(PD .if t .nr PD 0.3v
 | ||
| .nr ML 3v
 | ||
| .ps \\n(PS
 | ||
| .if \\n(VS>=41 .vs \\n(VSu
 | ||
| .if \\n(VS<=40 .vs \\n(VSp
 | ||
| .nr IR 0
 | ||
| .nr TB 0
 | ||
| .nr SJ \\n(.j
 | ||
| .nr LL 6i
 | ||
| .ll \\n(LLu
 | ||
| .nr LT \\n(.l
 | ||
| .lt \\n(LTu
 | ||
| .ev 1
 | ||
| .nr FL \\n(LLu*11u/12u
 | ||
| .ll \\n(FLu
 | ||
| .ps 10
 | ||
| .vs 12p
 | ||
| .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
 | ||
| ..
 | ||
| .	\"KS keep - for keep release features. As in IFM
 | ||
| .de KS
 | ||
| .nr KN \\n(.u
 | ||
| .if \\n(IK=0 .if \\n(IF=0 .KQ
 | ||
| .nr IK +1
 | ||
| ..
 | ||
| .	\"KQ - real keep processor
 | ||
| .de KQ
 | ||
| .br
 | ||
| .nr KI \\n(.i
 | ||
| .ev 2
 | ||
| .br
 | ||
| .in \\n(KIu
 | ||
| .ps \\n(PS
 | ||
| .if \\n(VS>40 .vs \\n(VSu
 | ||
| .if \\n(VS<=39 .vs \\n(VSp
 | ||
| .ll \\n(LLu
 | ||
| .lt \\n(LTu
 | ||
| .if \\n(NX>1 .ll \\n(CWu
 | ||
| .if \\n(NX>1 .lt \\n(CWu
 | ||
| .di KK
 | ||
| .nr TB 0
 | ||
| .nr KV 0
 | ||
| ..
 | ||
| .	\"KF - floating keep
 | ||
| .de KF
 | ||
| .nr KN \\n(.u
 | ||
| .if !\\n(IK .FQ
 | ||
| .nr IK +1
 | ||
| ..
 | ||
| .	\"FQ real floating keep processor
 | ||
| .de FQ
 | ||
| .nr KI \\n(.i
 | ||
| .ev 2
 | ||
| .br
 | ||
| .in \\n(KIu
 | ||
| .ps \\n(PS
 | ||
| .if \\n(VS>40 .vs \\n(VSu
 | ||
| .if \\n(VS<=39 .vs \\n(VSp
 | ||
| .ll \\n(LLu
 | ||
| .lt \\n(LTu
 | ||
| .if \\n(NX>1 .ll \\n(CWu
 | ||
| .if \\n(NX>1 .lt \\n(CWu
 | ||
| .di KK
 | ||
| .nr TB 1
 | ||
| .nr KV 0
 | ||
| ..
 | ||
| .	\"KP - keep full page
 | ||
| .de KP
 | ||
| .nr KV 1
 | ||
| ..
 | ||
| .	\"KE release - everything between keep and release is together
 | ||
| .de KE
 | ||
| .if \\n(IK .if !\\n(IK-1 .if \\n(IF=0 .RQ
 | ||
| .if \\n(IK .nr IK -1
 | ||
| ..
 | ||
| .	\"RQ real release
 | ||
| .de RQ
 | ||
| .br
 | ||
| .di
 | ||
| .nr NF 0
 | ||
| .if \\n(dn-\\n(.t .nr NF 1
 | ||
| .if \\n(TC .nr NF 1
 | ||
| .if \\n(KV .nr NF 1 \" if KV on full page needed, doesn't fit
 | ||
| .if \\n(NF .if !\\n(TB .sp 11i
 | ||
| .if !\\n(NF .if \\n(TB .nr TB 0
 | ||
| .nf
 | ||
| .rs
 | ||
| .nr TC 5
 | ||
| .in 0
 | ||
| .ls 1
 | ||
| .if \\n(TB=0 .ev
 | ||
| .if \\n(TB=0 .br
 | ||
| .if \\n(TB=0 .ev 2
 | ||
| .if \\n(TB=0 .KK
 | ||
| .ls
 | ||
| .ce 0
 | ||
| .if \\n(TB=0 .rm KK
 | ||
| .if \\n(TB .da KJ
 | ||
| .if \\n(TB \!.KD \\n(dn \\n(KV
 | ||
| .if \\n(TB .KK
 | ||
| .if \\n(TB .di
 | ||
| .nr TC \\n(TB
 | ||
| .if \\n(KN .fi
 | ||
| .in
 | ||
| .ev
 | ||
| ..
 | ||
| .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
 | ||
| .if "\\$1"L" .nr LE 0
 | ||
| .if "\\$1"C" .ds EL \\$2
 | ||
| .if "\\$1"I" .nr LE 0
 | ||
| .if "\\$1"I" .ds EE \\h'|10n'
 | ||
| .if "\\$1"I" .if !"\\$3"" .ds EE \\h'\\$3'
 | ||
| .if "\\$1"I" .ds EL \\$2
 | ||
| .if \\n(YE>0 .nf
 | ||
| .di EZ
 | ||
| ..
 | ||
| .de EN  \" end of a displayed equation
 | ||
| .br
 | ||
| .di
 | ||
| .rm EZ
 | ||
| .nr ZN \\n(dn
 | ||
| .if \\n(ZN>0 .if \\n(YE=0 .LP
 | ||
| .if \\n(ZN=0 .if !"\\*(EL"" .nr ZN 1
 | ||
| .if "\\n(.z"" .if \\n(ZN>0 .if !\\n(nl=\\n(PE .if t .sp .5
 | ||
| .if "\\n(.z"" .if \\n(ZN>0 .if !\\n(nl=\\n(PE .if n .sp 1
 | ||
| .if !"\\n(.z"" .if \\n(ZN>0 .if !\\n(.d=\\n(PE .if t .sp .5
 | ||
| .if !"\\n(.z"" .if \\n(ZN>0 .if !\\n(.d=\\n(PE .if n .sp 1
 | ||
| 'pc
 | ||
| .if \\n(BD>0 .nr LE 0 \" can't mean centering in this case.
 | ||
| .if \\n(MK>0 .if \\n(LE=1 .ds EE \\h'|10n'
 | ||
| .if \\n(MK>0 .nr LE 0 \" don't center if mark/lineup
 | ||
| 'lt \\n(.lu
 | ||
| .if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE>0 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
 | ||
| .if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD=0 .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
 | ||
| .if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
 | ||
| .if \\n(EP=0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 \!\\*(10\\t\\*(EL
 | ||
| .if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE>0 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
 | ||
| .if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD=0 .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
 | ||
| .if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
 | ||
| .if \\n(EP>0 .if \\n(ZN>0 .if \\n(LE=0 .if \\n(BD>0 \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10
 | ||
| .\".di EZ \" GCOS patch
 | ||
| .\"\\*(10 \" GCOS patch
 | ||
| .\".br \" GCOS patch
 | ||
| .\".di \" GCOS patch
 | ||
| .\".rm EZ \" GCOS patch
 | ||
| 'lt \\n(LLu
 | ||
| 'pc %
 | ||
| .if \\n(YE>0 .if \\n(EF>0 .fi
 | ||
| .rm EL 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 | ||
| .rr 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 | ||
| .if \\n(ZN>0 .if t .sp .5
 | ||
| .if \\n(ZN>0 .if n .sp
 | ||
| .if "\\n(.z"" .nr PE \\n(nl
 | ||
| .if !"\\n(.z"" .nr PE \\n(.d
 | ||
| .nr z 72-((\\n(nl-\\n(HM)%72)
 | ||
| .if \\n(nl<\\n(HM .nr z 0
 | ||
| .if \\nz>0 .if \\nz<60 .sp \\nzu  \"force post equation text to whole line
 | ||
| .if \\nz>59 .if \\nz<72 .sp \\nzu-72u   \"move backwards a fraction of a pica
 | ||
| ..
 | ||
| .de ME
 | ||
| .nr SJ \\n(.j
 | ||
| .if \\n(LL>0 .nr LT \\n(LL
 | ||
| .nr YE 1
 | ||
| .if \\n(PO=0 .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
 | ||
| .if "\\*(DY"" .ds DY \\*(MO \\n(dy, 19\\n(yr
 | ||
| .if "\\*(CF"" .if n .ds CF "\\*(DY
 | ||
| ..
 | ||
| .	\"EM end up macro - process left over keep-release
 | ||
| .de EM
 | ||
| .br
 | ||
| .if \\n(TB=0 .if t .wh -1p CM
 | ||
| .if \\n(TB \&\c
 | ||
| .if \\n(TB 'bp
 | ||
| .if \\n(TB .NP
 | ||
| .if \\n(TB .ch CM 160
 | ||
| ..
 | ||
| .	\"NP new page
 | ||
| .de NP
 | ||
| .if \\n(FM+\\n(HM>=\\n(.p .tm Margins bigger than page length.
 | ||
| .if \\n(FM+\\n(HM>=\\n(.p .ab
 | ||
| .if \\n(FM+\\n(HM>=\\n(.p .ex
 | ||
| .nr PX \\n(.s
 | ||
| .nr PF \\n(.f
 | ||
| .nr PV \\n(.v
 | ||
| .if t .CM
 | ||
| .if \\n(HM=0 .nr HM 1i
 | ||
| 'sp \\n(HMu/2u
 | ||
| .lt \\n(LTu
 | ||
| .ps \\n(PS
 | ||
| .vs \\n(PS+2
 | ||
| .ft 1
 | ||
| .if \\n(PO>0 .po \\n(POu
 | ||
| .PT
 | ||
| .ps \\n(PX
 | ||
| .vs \\n(PVu
 | ||
| .ft \\n(PF
 | ||
| '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=0 .if \\n(TC<5  .XK
 | ||
| .nr TC 0
 | ||
| .ns
 | ||
| .ev
 | ||
| .nr TQ \\n(.i
 | ||
| .nr TK \\n(.u
 | ||
| .if \\n(IT>0 \{\
 | ||
| .	in 0
 | ||
| .	nf
 | ||
| .	TT
 | ||
| .	in \\n(TQu
 | ||
| .	if \\n(TK .fi\
 | ||
| \}
 | ||
| .mk #T
 | ||
| .if t .if \\n(.o+\\n(LL>7.75i .tm Offset (\\n(.o) + line length (\\n(LL) 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(nl+1v)>(\\n(.p-\\n(FM) .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
 | ||
| .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2>0 .sp 15i \" full page figure must have new page
 | ||
| .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
 | ||
| .if \\n(KM=0 .if \\n(KR<\\$1 .nr KM 1
 | ||
| .if \\n(KM=0 .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(K1>0 .tm This memo has a multi-page cover sheet.  You are
 | ||
| .if \\n(K1>0 .tm rebuked in the name of the Committee on Technical Memoranda.
 | ||
| .if \\n(IT>0 .nr T. 1
 | ||
| .if \\n(IT>0 .if \\n(FC=0  .T# 1
 | ||
| .if \\n(IT>0 .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
 | ||
| .if !\\n(WF .ch FO \\n(YYu
 | ||
| .if !\\n(dn .nr WF 0
 | ||
| .if \\n(FC<=1 .if \\n(XX=0  .if \\n(NX>1 .RC
 | ||
| .nr x 7176u-\\n(.d
 | ||
| .if \nL=1 .if \\n(FC<=1 .if \\n(XX=0  .if \\n(NX<1 'tm Chap=\\na  page=\\n%   short=\\nx    
 | ||
| .if \\n(FC<=1 .if \\n(XX=0  .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(.$>0 .nr L1 \\$1n
 | ||
| .nr GW 0-1
 | ||
| .if \\n(.$>1 .nr GW \\$1n
 | ||
| .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=0 \{\
 | ||
| .	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 14
 | ||
| .nr NX \\n(NQ
 | ||
| .nr CW \\n(L1
 | ||
| .ll \\n(CWu
 | ||
| .nr FL \\n(CWu*11u/12u
 | ||
| .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
 | ||
| .nr RO \\n(CW+\\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
 | ||
| .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>0 .in 0
 | ||
| .if \\n(IT>0 .TT
 | ||
| .if \\n(IT>0 .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 14
 | ||
| ..
 | ||
| .	\".de R3
 | ||
| .	\".pl 102
 | ||
| .	\".nr LT \\n(.l
 | ||
| .	\"..
 | ||
| .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 '\\*(LF'\\*(CF'\\*(RF'
 | ||
| .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
 | ||
| .if \\n(1T .sp 1
 | ||
| .if !\\n(1T .BG
 | ||
| .RT
 | ||
| .ne 4
 | ||
| .ft 3
 | ||
| ..
 | ||
| .	\"NH - numbered heading
 | ||
| .de NH
 | ||
| .RT
 | ||
| .if \\n(1T .sp 1
 | ||
| .if !\\n(1T .BG
 | ||
| .RT
 | ||
| .ne 4
 | ||
| .ft 3
 | ||
| .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.
 | ||
| .if \\na=0 .ds SN \\*(CN.
 | ||
| .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.
 | ||
| \\*(SN
 | ||
| ..
 | ||
| .	\"BG - begin, execute at first PP
 | ||
| .de BG
 | ||
| .br
 | ||
| .ME
 | ||
| .rm ME
 | ||
| .di
 | ||
| .ce 0
 | ||
| .nr KI 0
 | ||
| .hy 14
 | ||
| .nr 1T 1
 | ||
| .S\\n(ST
 | ||
| .rm S0
 | ||
| .rm S1
 | ||
| .rm S2
 | ||
| .rm S3
 | ||
| .rm OD
 | ||
| .rm OK
 | ||
| .rm TX
 | ||
| .rm AX
 | ||
| .rm WT
 | ||
| .rm CS
 | ||
| .rm TM
 | ||
| .rm IM
 | ||
| .rm MF
 | ||
| .rm MR
 | ||
| .rm RP
 | ||
| .rm I1
 | ||
| .rm I2
 | ||
| .rm I3
 | ||
| .rm I4
 | ||
| .rm I5
 | ||
| .rm CB
 | ||
| .rm E1
 | ||
| .rm 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=0 .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>0 .FS
 | ||
| .if \\n(FP>0 .FG
 | ||
| .if \\n(FP>0 .FE
 | ||
| .br
 | ||
| .if \\n(TV>0 .if n .sp 2
 | ||
| .if \\n(TV>0 .if t .sp 1
 | ||
| .fi
 | ||
| .ll \\n(LLu
 | ||
| ..
 | ||
| .de RA \"redefine abstract macros
 | ||
| .de AB
 | ||
| .br
 | ||
| .if !\\n(1T .BG
 | ||
| .ce 1
 | ||
| .sp 1
 | ||
| .if \\n(.$=0 ABSTRACT
 | ||
| .if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no"  \\$1
 | ||
| .if \\n(.$=0 .sp
 | ||
| .if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no" .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
 | ||
| .if \\n(VS>=41 .vs \\n(VSu
 | ||
| .if \\n(VS<=40 .vs \\n(VSp
 | ||
| \\..
 | ||
| ..
 | ||
| .	\"IP - indented paragraph
 | ||
| .de IP
 | ||
| .RT
 | ||
| .if !\\n(IP .nr IP +1
 | ||
| .sp \\n(PDu
 | ||
| .if \\n(.$-1 .nr I\\n(IR \\$2n
 | ||
| .in +\\n(I\\n(IRu
 | ||
| .nr TY \\n(TZ-\\n(.i
 | ||
| .ta \\n(I\\n(IRu \\n(TYuR
 | ||
| .if \\n(.$>0 \{\
 | ||
| .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
 | ||
| ..
 | ||
| .	\"LB - label paragraph
 | ||
| .de LB
 | ||
| .in +\\n(I\\n(IRu
 | ||
| .ta \\n(I\\n(IRu
 | ||
| .if \\n(.$ .ti -\\n(I\\n(IRu
 | ||
| .if \\n(.$ \&\\$1\t\c
 | ||
| ..
 | ||
| .de XP
 | ||
| .RT
 | ||
| .if !\\n(IP .nr IP +1
 | ||
| .sp \\n(PDu
 | ||
| .ne 3
 | ||
| .if \\n(.$=3 .nr I\\n(IR \\$3n
 | ||
| .if \\n(.$=4 .nr I\\n(IR \\$4n
 | ||
| .nr J\\n(IR \\n(IRu/2u
 | ||
| .if \\n(.$=4 .nr J\\n(IR \\$3n
 | ||
| .in +\\n(I\\n(IRu
 | ||
| .ta \\n(J\\n(IRu \\n(I\\n(IRu
 | ||
| .ti -\\n(I\\n(IRu
 | ||
| \0\\$1\t\\$2\t\c
 | ||
| ..
 | ||
| .	\"RS - prepare for double indenting
 | ||
| .de RS
 | ||
| .nr IS \\n(IP
 | ||
| .RT
 | ||
| .nr IP \\n(IS
 | ||
| .if \\n(IP>0 .in +\\n(I\\n(IRu
 | ||
| .nr IR +1
 | ||
| .nr I\\n(IR \\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
 | ||
| .if \\n(IR>0 .nr IR -1
 | ||
| .if \\n(IP<=0 .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
 | ||
| .po
 | ||
| .vs
 | ||
| .lt
 | ||
| .ps
 | ||
| .ft
 | ||
| ..
 | ||
| .	\"B - bold font
 | ||
| .de B
 | ||
| .nr PQ \\n(.f
 | ||
| .if t .ft 3
 | ||
| .if "\\$1"" .if n .ul 1000
 | ||
| .if !"\\$1"" .if n .ul 1
 | ||
| .if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
 | ||
| .if n .if \\n(.$=1 \&\\$1
 | ||
| .if n .if \\n(.$>1 \&\\$1\\c
 | ||
| .if n .if \\n(.$>1 \\&\\$2
 | ||
| ..
 | ||
| .	\"R - Roman font
 | ||
| .de R
 | ||
| .if n .ul 0
 | ||
| .ft 1
 | ||
| ..
 | ||
| .	\"I - italic font
 | ||
| .de I
 | ||
| .nr PQ \\n(.f
 | ||
| .if t .ft 2
 | ||
| .if "\\$1"" .if n .ul 1000
 | ||
| .if !"\\$1"" .if n .ul 1
 | ||
| .if t .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
 | ||
| .if n .if \\n(.$=1 \&\\$1
 | ||
| .if n .if \\n(.$>1 \&\\$1\\c
 | ||
| .if n .if \\n(.$>1 \\&\\$2
 | ||
| ..
 | ||
| .	\"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
 | ||
| .if \\n(.$>0 \&\\$3\s-2\\$1\s0\\$2
 | ||
| .if \\n(.$=0 .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
 | ||
| .di
 | ||
| .ev1
 | ||
| .ll \\n(FLu
 | ||
| .da FF
 | ||
| .br
 | ||
| .if \\n(IF>0 .tm Footnote within footnote-illegal.
 | ||
| .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=0 .nr WF 1
 | ||
| .if \\n(dl>\\n(CW .nr WF 1
 | ||
| .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
 | ||
| .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
 | ||
| .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
 | ||
| .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) .if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
 | ||
| ..
 | ||
| .\"	First page footer.
 | ||
| .de FS
 | ||
| .ev1
 | ||
| .br
 | ||
| .ll \\n(FLu
 | ||
| .da FG
 | ||
| ..
 | ||
| .de FE
 | ||
| .br
 | ||
| .di
 | ||
| .nr FP \\n(dn
 | ||
| .if \\n(1T=0 .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>0 .di FY
 | ||
| .if \\n(XX>0 .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 UL \" underline argument, don't italicize
 | ||
| .if t \\$1\l'|0\(ul'\\$2
 | ||
| .if n .I \\$1 \\$2
 | ||
| ..
 | ||
| .de UX
 | ||
| UNIX
 | ||
| ..
 | ||
| .de US
 | ||
| the
 | ||
| .UX
 | ||
| operating system
 | ||
| ..
 | ||
| .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
 | ||
| .BB
 | ||
| .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'
 | ||
| .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
 | ||
| .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
 | ||
| .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
 | ||
| ..
 | ||
| .IZ
 | ||
| .rm IZ
 | ||
| .\" ------------------- VARIABLES ------------------------------
 | ||
| .\" \na - Current chapter
 | ||
| .\" \nb - Current section
 | ||
| .\" \nc - Current subsection 
 | ||
| .\" \nd - Set to 0 initially, 1 by PT,  2 by .PB  Used to control running head
 | ||
| .\" \ne - Current equation number
 | ||
| .\" \ng - Used to count items in numbered lists
 | ||
| .\" \nh - Counts number of times CP has been invoked
 | ||
| .\" \nj - Set to 1 iff footer page number needed
 | ||
| .\" \nk - Last figure number used
 | ||
| .\" \nL - 1 if depth printed for each page
 | ||
| .\" \nl - 1 old Agfa length to be used
 | ||
| .\" \np - Numbers end-of-chapter problems
 | ||
| .\" \nq - 1 for double spaced text, smaller vert. margins
 | ||
| .\" \ns - initial page number
 | ||
| .\" \nt - Variable part of spacing inside .BI macro
 | ||
| .\" \nv - Scratch register in lower case roman numerals
 | ||
| .\" \nx - Scratch register
 | ||
| .\" ------------------- GENERAL PARAMETERS ---------------------
 | ||
| .nr BO 43		\" number of lines of text per page
 | ||
| .nr PO 1.3i
 | ||
| .po \n(PO
 | ||
| .if \nq=1 .ls 2		\" -rq1 invokes double spacing
 | ||
| .nr LL 5.67i
 | ||
| .if t \{
 | ||
| .nr PL 29.73c
 | ||
| .nr PI 0.25i\}
 | ||
| .if n \{
 | ||
| .nr LL 80m
 | ||
| .nr PL 11.0i
 | ||
| .nr PI 3m\}
 | ||
| .pl \n(PLu
 | ||
| .nr HM (\n(PLu-(\n(BOu*\n(VSu))/2u
 | ||
| .nr FM \n(PLu-(\n(HMu+((\n(BOu-1u)*\n(VSu)+1u)
 | ||
| .nr xx \n(HMu%\n(VZu
 | ||
| .nr HM \n(HMu-\n(xxu
 | ||
| .nr FM \n(FMu+\n(xxu
 | ||
| .nr t 0 0
 | ||
| .\" ------------------- INITIALIZATION -------------------------
 | ||
| .nr d 0 0
 | ||
| .nr e 0 1
 | ||
| .nr h 0 1
 | ||
| .nr j 1 0
 | ||
| .nr t 0 0
 | ||
| .tr ~
 | ||
| .ds CT "~	\"initially empty
 | ||
| .ND		\"suppress date on bottom of page
 | ||
| .af v i		\"register v is in lower case roman
 | ||
| .ch FO -\n(FMu
 | ||
| .ch BT -\n(FMu+0.5P
 | ||
| .\" ------------------- ALIGN TEXT TO A WHOLE NUMBER OF PICAS ----
 | ||
| .de AL
 | ||
| 'nr xx \\n(.du%\\n(VZu
 | ||
| 'nr xy \\n(VZu-\\n(xx
 | ||
| 'if \\n(xy=\\n(VZu .nr xy 0
 | ||
| 'sp \\n(xyu
 | ||
| ..
 | ||
| .\" ------------------- DIVISION OF TEXT INTO LOGICAL UNITS ----
 | ||
| .\"	Define chapter number
 | ||
| .de CP
 | ||
| .ds CN \\$1
 | ||
| .ds CX CHAP.
 | ||
| .if '\\$1'A' .ds CX APPENDIX
 | ||
| .if '\\$1'B' .ds CX APPENDIX
 | ||
| .if '\\$1'C' .ds CX APPENDIX
 | ||
| .if '\\$1'D' .ds CX APPENDIX
 | ||
| .if '\\$1'E' .ds CX APPENDIX
 | ||
| .if '\\$1'F' .ds CX APPENDIX
 | ||
| .if '\\$1'A' .nr a 0 0
 | ||
| .if '\\$1'B' .nr a 0 0
 | ||
| .if '\\$1'C' .nr a 0 0
 | ||
| .if '\\$1'D' .nr a 0 0
 | ||
| .if '\\$1'E' .nr a 0 0
 | ||
| .if '\\$1'F' .nr a 0 0
 | ||
| .nr H1 \\$1 0
 | ||
| .nr H2 0 1
 | ||
| .nr a \\$1 0
 | ||
| .nr b 0 1
 | ||
| .nr c 0 1
 | ||
| .nr d 1 1
 | ||
| .nr e 0 1
 | ||
| .nr k 0 1
 | ||
| .nr s \\n%
 | ||
| .if \\nq=1 .PH 6
 | ||
| .ll \\n(LLu
 | ||
| .nr LT \\n(LLu
 | ||
| .lt \\n(LLu
 | ||
| .ll \\n(LLu
 | ||
| .pl \n(PLu
 | ||
| .po \n(POu
 | ||
| .in 0
 | ||
| .nr PS \\n(PZ
 | ||
| .nr VS \\n(VZu
 | ||
| .nr PD 0i
 | ||
| .ds ST
 | ||
| .ds CT \\$2
 | ||
| .if !'\\$3'' .as CT " \\$3
 | ||
| .if \\nh .bp
 | ||
| .rs
 | ||
| .sp 16P
 | ||
| .B
 | ||
| .ps 30
 | ||
| .vs 32
 | ||
| .ce 1
 | ||
| \\$1
 | ||
| .sp 4P
 | ||
| .ps 18
 | ||
| .vs 20
 | ||
| .ce 1
 | ||
| \\$2
 | ||
| .sp 0.25i
 | ||
| .if !'\\$3'' .ce 1
 | ||
| .if !'\\$3'' \\$3
 | ||
| .ps 10
 | ||
| .vs 12
 | ||
| .R
 | ||
| .nr x \\n(.pu/2u
 | ||
| .sp |\\nxu
 | ||
| .nr h +1 1
 | ||
| .tr _\\(ru
 | ||
| .AL
 | ||
| ..
 | ||
| .de SP
 | ||
| .sp \\$1	\"used for temporary (page balancing ) fill
 | ||
| ..
 | ||
| .de HS
 | ||
| .sp 0.5
 | ||
| ..
 | ||
| .\"	Major section (numbered)
 | ||
| .de SE
 | ||
| .nr b +1 1
 | ||
| .nr c 0 1
 | ||
| .ds ST \\$1
 | ||
| .sp 1
 | ||
| .NH 2
 | ||
| \\$1
 | ||
| .sp 1
 | ||
| ..
 | ||
| .\"	Subsection (numbered)
 | ||
| .de SS
 | ||
| .nr c +1 1
 | ||
| .NH 3
 | ||
| \\$1
 | ||
| .sp 1
 | ||
| ..
 | ||
| .de UU
 | ||
| .SH
 | ||
| \\$1
 | ||
| .sp 1
 | ||
| ..
 | ||
| .\"-------------------- PAGE TRANSITION MACROS USED BY -MS ------
 | ||
| .de PH	\"select special running heads
 | ||
| .nr d \\$1
 | ||
| .if \\$1=4 .nr j 1
 | ||
| .ds CT \\$2
 | ||
| ..
 | ||
| .de PT
 | ||
| .AL
 | ||
| .pc %
 | ||
| .PN \\n%
 | ||
| 'sp |\\n(HMu-0.35i
 | ||
| .ps 10
 | ||
| .\"
 | ||
| .\" nd = 0 means no running head this time, normal next time
 | ||
| .if \\nd=0 \{\
 | ||
| .tl ''''	\" no running head on initial page transition
 | ||
| .nr j 1 0\}
 | ||
| .\"
 | ||
| .\" nd = 1 is normal case: chapter heading even (left) and section odd(right)
 | ||
| .if \\nd=1\{\
 | ||
| .if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"normal case even page
 | ||
| .if o .if \\nb>0 .tl 'SEC.~ \\*(CN.\\nb'\\*(ST'\fB\s+2%\s-2\fR'
 | ||
| .if o .if \\nb=0 .tl '''\fB\s+2%\s-2\fR'\}
 | ||
| .if o .if \\nb=-999 .tl '\\*(CX~ \\*(CN'\\*(CT'\fB\s+2%\s-2\fR'\}
 | ||
| .\"
 | ||
| .\" nd = 2 is for PROBLEMS; even normal, odd  CHAP. ... PROBLEMS %
 | ||
| .if \\nd=2\{\
 | ||
| .if e .tl '\fB\s+2%\s-2\fR'\\*(CT'\\*(CX~ \\*(CN' \"even page PROBLEMS
 | ||
| .if o .if \\nd=2 .tl '\\*(CX~ \\*(CN'PROBLEMS'\fB\s+2%\s-2\fR' \}
 | ||
| .\"
 | ||
| .\" nd = 3 is for index, problem solutions & other cases with same odd even hd
 | ||
| .if \\nd=3\{\
 | ||
| .if e .tl '\fB\s+2%\s-2\fR'\\*(CT''
 | ||
| .if o .tl ''\\*(CT'\fB\s+2%\s-2\fR'\}
 | ||
| .\"
 | ||
| .\" nd = 4 is like nd = 3, except page numbers are lower case roman
 | ||
| .if \\nd=4\{\
 | ||
| .nr v \\n%
 | ||
| .if e .tl '\fB\s+2\\nv\s-2\fR'\\*(CT''
 | ||
| .if o .tl ''\\*(CT'\fB\s+2\\nv\s-2\fR'\}
 | ||
| .\"
 | ||
| .\" nd = 5 suppresses running heads like nd=0, only it keeps them suppressed
 | ||
| .if \\nd=5 .tl ''''
 | ||
| .\" nd = 6 gives page number in right-hand corner only
 | ||
| .if \\nd=6 .tl '''%'
 | ||
| .if \\nd=0 .nr d 1 0	\" henceforth normal running heads
 | ||
| ..
 | ||
| .de BT
 | ||
| .if \\n%=\\ns\{\
 | ||
| .nr x \\n(HMu+(\\n(BO*\\n(VSu)+2P
 | ||
| 'sp |\\nxu
 | ||
| .nr v \\n%
 | ||
| .ie \\nd=4 .tl ''\fB\s-1\\nv\s0\fP''
 | ||
| .el .tl ''\fB\s-1\\n%\s0\fP''\}
 | ||
| .nr j 0 0
 | ||
| .if \\nd=0 .nr d 1 0
 | ||
| ..
 | ||
| .\"--------------- CHECK FOR INITIAL PAGE NUMBER ---------------
 | ||
| .de PC
 | ||
| .if \n%<\\$1\{
 | ||
| .tm You forgot to set the page number.  Run aborted. Use troff -n
 | ||
| .ex\}
 | ||
| .if \n%>\\$2\{
 | ||
| .tm You forgot to set the page number.  Run aborted. Use troff -n
 | ||
| .ex\}
 | ||
| ..
 | ||
| .\"-------------------- LISTS OF THINGS ------------------------
 | ||
| .\"	Start list
 | ||
| .de LI
 | ||
| .nr g 0 1
 | ||
| .in +0.25i
 | ||
| .nr LL -0.25i
 | ||
| .ll -0.25i
 | ||
| .ne 3v
 | ||
| .HS
 | ||
| ..
 | ||
| .\"	End list
 | ||
| .de LX
 | ||
| .sp 1
 | ||
| .in -0.25i
 | ||
| .nr LL +0.25i
 | ||
| .ll +0.25i
 | ||
| .LP
 | ||
| ..
 | ||
| .\"	List item
 | ||
| .de IT
 | ||
| .HS
 | ||
| .nr g \\ng+1 1
 | ||
| .ie \\ng<10 .IP \0\\ng. 4
 | ||
| .el .IP \\ng. 4
 | ||
| ..
 | ||
| .\"Short unnumbered lines
 | ||
| .de UN
 | ||
| .HS
 | ||
| ..
 | ||
| .\"-------------------- END OF CHAPTER EXERCISES ---------------
 | ||
| .de PB
 | ||
| .nr d 2 0
 | ||
| .if \\nq=1 .PH 6
 | ||
| .ne 1.5i
 | ||
| .sp 0.5i
 | ||
| .ce 1
 | ||
| .B PROBLEMS
 | ||
| .sp 1
 | ||
| .nr p 0 1
 | ||
| ..
 | ||
| .de PR
 | ||
| .ps 11
 | ||
| .vs 13
 | ||
| .nr PS 11
 | ||
| .nr VS 13.01p
 | ||
| .HS
 | ||
| .nr p +1 1
 | ||
| .in \w'00.  'u
 | ||
| .ti -\w'00.  'u
 | ||
| .if \\np>9 \fB\\np.\fR~~\c
 | ||
| .if \\np<10 \fB\0\\np.\fR~~\c
 | ||
| ..
 | ||
| .de AA
 | ||
| .sp 3
 | ||
| .if n .nr LL 84m
 | ||
| .nr PS \\n(PZ
 | ||
| .nr VS \\n(VZu
 | ||
| .nr a \\$1 1
 | ||
| .nr b 0 0
 | ||
| .nr p 0 1
 | ||
| .ce 1
 | ||
| .nr x 1
 | ||
| .if '\\$1'A' .nr x 0
 | ||
| .if '\\$1'B' .nr x 0
 | ||
| .if '\\$1'C' .nr x 0
 | ||
| .if \\nq=1 .PH 6
 | ||
| .if \\nx\fBSOLUTIONS TO CHAPTER \\$1 PROBLEMS\fR
 | ||
| .if !\\nx\fBSOLUTIONS TO APPENDIX \\$1 PROBLEMS\fR
 | ||
| .sp 1v
 | ||
| ..
 | ||
| .de AN
 | ||
| .HS
 | ||
| .ps \\n(PZ
 | ||
| .vs \\n(VSu
 | ||
| .nr PS \\n(PZ
 | ||
| .nr VS \\n(VZu
 | ||
| .nr p +1 1
 | ||
| .in \w'00.  'u
 | ||
| .ti -\w'00.  'u
 | ||
| .if \\np>9 \fB\\np.\fR~~\c
 | ||
| .if \\np<10 \fB\0\\np.\fR~~\c
 | ||
| ..
 | ||
| .\"-------------------- BIBLIOGRAPHY ---------------------------
 | ||
| .de BB
 | ||
| .sp 2
 | ||
| .in 0.25i
 | ||
| ..
 | ||
| .de BI
 | ||
| .ps 10
 | ||
| .vs 12
 | ||
| .sp \\ntu
 | ||
| .HS
 | ||
| .if n .HS
 | ||
| .ti -0.30i
 | ||
| .R
 | ||
| ..
 | ||
| .\"-------------------- QUOTES ---------------------------------
 | ||
| .ds OQ `\h'-1p'`
 | ||
| .ds CQ '\h'-1p''
 | ||
| .\"-------------------- FIGS.-----------------------------------
 | ||
| .de FC 
 | ||
| 'sp 1v
 | ||
| .ps 10
 | ||
| .vs 12
 | ||
| .in +0.5i
 | ||
| .ll -0.5i
 | ||
| .B
 | ||
| .if '\\$1'C' .ce 1
 | ||
| Fig.\|\|\|\\*(CN-\\n+k.~\c
 | ||
| .R
 | ||
| ..
 | ||
| .de BF
 | ||
| .KF
 | ||
| 'sp 1v
 | ||
| .nr TP \\n(.s
 | ||
| .nr TV \\n(.v
 | ||
| .nr TF \\n(.f
 | ||
| .nr r 0 0
 | ||
| .if \\nq=0 .if  "\\$1"PAGE" .KP
 | ||
| .if \\nq=0 .if  "\\$1"PAGE" .nr r 1 0
 | ||
| .if \\nq=0 .if !"\\$1"PAGE" .sp \\$1
 | ||
| .if \\nq=1 .sp 0.5i
 | ||
| .FC \\$2
 | ||
| ..
 | ||
| .de EF
 | ||
| .in -0.5i
 | ||
| .ll +0.5i
 | ||
| .ps \\n(TP
 | ||
| .vs \\n(TV
 | ||
| .ft \\n(TF
 | ||
| 'if \\nr==0 'sp 30u
 | ||
| 'AL
 | ||
| .KE
 | ||
| ..
 | ||
| .de NF
 | ||
| .nr x \\nk+1
 | ||
| .ie !'\\$1'X' Fig.~\\*(CN-\\nx\\$1
 | ||
| .el Figure \\*(CN-\\nx\\$2
 | ||
| ..
 | ||
| .de PF
 | ||
| .ie !'\\$1'X' Fig.~\\*(CN-\\nk\\$1
 | ||
| .el Figure \\*(CN-\\nk\\$2
 | ||
| ..
 | ||
| .\"-------------------- MULTIPLE BLANK PAGES -------------------
 | ||
| .de MP
 | ||
| .if \\$1 \{\
 | ||
| .KF
 | ||
| .KP
 | ||
| .KE
 | ||
| .MP \\$1-1
 | ||
| .if \\$1<2 .nr k +1 1
 | ||
| \}
 | ||
| ..
 | ||
| .\"-------------------- TABLE OF CONTENTS ----------------------
 | ||
| .de XT
 | ||
| .if t .ta 0.4i 0.8i 0.9i \\n(LLuR
 | ||
| .if n .ta 0.3i 1.0i 1.1i 5.0iR
 | ||
| .ps 11
 | ||
| .vs 13
 | ||
| .nr a \\$1 0
 | ||
| .nr b 0 1
 | ||
| .nr c 0 1
 | ||
| .sp 0.40i
 | ||
| .ne 0.3i
 | ||
| .B
 | ||
| \\s18\\$1\\s12	\\$2	\\$3\\fR\\s11
 | ||
| .br
 | ||
| .if !'\\$4''	\\fB\\$4\\fR
 | ||
| .R
 | ||
| .sp 0.5v
 | ||
| ..
 | ||
| .de XE
 | ||
| .nr b +1 1
 | ||
| .nr c 0 1
 | ||
| .HS
 | ||
| 	\\na.\\nb	\\$1   \\$2
 | ||
| ..
 | ||
| .de XS
 | ||
| .nr c +1 1
 | ||
| 		\\na.\\nb.\\nc   \\$1   \\$2
 | ||
| ..
 | ||
| .\"------------------- INDEX -----------------------------------
 | ||
| .de IL
 | ||
| .nr PS \\n(PZ-2
 | ||
| .nr VS 12.01p
 | ||
| .LP
 | ||
| .nf
 | ||
| .na
 | ||
| .sp 2v
 | ||
| .ne 2
 | ||
| \fB\s+4\\$1\\s0\fR
 | ||
| .sp 1v
 | ||
| ..
 | ||
| .\"------------------- NEW .B MACRO ----------------------------
 | ||
| .rm B
 | ||
| .de B
 | ||
| .nr PQ \\n(.f
 | ||
| .ft 3
 | ||
| .if !"\\$1"" \&\\$1\\f\\n(PQ\\$2
 | ||
| ..
 | ||
| .\"--------------------- FIXES NEEDED TO -MS -------------------
 | ||
| .\" Remove .if n .ul 1000 from .NH
 | ||
| .\" Remove .if n .ul 1000 from .SH
 | ||
| .\" Fix to allow letters as chapter "numbers"
 | ||
| .\"
 | ||
| .\" Here is the b3mac file
 | ||
| .nr Cs 10
 | ||
| .fp 5 H
 | ||
| .ds fm \(fm
 | ||
| .ds em \(em
 | ||
| .de F
 | ||
| \\fI\\$1\\fR\\$2
 | ||
| ..
 | ||
| .de CC
 | ||
| .HS
 | ||
| ~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0
 | ||
| .HS
 | ||
| .LP
 | ||
| ..
 | ||
| .de Cx
 | ||
| ~~~~~\\s\\n(Cs\\f5\\$1\\fP\\s0\\$2
 | ||
| ..
 | ||
| .de Cb
 | ||
| .in +0.25i
 | ||
| \\s\\n(Cs
 | ||
| .HS
 | ||
| \\f5
 | ||
| ..
 | ||
| .de Ce
 | ||
| .HS
 | ||
| \\fR
 | ||
| .nr PS \\n(PZ
 | ||
| .nr VS \\n(VZ
 | ||
| .LP
 | ||
| .in -0.25i
 | ||
| ..
 | ||
| .de SY
 | ||
| \\$3\s-2\\$1\s+2\\$2
 | ||
| ..
 | ||
| .de SM
 | ||
| \\$3\s-1\\$1\s+1\\$2
 | ||
| ..
 | ||
| .de FN
 | ||
| \&\\fI\\$1\\fR\\$2
 | ||
| ..
 | ||
| .de DI
 | ||
| \&\\fI\\$1\\fR\\$2
 | ||
| ..
 | ||
| .de FI
 | ||
| \&\\fI\\$1\\fR\\$2
 | ||
| ..
 | ||
| .de LN
 | ||
| .nr x \\$1+\\$2
 | ||
| \\$4line
 | ||
| .L4 \\nx \\$3
 | ||
| ..
 | ||
| .de LS
 | ||
| .nr x \\$1+\\$2
 | ||
| .nr y \\$1+\\$3
 | ||
| .nr z \\nx+1
 | ||
| \\$5lines
 | ||
| .L4 \\nx
 | ||
| .ie \\ny=\\nz and
 | ||
| .el to
 | ||
| .L4 \\ny \\$4
 | ||
| ..
 | ||
| .ds SQ \(fm\h'-0.05c'\(fm
 | ||
| .de L4
 | ||
| .ie \\$1<10 000\\$1\\$2
 | ||
| .el .ie \\$1<100 00\\$1\\$2
 | ||
| .el .ie \\$1<1000 0\\$1\\$2
 | ||
| .el \\$1\\$2
 | ||
| ..
 | ||
| .de KW
 | ||
| \f5\\$1\\$2\fR
 | ||
| ..
 | ||
| .ds M0 MINIX
 | ||
| .ds M1 \\s-1MINIX\\s+1
 | ||
| .ds M2 \\s-2MINIX\\s+2
 | ||
| .ds M9 \\s-1MINIX\\s+1
 | ||
| .ds m0 minix
 | ||
| .de MX
 | ||
| \s-1MINIX 3\s-1\\$1
 | ||
| ..
 | ||
| .de Ux
 | ||
| \s-2UNIX\s+2\\$1
 | ||
| ..
 | ||
| .tr _\(ru
 | ||
| .de UX
 | ||
| \s-2UNIX\s+2\\$1
 | ||
| ..
 | ||
| .ds Mx \\s-1MINIX\\s0
 | ||
| .ds Mp \\s-1MINIX-PC\\s0
 | ||
| .ds Ms \\s-1MINIX-ST\\s0
 | ||
| .de CW
 | ||
| \f5
 | ||
| ..
 | ||
| .de Bu
 | ||
| .HS
 | ||
| .IP "\0\(bu" 4
 | ||
| ..
 | ||
| .de CD
 | ||
| .ne 2
 | ||
| .if t .ta 0.9i 1.15i 2.75i 3.25i 3.75i
 | ||
| .if n .ta 11m 15m 40m
 | ||
| .nr x 0 0
 | ||
| .nr y 0 0
 | ||
| .nr z 0 0
 | ||
| .if n #\\$1
 | ||
| .if n .br
 | ||
| \\fBCommand:\&	\\$1\\fR
 | ||
| .br
 | ||
| ..
 | ||
| .de SX
 | ||
| .if \\nx<=0 \\fBSyntax:\&	\\$1
 | ||
| .if \\nx>0 \&	\\fB\\$1
 | ||
| .nr x 1 1
 | ||
| .br
 | ||
| ..
 | ||
| .de FL
 | ||
| .if \\ny<=0 \\fBFlags:\&	\\fB\\$1	\\fR\\$2
 | ||
| .if \\ny>0 \& 	\\fB\\$1	\\fR\\$2
 | ||
| .nr y 1 1
 | ||
| .br
 | ||
| ..
 | ||
| .de EX
 | ||
| .br
 | ||
| .nf
 | ||
| .if \\nz<=0 \\fB\&Examples:	\\fR\\$1	\\fR# \\$2
 | ||
| .if \\nz>0 \&	\\fR\\$1	\\fR# \\$2
 | ||
| .nr z 1 1
 | ||
| .br
 | ||
| ..
 | ||
| .de EY
 | ||
| .br
 | ||
| .nf
 | ||
| .if \\nz<=0 \\fB\&Example:	\\fR\\$1	\\fR# \\$2
 | ||
| .if \\nz>0 \&	\\fR\\$1	\\fR# \\$2
 | ||
| .nr z 1 1
 | ||
| .br
 | ||
| ..
 | 
