tmac.s 23 KB

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