.\" 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-2MINIX\s+2\\$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 ..