tmac.s 22 KB

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