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. .nr P1 .4i \" program indent in .P1
  834. .if \\n(.$ .nr P1 \\$1
  835. .br
  836. .nr v \\n(.v
  837. .di p1
  838. .in \\n(P1u
  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. .in -\\n(P1u
  854. .di
  855. .br
  856. .sp \\n(DVu
  857. .br
  858. .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu
  859. .nf
  860. .p1
  861. .sp \\n(DVu
  862. .br
  863. .fi
  864. ..
  865. .
  866. .de ME
  867. .nr SJ \\n(.j
  868. .if \\n(LL .nr LT \\n(LL
  869. .nr YE 1
  870. .if !\\n(PO .nr PO \\n(.o
  871. .if \\n(mo-0 .ds MO January
  872. .if \\n(mo-1 .ds MO February
  873. .if \\n(mo-2 .ds MO March
  874. .if \\n(mo-3 .ds MO April
  875. .if \\n(mo-4 .ds MO May
  876. .if \\n(mo-5 .ds MO June
  877. .if \\n(mo-6 .ds MO July
  878. .if \\n(mo-7 .ds MO August
  879. .if \\n(mo-8 .ds MO September
  880. .if \\n(mo-9 .ds MO October
  881. .if \\n(mo-10 .ds MO November
  882. .if \\n(mo-11 .ds MO December
  883. .if \\n(dw-0 .ds DW Sunday
  884. .if \\n(dw-1 .ds DW Monday
  885. .if \\n(dw-2 .ds DW Tuesday
  886. .if \\n(dw-3 .ds DW Wednesday
  887. .if \\n(dw-4 .ds DW Thursday
  888. .if \\n(dw-5 .ds DW Friday
  889. .if \\n(dw-6 .ds DW Saturday
  890. .nr yP (\\n(yr+2000)/100)
  891. .nr yD (\\n(yr%100
  892. .af yD 01
  893. .if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
  894. .if "\\*(CF"" .if n .ds CF "\\*(DY
  895. ..
  896. . \"EM end up macro - process left over keep-release
  897. .de EM
  898. .br
  899. .if \\n(AJ .tm Syntax error: no .AE
  900. .if \\n(IF .ab Missing .FE somewhere
  901. .if t .if \\n(TB=0 .wh -1p CM
  902. .if \\n(TB \{\&\c
  903. ' bp
  904. . NP
  905. . ch CM 160\}
  906. ..
  907. . \"NP new page
  908. .de NP
  909. .rr PE
  910. .if \\n(FM+\\n(HM>=\\n(.p \{\
  911. . tm Margins bigger than page length.
  912. . ab
  913. . ex\}
  914. .if t .CM
  915. .if !\\n(HM .nr HM 1i
  916. 'sp \\n(HMu/2u
  917. .ev 1
  918. .nr PX \\n(.s
  919. .nr PF \\n(.f
  920. .nr PV \\n(.v
  921. .lt \\n(LTu
  922. .ps \\n(PS
  923. .vs \\n(PS+2
  924. .ft 1
  925. .if \\n(PO .po \\n(POu
  926. .PT
  927. .ps \\n(PX
  928. .vs \\n(PVu
  929. .ft \\n(PF
  930. .ev
  931. 'sp |\\n(HMu
  932. .nr XX 0 1
  933. .nr YY 0-\\n(FMu
  934. .ch FO 16i
  935. .ch FX 17i
  936. .ch FO \\n(.pu-\\n(FMu
  937. .ch FX \\n(.pu-\\n(FMu
  938. .if \\n(MF .FV
  939. .nr MF 0
  940. .mk
  941. .os
  942. .ev 1
  943. .if !\\n(TD .if \\n(TC<5 .XK
  944. .nr TC 0
  945. .ns
  946. .ev
  947. .nr TQ \\n(.i
  948. .nr TK \\n(.u
  949. .if \\n(IT \{\
  950. . in 0
  951. . nf
  952. . TT
  953. . in \\n(TQu
  954. . if \\n(TK .fi\
  955. \}
  956. .mk #T
  957. ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
  958. ..
  959. .de XK
  960. .nr TD 1
  961. .nf
  962. .ls 1
  963. .in 0
  964. .rn KJ KL
  965. .KL
  966. .rm KL
  967. .if "\\n(.z"KJ" .di
  968. .nr TB 0
  969. .if "\\n(.z"KJ" .nr TB 1
  970. .br
  971. .in
  972. .ls
  973. .fi
  974. .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
  975. . if \\n(NX>1 .RC
  976. . if \\n(NX<1 .bp\}
  977. .nr TD 0
  978. ..
  979. .de KD
  980. .nr KM 0
  981. .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
  982. . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
  983. . sp 15i\}
  984. .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
  985. .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
  986. .if \\n(KM>0 \!.KD \\$1 \\$2
  987. .nr KR \\n(.t
  988. .if \\n(nl<=\\n(HM .nr KR 32767
  989. .if \\n(KM=0 \{\
  990. . if \\n(KR<\\$1 \{\
  991. . di KJ
  992. . nr KM 1\}
  993. . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
  994. .rs
  995. .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
  996. ..
  997. .de PT
  998. .lt \\n(LLu
  999. .pc %
  1000. .nr PN \\n%
  1001. .if \\n%-1 .tl \\*(LH\\*(CH\\*(RH
  1002. .lt \\n(.lu
  1003. ..
  1004. . \"FO - footer of page
  1005. .de FO
  1006. .rn FO FZ
  1007. .if \\n(IT>0 \{\
  1008. . nr T. 1
  1009. . if \\n(FC=0 .T# 1
  1010. . br\}
  1011. .nr FC +1
  1012. .if \\n(NX<2 .nr WF 0
  1013. .nr dn 0
  1014. .if \\n(FC<=1 .if \\n(XX .XF
  1015. .rn FZ FO
  1016. .nr MF 0
  1017. .if \\n(dn .nr MF 1
  1018. .if !\\n(WF \{\
  1019. . nr YY 0-\\n(FMu
  1020. . ch FO \\n(YYu\}
  1021. .if !\\n(dn .nr WF 0
  1022. .if \\n(FC<=1 .if \\n(XX=0 \{\
  1023. . if \\n(NX>1 .RC
  1024. . if \\n(NX<1 'bp\}
  1025. .nr FC -1
  1026. .if \\n(ML>0 .ne \\n(MLu
  1027. ..
  1028. . \"2C - begin double column
  1029. .de 2C
  1030. .MC \" default MC is double column
  1031. ..
  1032. .de MC \" multiple columns- arg is line length
  1033. .nr L1 \\n(LL*7/15
  1034. .if \\n(CW>=0 .nr L1 \\n(CWu
  1035. .if \\n(.$ .nr L1 \\$1n
  1036. .if \\n(GW>=0 .nr GW \\n(GWu
  1037. .if \\n(.$>1 .nr GW \\$2n
  1038. .nr NQ \\n(LL/\\n(L1
  1039. .if \\n(NQ<1 .nr NQ 1
  1040. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  1041. .if !\\n(1T \{\
  1042. . BG
  1043. . if n .sp 4
  1044. . if t .sp 2\}
  1045. .if \\n(NX=0 .nr NX 1
  1046. .if !\\n(NX=\\n(NQ \{\
  1047. . RT
  1048. . if \\n(NX>1 .bp
  1049. . mk
  1050. . nr NC 1
  1051. . po \\n(POu\}
  1052. .if \\n(NQ>1 .hy \\n(HY
  1053. .nr NX \\n(NQ
  1054. .if \\n(NX>1 .nr CW \\n(L1
  1055. .ll \\n(L1u
  1056. .nr FL \\n(L1u*11u/12u
  1057. .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
  1058. .nr RO \\n(L1+\\n(GW
  1059. .ns
  1060. ..
  1061. .de RC
  1062. .ie \\n(NC>=\\n(NX .C2
  1063. .el .C1
  1064. ..
  1065. .de C1
  1066. .rt
  1067. .po +\\n(ROu
  1068. .nr NC +1
  1069. .if \\n(NC>\\n(NX .nr NC 1
  1070. .nr XX 0 1
  1071. .nr YY 0-\\n(FMu
  1072. .if \\n(MF .FV
  1073. .ch FX \\n(.pu-\\n(FMu
  1074. .ev 1
  1075. .if \\n(TB .XK
  1076. .nr TC 0
  1077. .ev
  1078. .nr TQ \\n(.i
  1079. .if \\n(IT \{\
  1080. . in 0
  1081. . TT
  1082. . in \\n(TQu\}
  1083. .mk #T
  1084. .ns
  1085. ..
  1086. .de C2
  1087. .po \\n(POu
  1088. .nr NC +1
  1089. .if \\n(NC>\\n(NX .nr NC 1
  1090. 'bp
  1091. ..
  1092. . \"1C - return to single column format
  1093. .de 1C
  1094. .MC \\n(LLu
  1095. .hy \\n(HY
  1096. ..
  1097. .de MH
  1098. Bell Laboratories
  1099. Murray Hill, New Jersey 07974
  1100. ..
  1101. .de PY
  1102. Bell Laboratories
  1103. Piscataway, New Jersey 08854
  1104. ..
  1105. .de BT
  1106. .nr PX \\n(.s
  1107. .nr PF \\n(.f
  1108. .ft 1
  1109. .ps \\n(PS
  1110. 'lt \\n(LTu
  1111. .po \\n(POu
  1112. .if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
  1113. .ft \\n(PF
  1114. .ps \\n(PX
  1115. ..
  1116. . \"PP - paragraph
  1117. .de PP
  1118. .RT
  1119. .if \\n(1T .sp \\n(PDu
  1120. .ti +\\n(PIu
  1121. ..
  1122. . \"SH - (unnumbered) section heading
  1123. .de SH
  1124. .ti \\n(.iu
  1125. .RT
  1126. .ie \\n(1T .sp 1
  1127. .el .BG
  1128. .RT
  1129. .ne 4
  1130. .ft 3
  1131. .if n .ul 1000
  1132. ..
  1133. . \"NH - numbered heading
  1134. .de N{
  1135. .RT
  1136. .ie \\n(1T .sp 1
  1137. .el .BG
  1138. .RT
  1139. .ne 4
  1140. .ft 3
  1141. .if n .ul 1000
  1142. .nr NS \\$1
  1143. .if !\\n(.$ .nr NS 1
  1144. .if !\\n(NS .nr NS 1
  1145. .nr H\\n(NS +1
  1146. .if !\\n(NS-4 .nr H5 0
  1147. .if !\\n(NS-3 .nr H4 0
  1148. .if !\\n(NS-2 .nr H3 0
  1149. .if !\\n(NS-1 .nr H2 0
  1150. .if !\\$1 .if \\n(.$ .nr H1 1
  1151. .ds SN \\n(H1.
  1152. .ti \\n(.iu
  1153. .if \\n(NS-1 .as SN \\n(H2.
  1154. .if \\n(NS-2 .as SN \\n(H3.
  1155. .if \\n(NS-3 .as SN \\n(H4.
  1156. .if \\n(NS-4 .as SN \\n(H5.
  1157. ..
  1158. .de NH
  1159. .N{ \\$1
  1160. \\*(SN
  1161. ..
  1162. . \"BG - begin, execute at first PP
  1163. .de BG
  1164. .br
  1165. .ME
  1166. .rm ME
  1167. .di
  1168. .ce 0
  1169. .nr KI 0
  1170. .hy \\n(HY
  1171. .nr 1T 1
  1172. .nr CS 0
  1173. .S\\n(ST
  1174. .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
  1175. .de TL
  1176. .ft 3
  1177. .sp
  1178. .if n .ul 100
  1179. .ce 100
  1180. .ps +2
  1181. \\..
  1182. .de AU
  1183. .ft 2
  1184. .if n .ul 0
  1185. .ce 100
  1186. .sp
  1187. .NL
  1188. \\..
  1189. .de AI
  1190. .ft 1
  1191. .ce 100
  1192. .if n .ul 0
  1193. .if n .sp
  1194. .if t .sp .5
  1195. .NL
  1196. \\..
  1197. .RA
  1198. .rm RA
  1199. .rn FJ FS
  1200. .rn FK FE
  1201. .nf
  1202. .ev 1
  1203. .ps \\n(PS-2
  1204. .vs \\n(.s+2p
  1205. .ev
  1206. .if !\\n(KG .nr FP 0
  1207. .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
  1208. .nr KG 0
  1209. .if \\n(FP \{\
  1210. . FS
  1211. . FG
  1212. . FE\}
  1213. .br
  1214. .if n .if \\n(TV .sp 2
  1215. .if t .if \\n(TV .sp 1
  1216. .fi
  1217. .ll \\n(LLu
  1218. .ev 1
  1219. .if !\\n(FL .nr FL \\n(LLu*11u/12u
  1220. .ll \\n(FLu
  1221. .ev
  1222. ..
  1223. .de RA \"redefine abstract macros
  1224. .de AB
  1225. .br
  1226. .if !\\n(1T .BG
  1227. .ce 1
  1228. .sp 1
  1229. .ie \\n(.$ \{\
  1230. . if !"\\$1"-" .if !"\\$1"no" \{\
  1231. \\$1
  1232. .sp\}\}
  1233. .el \{\
  1234. ABSTRACT
  1235. .sp\}
  1236. .sp 1
  1237. .nr AJ 1
  1238. .in +\\n(.lu/12u
  1239. .ll -\\n(.lu/12u
  1240. .RT
  1241. \\..
  1242. .de AE
  1243. .nr AJ 0
  1244. .br
  1245. .in 0
  1246. .ll \\n(LLu
  1247. .ie \\n(VS>=41 .vs \\n(VSu
  1248. .el .vs \\n(VSp
  1249. \\..
  1250. ..
  1251. . \"IP - indented paragraph
  1252. .de IP
  1253. .RT
  1254. .if !\\n(IP .nr IP +1
  1255. .ie \\n(ID>0 .sp \\n(IDu
  1256. .el .sp \\n(PDu
  1257. .nr IU \\n(IR+1
  1258. .if \\n(.$>1 .nr I\\n(IU \\$2n+\\n(I\\n(IRu
  1259. .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
  1260. .in \\n(I\\n(IUu
  1261. .nr TY \\n(TZ-\\n(.i
  1262. .nr JQ \\n(I\\n(IU-\\n(I\\n(IR
  1263. .ta \\n(JQu \\n(TYuR
  1264. .if \\n(.$ \{\
  1265. .ti \\n(I\\n(IRu
  1266. \&\\$1\t\c
  1267. .\}
  1268. ..
  1269. . \"LP - left aligned (block) paragraph
  1270. .de LP
  1271. .ti \\n(.iu
  1272. .RT
  1273. .if \\n(1T .sp \\n(PDu
  1274. ..
  1275. .de QP
  1276. .ti \\n(.iu
  1277. .RT
  1278. .if \\n(1T .sp \\n(PDu
  1279. .ne 1.1
  1280. .nr QP 1
  1281. .in +\\n(QIu
  1282. .ll -\\n(QIu
  1283. .ti \\n(.iu
  1284. ..
  1285. . \"IE - synonym for .LP
  1286. .de IE
  1287. .LP
  1288. ..
  1289. . \"RS - prepare for double indenting
  1290. .de RS
  1291. .nr IS \\n(IP
  1292. .RT
  1293. .nr IP \\n(IS
  1294. .nr IU \\n(IR
  1295. .nr IR +1
  1296. .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
  1297. .in \\n(I\\n(IRu
  1298. .nr TY \\n(TZ-\\n(.i
  1299. .ta \\n(TYuR
  1300. ..
  1301. . \"RE - retreat to the left
  1302. .de RE
  1303. .nr IS \\n(IP
  1304. .RT
  1305. .nr IP \\n(IS
  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. ..