tmac.s 23 KB

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