tmac.s 22 KB

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