tmac.s 23 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595
  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. .br
  834. .nr v \\n(.v
  835. .nr i 2m
  836. .if \\n(.$ .nr i \\$1
  837. .di p1
  838. .in \\niu
  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. .RT
  857. .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu
  858. .nf
  859. .p1
  860. .sp \\n(DVu
  861. .RT
  862. ..
  863. .
  864. .de ME
  865. .nr SJ \\n(.j
  866. .if \\n(LL .nr LT \\n(LL
  867. .nr YE 1
  868. .if !\\n(PO .nr PO \\n(.o
  869. .if \\n(mo-0 .ds MO January
  870. .if \\n(mo-1 .ds MO February
  871. .if \\n(mo-2 .ds MO March
  872. .if \\n(mo-3 .ds MO April
  873. .if \\n(mo-4 .ds MO May
  874. .if \\n(mo-5 .ds MO June
  875. .if \\n(mo-6 .ds MO July
  876. .if \\n(mo-7 .ds MO August
  877. .if \\n(mo-8 .ds MO September
  878. .if \\n(mo-9 .ds MO October
  879. .if \\n(mo-10 .ds MO November
  880. .if \\n(mo-11 .ds MO December
  881. .if \\n(dw-0 .ds DW Sunday
  882. .if \\n(dw-1 .ds DW Monday
  883. .if \\n(dw-2 .ds DW Tuesday
  884. .if \\n(dw-3 .ds DW Wednesday
  885. .if \\n(dw-4 .ds DW Thursday
  886. .if \\n(dw-5 .ds DW Friday
  887. .if \\n(dw-6 .ds DW Saturday
  888. .nr yP (\\n(yr+2000)/100)
  889. .nr yD (\\n(yr%100
  890. .af yD 01
  891. .if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
  892. .if "\\*(CF"" .if n .ds CF "\\*(DY
  893. ..
  894. . \"EM end up macro - process left over keep-release
  895. .de EM
  896. .br
  897. .if \\n(AJ .tm Syntax error: no .AE
  898. .if \\n(IF .ab Missing .FE somewhere
  899. .if t .if \\n(TB=0 .wh -1p CM
  900. .if \\n(TB \{\&\c
  901. ' bp
  902. . NP
  903. . ch CM 160\}
  904. ..
  905. . \"NP new page
  906. .de NP
  907. .rr PE
  908. .if \\n(FM+\\n(HM>=\\n(.p \{\
  909. . tm Margins bigger than page length.
  910. . ab
  911. . ex\}
  912. .if t .CM
  913. .if !\\n(HM .nr HM 1i
  914. 'sp \\n(HMu/2u
  915. .ev 1
  916. .nr PX \\n(.s
  917. .nr PF \\n(.f
  918. .nr PV \\n(.v
  919. .lt \\n(LTu
  920. .ps \\n(PS
  921. .vs \\n(PS+2
  922. .ft 1
  923. .if \\n(PO .po \\n(POu
  924. .PT
  925. .ps \\n(PX
  926. .vs \\n(PVu
  927. .ft \\n(PF
  928. .ev
  929. 'sp |\\n(HMu
  930. .nr XX 0 1
  931. .nr YY 0-\\n(FMu
  932. .ch FO 16i
  933. .ch FX 17i
  934. .ch FO \\n(.pu-\\n(FMu
  935. .ch FX \\n(.pu-\\n(FMu
  936. .if \\n(MF .FV
  937. .nr MF 0
  938. .mk
  939. .os
  940. .ev 1
  941. .if !\\n(TD .if \\n(TC<5 .XK
  942. .nr TC 0
  943. .ns
  944. .ev
  945. .nr TQ \\n(.i
  946. .nr TK \\n(.u
  947. .if \\n(IT \{\
  948. . in 0
  949. . nf
  950. . TT
  951. . in \\n(TQu
  952. . if \\n(TK .fi\
  953. \}
  954. .mk #T
  955. ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
  956. ..
  957. .de XK
  958. .nr TD 1
  959. .nf
  960. .ls 1
  961. .in 0
  962. .rn KJ KL
  963. .KL
  964. .rm KL
  965. .if "\\n(.z"KJ" .di
  966. .nr TB 0
  967. .if "\\n(.z"KJ" .nr TB 1
  968. .br
  969. .in
  970. .ls
  971. .fi
  972. .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
  973. . if \\n(NX>1 .RC
  974. . if \\n(NX<1 .bp\}
  975. .nr TD 0
  976. ..
  977. .de KD
  978. .nr KM 0
  979. .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
  980. . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
  981. . sp 15i\}
  982. .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
  983. .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
  984. .if \\n(KM>0 \!.KD \\$1 \\$2
  985. .nr KR \\n(.t
  986. .if \\n(nl<=\\n(HM .nr KR 32767
  987. .if \\n(KM=0 \{\
  988. . if \\n(KR<\\$1 \{\
  989. . di KJ
  990. . nr KM 1\}
  991. . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
  992. .rs
  993. .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
  994. ..
  995. .de PT
  996. .lt \\n(LLu
  997. .pc %
  998. .nr PN \\n%
  999. .if \\n%-1 .tl \\*(LH\\*(CH\\*(RH
  1000. .lt \\n(.lu
  1001. ..
  1002. . \"FO - footer of page
  1003. .de FO
  1004. .rn FO FZ
  1005. .if \\n(IT>0 \{\
  1006. . nr T. 1
  1007. . if \\n(FC=0 .T# 1
  1008. . br\}
  1009. .nr FC +1
  1010. .if \\n(NX<2 .nr WF 0
  1011. .nr dn 0
  1012. .if \\n(FC<=1 .if \\n(XX .XF
  1013. .rn FZ FO
  1014. .nr MF 0
  1015. .if \\n(dn .nr MF 1
  1016. .if !\\n(WF \{\
  1017. . nr YY 0-\\n(FMu
  1018. . ch FO \\n(YYu\}
  1019. .if !\\n(dn .nr WF 0
  1020. .if \\n(FC<=1 .if \\n(XX=0 \{\
  1021. . if \\n(NX>1 .RC
  1022. . if \\n(NX<1 'bp\}
  1023. .nr FC -1
  1024. .if \\n(ML>0 .ne \\n(MLu
  1025. ..
  1026. . \"2C - begin double column
  1027. .de 2C
  1028. .MC \" default MC is double column
  1029. ..
  1030. .de MC \" multiple columns- arg is line length
  1031. .nr L1 \\n(LL*7/15
  1032. .if \\n(CW>=0 .nr L1 \\n(CWu
  1033. .if \\n(.$ .nr L1 \\$1n
  1034. .if \\n(GW>=0 .nr GW \\n(GWu
  1035. .if \\n(.$>1 .nr GW \\$2n
  1036. .nr NQ \\n(LL/\\n(L1
  1037. .if \\n(NQ<1 .nr NQ 1
  1038. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  1039. .if !\\n(1T \{\
  1040. . BG
  1041. . if n .sp 4
  1042. . if t .sp 2\}
  1043. .if \\n(NX=0 .nr NX 1
  1044. .if !\\n(NX=\\n(NQ \{\
  1045. . RT
  1046. . if \\n(NX>1 .bp
  1047. . mk
  1048. . nr NC 1
  1049. . po \\n(POu\}
  1050. .if \\n(NQ>1 .hy \\n(HY
  1051. .nr NX \\n(NQ
  1052. .if \\n(NX>1 .nr CW \\n(L1
  1053. .ll \\n(L1u
  1054. .nr FL \\n(L1u*11u/12u
  1055. .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
  1056. .nr RO \\n(L1+\\n(GW
  1057. .ns
  1058. ..
  1059. .de RC
  1060. .ie \\n(NC>=\\n(NX .C2
  1061. .el .C1
  1062. ..
  1063. .de C1
  1064. .rt
  1065. .po +\\n(ROu
  1066. .nr NC +1
  1067. .if \\n(NC>\\n(NX .nr NC 1
  1068. .nr XX 0 1
  1069. .nr YY 0-\\n(FMu
  1070. .if \\n(MF .FV
  1071. .ch FX \\n(.pu-\\n(FMu
  1072. .ev 1
  1073. .if \\n(TB .XK
  1074. .nr TC 0
  1075. .ev
  1076. .nr TQ \\n(.i
  1077. .if \\n(IT \{\
  1078. . in 0
  1079. . TT
  1080. . in \\n(TQu\}
  1081. .mk #T
  1082. .ns
  1083. ..
  1084. .de C2
  1085. .po \\n(POu
  1086. .nr NC +1
  1087. .if \\n(NC>\\n(NX .nr NC 1
  1088. 'bp
  1089. ..
  1090. . \"1C - return to single column format
  1091. .de 1C
  1092. .MC \\n(LLu
  1093. .hy \\n(HY
  1094. ..
  1095. .de MH
  1096. Bell Laboratories
  1097. Murray Hill, New Jersey 07974
  1098. ..
  1099. .de PY
  1100. Bell Laboratories
  1101. Piscataway, New Jersey 08854
  1102. ..
  1103. .de BT
  1104. .nr PX \\n(.s
  1105. .nr PF \\n(.f
  1106. .ft 1
  1107. .ps \\n(PS
  1108. 'lt \\n(LTu
  1109. .po \\n(POu
  1110. .if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
  1111. .ft \\n(PF
  1112. .ps \\n(PX
  1113. ..
  1114. . \"PP - paragraph
  1115. .de PP
  1116. .RT
  1117. .if \\n(1T .sp \\n(PDu
  1118. .ti +\\n(PIu
  1119. ..
  1120. . \"SH - (unnumbered) section heading
  1121. .de SH
  1122. .ti \\n(.iu
  1123. .RT
  1124. .ie \\n(1T .sp 1
  1125. .el .BG
  1126. .RT
  1127. .ne 4
  1128. .ft 3
  1129. .if n .ul 1000
  1130. ..
  1131. . \"NH - numbered heading
  1132. .de N{
  1133. .RT
  1134. .ie \\n(1T .sp 1
  1135. .el .BG
  1136. .RT
  1137. .ne 4
  1138. .ft 3
  1139. .if n .ul 1000
  1140. .nr NS \\$1
  1141. .if !\\n(.$ .nr NS 1
  1142. .if !\\n(NS .nr NS 1
  1143. .nr H\\n(NS +1
  1144. .if !\\n(NS-4 .nr H5 0
  1145. .if !\\n(NS-3 .nr H4 0
  1146. .if !\\n(NS-2 .nr H3 0
  1147. .if !\\n(NS-1 .nr H2 0
  1148. .if !\\$1 .if \\n(.$ .nr H1 1
  1149. .ds SN \\n(H1.
  1150. .ti \\n(.iu
  1151. .if \\n(NS-1 .as SN \\n(H2.
  1152. .if \\n(NS-2 .as SN \\n(H3.
  1153. .if \\n(NS-3 .as SN \\n(H4.
  1154. .if \\n(NS-4 .as SN \\n(H5.
  1155. ..
  1156. .de NH
  1157. .N{ \\$1
  1158. \\*(SN
  1159. ..
  1160. . \"BG - begin, execute at first PP
  1161. .de BG
  1162. .br
  1163. .ME
  1164. .rm ME
  1165. .di
  1166. .ce 0
  1167. .nr KI 0
  1168. .hy \\n(HY
  1169. .nr 1T 1
  1170. .nr CS 0
  1171. .S\\n(ST
  1172. .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
  1173. .de TL
  1174. .ft 3
  1175. .sp
  1176. .if n .ul 100
  1177. .ce 100
  1178. .ps +2
  1179. \\..
  1180. .de AU
  1181. .ft 2
  1182. .if n .ul 0
  1183. .ce 100
  1184. .sp
  1185. .NL
  1186. \\..
  1187. .de AI
  1188. .ft 1
  1189. .ce 100
  1190. .if n .ul 0
  1191. .if n .sp
  1192. .if t .sp .5
  1193. .NL
  1194. \\..
  1195. .RA
  1196. .rm RA
  1197. .rn FJ FS
  1198. .rn FK FE
  1199. .nf
  1200. .ev 1
  1201. .ps \\n(PS-2
  1202. .vs \\n(.s+2p
  1203. .ev
  1204. .if !\\n(KG .nr FP 0
  1205. .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
  1206. .nr KG 0
  1207. .if \\n(FP \{\
  1208. . FS
  1209. . FG
  1210. . FE\}
  1211. .br
  1212. .if n .if \\n(TV .sp 2
  1213. .if t .if \\n(TV .sp 1
  1214. .fi
  1215. .ll \\n(LLu
  1216. .ev 1
  1217. .if !\\n(FL .nr FL \\n(LLu*11u/12u
  1218. .ll \\n(FLu
  1219. .ev
  1220. ..
  1221. .de RA \"redefine abstract macros
  1222. .de AB
  1223. .br
  1224. .if !\\n(1T .BG
  1225. .ce 1
  1226. .sp 1
  1227. .ie \\n(.$ \{\
  1228. . if !"\\$1"-" .if !"\\$1"no" \{\
  1229. \\$1
  1230. .sp\}\}
  1231. .el \{\
  1232. ABSTRACT
  1233. .sp\}
  1234. .sp 1
  1235. .nr AJ 1
  1236. .in +\\n(.lu/12u
  1237. .ll -\\n(.lu/12u
  1238. .RT
  1239. \\..
  1240. .de AE
  1241. .nr AJ 0
  1242. .br
  1243. .in 0
  1244. .ll \\n(LLu
  1245. .ie \\n(VS>=41 .vs \\n(VSu
  1246. .el .vs \\n(VSp
  1247. \\..
  1248. ..
  1249. . \"IP - indented paragraph
  1250. .de IP
  1251. .RT
  1252. .if !\\n(IP .nr IP +1
  1253. .ie \\n(ID>0 .sp \\n(IDu
  1254. .el .sp \\n(PDu
  1255. .nr IU \\n(IR+1
  1256. .if \\n(.$>1 .nr I\\n(IU \\n(I\\n(IRu+\\$2n
  1257. .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
  1258. .in \\n(I\\n(IUu
  1259. .nr TY \\n(TZ-\\n(.i
  1260. .nr JQ \\n(I\\n(IU-\\n(I\\n(IR
  1261. .ta \\n(JQu \\n(TYuR
  1262. .if \\n(.$ \{\
  1263. .ti \\n(I\\n(IRu
  1264. \&\\$1\t\c
  1265. .\}
  1266. ..
  1267. . \"LP - left aligned (block) paragraph
  1268. .de LP
  1269. .ti \\n(.iu
  1270. .RT
  1271. .if \\n(1T .sp \\n(PDu
  1272. ..
  1273. .de QP
  1274. .ti \\n(.iu
  1275. .RT
  1276. .if \\n(1T .sp \\n(PDu
  1277. .ne 1.1
  1278. .nr QP 1
  1279. .in +\\n(QIu
  1280. .ll -\\n(QIu
  1281. .ti \\n(.iu
  1282. ..
  1283. . \"IE - synonym for .LP
  1284. .de IE
  1285. .LP
  1286. ..
  1287. . \"RS - prepare for double indenting
  1288. .de RS
  1289. .nr IS \\n(IP
  1290. .RT
  1291. .nr IP \\n(IS
  1292. .nr IR \\n(IU
  1293. .nr IU +1
  1294. .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
  1295. .in \\n(I\\n(IRu
  1296. .nr TY \\n(TZ-\\n(.i
  1297. .ta \\n(TYuR
  1298. ..
  1299. . \"RE - retreat to the left
  1300. .de RE
  1301. .nr IS \\n(IP
  1302. .RT
  1303. .nr IP \\n(IS
  1304. .nr IU \\n(IR
  1305. .if \\n(IR>0 .nr IR -1
  1306. .in \\n(I\\n(IRu
  1307. ..
  1308. .de TC
  1309. .nr TZ \\n(.lu
  1310. .if \\n(.$ .nr TZ \\$1n
  1311. .ta \\n(TZuR
  1312. ..
  1313. .de TD
  1314. .LP
  1315. .nr TZ 0
  1316. ..
  1317. . \"CM - cut mark
  1318. .de CM
  1319. .po 0
  1320. .lt 7.6i
  1321. .ft 1
  1322. .ps 10
  1323. .vs 4p
  1324. .if "\\*(.T"aps" .tl '--''--'
  1325. .po
  1326. .vs
  1327. .lt
  1328. .ps
  1329. .ft
  1330. ..
  1331. . \" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before
  1332. .de OF \" this is completely WRONG if any argument contains "'s
  1333. .nr PQ \\n(.f
  1334. .hy 0
  1335. .if t .if "\\$3"" .ft \\$1
  1336. .if t .if !"\\$3"" \{\
  1337. \&\\$5\\$2\\$3\\f\\n(PQ\\$4
  1338. .hy \\n(HY\}
  1339. .if n \{\
  1340. . if \\n(.$=5 \&\\$5
  1341. . ie "\\$3"" .ul 1000
  1342. . el .ul 1
  1343. . if \\n(.$=3 \&\\$3
  1344. . if \\n(.$>3 \&\\$3\\c
  1345. . if \\n(.$>3 \&\\$4
  1346. . hy \\n(HY\}
  1347. ..
  1348. . \"B - bold font
  1349. .de B
  1350. .OF 3 \\f3 "\\$1" "\\$2" "\\$3"
  1351. ..
  1352. .de BI \" bold italic -- only on 202
  1353. .OF 4 \\f4 "\\$1" "\\$2" "\\$3"
  1354. ..
  1355. . \"R - Roman font
  1356. .de R
  1357. .nr PQ \\n(.f
  1358. .ft 1
  1359. .ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2
  1360. .el .if n .ul 0
  1361. ..
  1362. . \"I - italic font
  1363. .de I
  1364. .OF 2 \\f2 "\\$1" "\\$2" "\\$3"
  1365. ..
  1366. . \"CW - constant width font
  1367. .de CW
  1368. .nr PQ \\n(.f
  1369. .if t .if \\n(.$>0 \%\&\\$3\f(CW\\$1\f\\n(PQ\&\\$2
  1370. .if t .if \\n(.$=0 .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
  1371. .if n .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
  1372. ..
  1373. . \"TA - tabs set in ens or chars
  1374. .de TA
  1375. .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
  1376. ..
  1377. . \"SM - make smaller size
  1378. .de SM
  1379. .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2
  1380. .el .ps -2
  1381. ..
  1382. . \"LG - make larger size
  1383. .de LG
  1384. .ps +2
  1385. ..
  1386. . \"NL - return to normal size
  1387. .de NL
  1388. .ps \\n(PS
  1389. ..
  1390. . \"DA - force date; ND - no date or new date.
  1391. .de DA
  1392. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  1393. .ds CF \\*(DY
  1394. ..
  1395. .de ND
  1396. .ME
  1397. .rm ME
  1398. .ds DY \\$1 \\$2 \\$3 \\$4
  1399. .rm CF
  1400. ..
  1401. .de FN
  1402. .FS
  1403. ..
  1404. . \"FS - begin footnote
  1405. .de FJ
  1406. 'ce 0
  1407. .nr IA \\n(IP
  1408. .nr IB \\n(.i
  1409. .ev1
  1410. .ll \\n(FLu
  1411. .da FF
  1412. .br
  1413. .if \\n(IF \{\
  1414. . tm Footnote within footnote-illegal.
  1415. . ab\}
  1416. .nr IF 1
  1417. .if !\\n+(XX-1 .FA
  1418. ..
  1419. . \"FE - footnote end
  1420. .de FK
  1421. .br
  1422. .in 0
  1423. .nr IF 0
  1424. .di
  1425. .ev
  1426. .if !\\n(XX-1 .nr dn +\\n(.v
  1427. .nr YY -\\n(dn
  1428. .if !\\n(NX .nr WF 1
  1429. .if \\n(dl>\\n(CW .nr WF 1
  1430. .ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  1431. .el \{\
  1432. . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  1433. . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  1434. . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\}
  1435. .nr IP \\n(IA
  1436. 'in \\n(IBu
  1437. ..
  1438. .\" First page footer.
  1439. .de FS
  1440. .ev1
  1441. .br
  1442. .ll \\n(FLu
  1443. .da FG
  1444. ..
  1445. .de FE
  1446. .br
  1447. .di
  1448. .nr FP \\n(dn
  1449. .if !\\n(1T .nr KG 1 \"not in abstract repeat next page.
  1450. .if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
  1451. .ev
  1452. ..
  1453. .de FA
  1454. .if n __________________________
  1455. .if t \l'1i'
  1456. .br
  1457. ..
  1458. .de FV
  1459. .FS
  1460. .nf
  1461. .ls 1
  1462. .FY
  1463. .ls
  1464. .fi
  1465. .FE
  1466. ..
  1467. .de FX
  1468. .if \\n(XX \{\
  1469. . di FY
  1470. . ns\}
  1471. ..
  1472. .de XF
  1473. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  1474. .ev1
  1475. .nf
  1476. .ls 1
  1477. .FF
  1478. .rm FF
  1479. .nr XX 0 1
  1480. .br
  1481. .ls
  1482. .di
  1483. .fi
  1484. .ev
  1485. ..
  1486. .de FL
  1487. .ev1
  1488. .nr FL \\$1n
  1489. .ll \\$1
  1490. .ev
  1491. ..
  1492. .de HO
  1493. Bell Laboratories
  1494. Holmdel, New Jersey 07733
  1495. ..
  1496. .de WH
  1497. Bell Laboratories
  1498. Whippany, New Jersey 07981
  1499. ..
  1500. .de IH
  1501. Bell Laboratories
  1502. Naperville, Illinois 60540
  1503. ..
  1504. .de UL \" underline argument, don't italicize
  1505. .ie t \\$1\l'|0\(ul'\\$2
  1506. .el .I "\\$1" "\\$2"
  1507. ..
  1508. .de UX
  1509. .ie \\n(GA \\$2\s-1UNIX\s0\\$1
  1510. .el \{\
  1511. .ie n \{\\$2UNIX\\$1*
  1512. .FS
  1513. * UNIX is a
  1514. .ie \\$3=1 Footnote
  1515. .el registered trademark
  1516. of X/Open.
  1517. .FE\}
  1518. .el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP
  1519. .nr GA 1\}
  1520. ..
  1521. .de US
  1522. the
  1523. .UX
  1524. operating system\\$1
  1525. ..
  1526. .de QS
  1527. .br
  1528. .LP
  1529. .in +\\n(QIu
  1530. .ll -\\n(QIu
  1531. ..
  1532. .de QE
  1533. .br
  1534. .ll +\\n(QIu
  1535. .in -\\n(QIu
  1536. .LP
  1537. ..
  1538. .de B1 \" begin boxed stuff
  1539. .br
  1540. .di BB
  1541. .nr BC 0
  1542. .if "\\$1"C" .nr BC 1
  1543. .nr BE 1
  1544. ..
  1545. .de B2 \" end boxed stuff
  1546. .br
  1547. .nr BI 1n
  1548. .if \\n(.$>0 .nr BI \\$1n
  1549. .di
  1550. .nr BE 0
  1551. .nr BW \\n(dl
  1552. .nr BH \\n(dn
  1553. .ne \\n(BHu+\\n(.Vu
  1554. .nr BQ \\n(.j
  1555. .nf
  1556. .ti 0
  1557. .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
  1558. .in +\\n(BIu
  1559. .ls 1
  1560. .BB
  1561. .ls
  1562. .in -\\n(BIu
  1563. .nr BW +2*\\n(BI
  1564. .sp -1
  1565. \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
  1566. .nr BW -2*\\n(BI
  1567. .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
  1568. .if \\n(BQ .fi
  1569. .br
  1570. ..
  1571. .de AT
  1572. .nf
  1573. .sp
  1574. .ne 2
  1575. Attached:
  1576. ..
  1577. .de CT
  1578. .nf
  1579. .sp
  1580. .ne 2
  1581. .ie \\n(.$ Copy to \\$1:
  1582. .el Copy to:
  1583. ..
  1584. .de BX
  1585. .ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  1586. .el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  1587. ..
  1588. .IZ
  1589. .rm IZ
  1590. .de [
  1591. [
  1592. ..
  1593. .de ]
  1594. ]
  1595. ..