AnalogTapeModel

Physical modelling signal processing for analog tape recording
Log | Files | Refs | Submodules | README | LICENSE

IEEEbib.bst (17903B)


      1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  IEEE.bst  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      2 % Bibliography Syle file for articles according to IEEE instructions
      3 % balemi@aut.ee.ethz.ch     <22-JUN-93>
      4 % modified from unsrt.bib. Contributions by Richard H. Roy
      5 
      6 ENTRY
      7   { address
      8     author
      9     booktitle
     10     chapter
     11     edition
     12     editor
     13     howpublished
     14     institution
     15     journal
     16     key
     17     month
     18     note
     19     number
     20     organization
     21     pages
     22     publisher
     23     school
     24     series
     25     title
     26     type
     27     volume
     28     year
     29   }
     30   {}
     31   { label }
     32 
     33 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
     34 
     35 FUNCTION {init.state.consts}
     36 { #0 'before.all :=
     37   #1 'mid.sentence :=
     38   #2 'after.sentence :=
     39   #3 'after.block :=
     40 }
     41 
     42 STRINGS { s t }
     43 
     44 FUNCTION {output.nonnull}
     45 { 's :=
     46   output.state mid.sentence =
     47     { ", " * write$ }
     48     { output.state after.block =
     49 % next line commented out by rhr and changed to write comma
     50 %	{ add.period$ write$
     51 	{ ", " * write$ 
     52 	  newline$
     53 	  "\newblock " write$
     54 	}
     55 	{ output.state before.all =
     56 	    'write$
     57 	    { add.period$ " " * write$ }
     58 	  if$
     59 	}
     60       if$
     61       mid.sentence 'output.state :=
     62     }
     63   if$
     64   s
     65 }
     66 
     67 FUNCTION {output}
     68 { duplicate$ empty$
     69     'pop$
     70     'output.nonnull
     71   if$
     72 }
     73 
     74 FUNCTION {output.check}
     75 { 't :=
     76   duplicate$ empty$
     77     { pop$ "empty " t * " in " * cite$ * warning$ }
     78     'output.nonnull
     79   if$
     80 }
     81 
     82 FUNCTION {output.bibitem}
     83 { newline$
     84   "\bibitem{" write$
     85   cite$ write$
     86   "}" write$
     87   newline$
     88   ""
     89   before.all 'output.state :=
     90 }
     91 
     92 FUNCTION {fin.entry}
     93 { add.period$
     94   write$
     95   newline$
     96 }
     97 
     98 % 5/24/89 rhr
     99 %  modified fin.entry function - prints note field after body of entry  
    100 %FUNCTION {fin.entry}
    101 %{ add.period$
    102 %  note empty$
    103 %    'write$
    104 %    { "\par\bgroup\parindent=0em  " * annote * "\par\egroup " * write$
    105 %    }
    106 %  if$
    107 %  newline$
    108 %}
    109 
    110 FUNCTION {new.block}
    111 { output.state before.all =
    112     'skip$
    113     { after.block 'output.state := }
    114   if$
    115 }
    116 
    117 % new block without terminating last block with a comma
    118 FUNCTION {new.ncblock}
    119 {
    120   write$ 
    121   newline$
    122   "\newblock "
    123   before.all 'output.state :=
    124 }
    125 
    126 FUNCTION {new.nccont}
    127 {
    128   write$ 
    129   " "
    130   before.all 'output.state :=
    131 }
    132 
    133 FUNCTION {new.sentence}
    134 { output.state after.block =
    135     'skip$
    136     { output.state before.all =
    137 	'skip$
    138 	{ after.sentence 'output.state := }
    139       if$
    140     }
    141   if$
    142 }
    143 
    144 FUNCTION {not}
    145 {   { #0 }
    146     { #1 }
    147   if$
    148 }
    149 
    150 FUNCTION {and}
    151 {   'skip$
    152     { pop$ #0 }
    153   if$
    154 }
    155 
    156 FUNCTION {or}
    157 {   { pop$ #1 }
    158     'skip$
    159   if$
    160 }
    161 
    162 FUNCTION {new.block.checka}
    163 { empty$
    164     'skip$
    165     'new.block
    166   if$
    167 }
    168 
    169 FUNCTION {new.block.checkb}
    170 { empty$
    171   swap$ empty$
    172   and
    173     'skip$
    174     'new.block
    175   if$
    176 }
    177 
    178 FUNCTION {new.sentence.checka}
    179 { empty$
    180     'skip$
    181     'new.sentence
    182   if$
    183 }
    184 
    185 FUNCTION {new.sentence.checkb}
    186 { empty$
    187   swap$ empty$
    188   and
    189     'skip$
    190     'new.sentence
    191   if$
    192 }
    193 
    194 FUNCTION {field.or.null}
    195 { duplicate$ empty$
    196     { pop$ "" }
    197     'skip$
    198   if$
    199 }
    200 
    201 FUNCTION {emphasize}
    202 { duplicate$ empty$
    203     { pop$ "" }
    204     { "{\em " swap$ * "}" * }
    205   if$
    206 }
    207 
    208 FUNCTION {boldface}
    209 { duplicate$ empty$
    210     { pop$ "" }
    211     { "{\bf " swap$ * "}" * }
    212   if$
    213 }
    214 
    215 %FUNCTION {boldface}
    216 %{ 's swap$ :=
    217 %  s "" =
    218 %    { "" }
    219 %    { "{\bf " s * "}" * }
    220 %  if$
    221 %}
    222 %
    223 INTEGERS { nameptr namesleft numnames }
    224 
    225 FUNCTION {format.names}
    226 { 's :=
    227   #1 'nameptr :=
    228   s num.names$ 'numnames :=
    229   numnames 'namesleft :=
    230     { namesleft #0 > }
    231     { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    232       nameptr #1 >
    233 	{ namesleft #1 >
    234 	    { ", " * t * }
    235 	    { numnames #2 >
    236 		{ "," * }
    237 		'skip$
    238 	      if$
    239 	      t "others" =
    240 		{ " et~al." * }
    241 		{ " and " * t * }
    242 	      if$
    243 	    }
    244 	  if$
    245 	}
    246 	't
    247       if$
    248       nameptr #1 + 'nameptr :=
    249       namesleft #1 - 'namesleft :=
    250     }
    251   while$
    252 }
    253 
    254 FUNCTION {format.authors}
    255 { author empty$
    256     { "" }
    257     { author format.names }
    258   if$
    259 }
    260 
    261 FUNCTION {format.editors}
    262 { editor empty$
    263     { "" }
    264     { editor format.names
    265       editor num.names$ #1 >
    266 	{ ", Eds." * }
    267 	{ ", Ed." * }
    268       if$
    269     }
    270   if$
    271 }
    272 
    273 FUNCTION {format.title}
    274 { title empty$
    275     { "" }
    276     { "``" title "t" change.case$ * }
    277   if$
    278 }
    279 
    280 FUNCTION {n.dashify}
    281 { 't :=
    282   ""
    283     { t empty$ not }
    284     { t #1 #1 substring$ "-" =
    285 	{ t #1 #2 substring$ "--" = not
    286 	    { "--" *
    287 	      t #2 global.max$ substring$ 't :=
    288 	    }
    289 	    {   { t #1 #1 substring$ "-" = }
    290 		{ "-" *
    291 		  t #2 global.max$ substring$ 't :=
    292 		}
    293 	      while$
    294 	    }
    295 	  if$
    296 	}
    297 	{ t #1 #1 substring$ *
    298 	  t #2 global.max$ substring$ 't :=
    299 	}
    300       if$
    301     }
    302   while$
    303 }
    304 
    305 FUNCTION {format.date}
    306 { year empty$
    307     { month empty$
    308 	{ "" }
    309 	{ "there's a month but no year in " cite$ * warning$
    310 	  month
    311 	}
    312       if$
    313     }
    314     { month empty$
    315 	'year
    316 	{ month " " * year * }
    317       if$
    318     }
    319   if$
    320 }
    321 
    322 % FUNCTION {format.date}
    323 % { year empty$
    324 % 	'year 
    325 % 	{ " "  year * }
    326 %   if$
    327 % }
    328 
    329 FUNCTION {format.btitle}
    330 { title emphasize
    331 }
    332 
    333 FUNCTION {tie.or.space.connect}
    334 { duplicate$ text.length$ #3 <
    335     { "~" }
    336     { " " }
    337   if$
    338   swap$ * *
    339 }
    340 
    341 FUNCTION {either.or.check}
    342 { empty$
    343     'pop$
    344     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
    345   if$
    346 }
    347 
    348 FUNCTION {format.bvolume}
    349 { volume empty$
    350     { "" }
    351     { "vol." volume tie.or.space.connect
    352       series empty$
    353 	'skip$
    354 	{ " of " * series emphasize * }
    355       if$
    356       "volume and number" number either.or.check
    357     }
    358   if$
    359 }
    360 
    361 FUNCTION {format.number.series}
    362 { volume empty$
    363     { number empty$
    364 	{ series field.or.null }
    365 	{ output.state mid.sentence =
    366 	    { "number" }
    367 	    { "Number" }
    368 	  if$
    369 	  number tie.or.space.connect
    370 	  series empty$
    371 	    { "there's a number but no series in " cite$ * warning$ }
    372 	    { " in " * series * }
    373 	  if$
    374 	}
    375       if$
    376     }
    377     { "" }
    378   if$
    379 }
    380 
    381 FUNCTION {format.edition}
    382 { edition empty$
    383     { "" }
    384     { output.state mid.sentence =
    385 	{ edition "l" change.case$ " edition" * }
    386 	{ edition "t" change.case$ " edition" * }
    387       if$
    388     }
    389   if$
    390 }
    391 
    392 INTEGERS { multiresult }
    393 
    394 FUNCTION {multi.page.check}
    395 { 't :=
    396   #0 'multiresult :=
    397     { multiresult not
    398       t empty$ not
    399       and
    400     }
    401     { t #1 #1 substring$
    402       duplicate$ "-" =
    403       swap$ duplicate$ "," =
    404       swap$ "+" =
    405       or or
    406 	{ #1 'multiresult := }
    407 	{ t #2 global.max$ substring$ 't := }
    408       if$
    409     }
    410   while$
    411   multiresult
    412 }
    413 
    414 FUNCTION {format.pages}
    415 { pages empty$
    416     { "" }
    417     { pages multi.page.check
    418 	{ "pp." pages n.dashify tie.or.space.connect }
    419 	{ "p." pages tie.or.space.connect }
    420       if$
    421     }
    422   if$
    423 }
    424 
    425 FUNCTION {format.vol.num.pages}
    426 { 
    427 volume empty$
    428    {"" }
    429    {"vol. " volume *}
    430 if$
    431 number empty$
    432    'skip$
    433    {", no. " number * *}
    434 if$
    435 pages empty$
    436    'skip$
    437     { duplicate$ empty$
    438 	{ pop$ format.pages }
    439 	{ ", pp. " * pages n.dashify * }
    440       if$
    441     }
    442 if$
    443 }
    444 
    445 %FUNCTION {format.vol.num.pages}
    446 %%boldface added 3/17/87 rhr
    447 %{ volume field.or.null boldface
    448 %  number empty$
    449 %    'skip$
    450 %    { "(" number * ")" * *
    451 %      volume empty$
    452 %	{ "there's a number but no volume in " cite$ * warning$ }
    453 %	'skip$
    454 %      if$
    455 %    }
    456 %  if$
    457 %  pages empty$
    458 %    'skip$
    459 %    { duplicate$ empty$
    460 %	{ pop$ format.pages }
    461 %	{ ":" * pages n.dashify * }
    462 %      if$
    463 %    }
    464 %  if$
    465 %}
    466 
    467 FUNCTION {format.chapter.pages}
    468 { chapter empty$
    469     'format.pages
    470     { type empty$
    471 	{ "chapter" }
    472 	{ type "l" change.case$ }
    473       if$
    474       chapter tie.or.space.connect
    475       pages empty$
    476 	'skip$
    477 	{ ", " * format.pages * }
    478       if$
    479     }
    480   if$
    481 }
    482 
    483 FUNCTION {format.in.ed.booktitle}
    484 { booktitle empty$
    485     { "" }
    486     { editor empty$
    487 	{ "in " booktitle emphasize * }
    488 	{ "in "  booktitle emphasize *  ", " * format.editors * }
    489       if$
    490     }
    491   if$
    492 }
    493 
    494 FUNCTION {empty.misc.check}
    495 { author empty$ title empty$ howpublished empty$
    496   month empty$ year empty$ note empty$
    497   and and and and and
    498     { "all relevant fields are empty in " cite$ * warning$ }
    499     'skip$
    500   if$
    501 }
    502 
    503 FUNCTION {format.thesis.type}
    504 { type empty$
    505     'skip$
    506     { pop$
    507       type "t" change.case$
    508     }
    509   if$
    510 }
    511 
    512 FUNCTION {format.tr.number}
    513 { type empty$
    514     { "Tech. {R}ep." }
    515     'type
    516   if$
    517   number empty$
    518     { "t" change.case$ }
    519     { number tie.or.space.connect }
    520   if$
    521 }
    522 
    523 FUNCTION {format.article.crossref}
    524 { key empty$
    525     { journal empty$
    526 	{ "need key or journal for " cite$ * " to crossref " * crossref *
    527 	  warning$
    528 	  ""
    529 	}
    530 	{ "In {\em " journal * "\/}" * }
    531       if$
    532     }
    533     { "In " key * }
    534   if$
    535   " \cite{" * crossref * "}" *
    536 }
    537 
    538 FUNCTION {format.crossref.editor}
    539 { editor #1 "{vv~}{ll}" format.name$
    540   editor num.names$ duplicate$
    541   #2 >
    542     { pop$ " et~al." * }
    543     { #2 <
    544 	'skip$
    545 	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
    546 	    { " et~al." * }
    547 	    { " and " * editor #2 "{vv~}{ll}" format.name$ * }
    548 	  if$
    549 	}
    550       if$
    551     }
    552   if$
    553 }
    554 
    555 FUNCTION {format.book.crossref}
    556 { volume empty$
    557     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
    558       "In "
    559     }
    560     { "vol." volume tie.or.space.connect
    561       " of " *
    562     }
    563   if$
    564   editor empty$
    565   editor field.or.null author field.or.null =
    566   or
    567     { key empty$
    568 	{ series empty$
    569 	    { "need editor, key, or series for " cite$ * " to crossref " *
    570 	      crossref * warning$
    571 	      "" *
    572 	    }
    573 	    { "{\em " * series * "\/}" * }
    574 	  if$
    575 	}
    576 	{ key * }
    577       if$
    578     }
    579     { format.crossref.editor * }
    580   if$
    581   " \cite{" * crossref * "}" *
    582 }
    583 
    584 FUNCTION {format.incoll.inproc.crossref}
    585 { editor empty$
    586   editor field.or.null author field.or.null =
    587   or
    588     { key empty$
    589 	{ booktitle empty$
    590 	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
    591 	      crossref * warning$
    592 	      ""
    593 	    }
    594 	    { "In {\em " booktitle * "\/}" * }
    595 	  if$
    596 	}
    597 	{ "In " key * }
    598       if$
    599     }
    600     { "In " format.crossref.editor * }
    601   if$
    602   " \cite{" * crossref * "}" *
    603 }
    604 
    605 FUNCTION {article}
    606 { output.bibitem
    607   format.authors "author" output.check
    608   new.block
    609   format.title ",''" * "title" output.check
    610   new.ncblock
    611   crossref missing$
    612     { journal emphasize "journal" output.check
    613       format.vol.num.pages output
    614       format.date "year" output.check
    615     }
    616     { format.article.crossref output.nonnull
    617       format.pages output
    618     }
    619   if$
    620   new.block
    621   note output
    622   fin.entry
    623 }
    624 
    625 FUNCTION {book}
    626 { output.bibitem
    627   author empty$
    628     { format.editors "author and editor" output.check }
    629     { format.authors output.nonnull
    630       crossref missing$
    631 	{ "author and editor" editor either.or.check }
    632 	'skip$
    633       if$
    634     }
    635   if$
    636   new.block
    637   format.btitle "title" output.check
    638   crossref missing$
    639     { format.bvolume output
    640       new.block
    641       format.number.series output
    642       new.sentence
    643       publisher "publisher" output.check
    644       address output
    645     }
    646     { new.block
    647       format.book.crossref output.nonnull
    648     }
    649   if$
    650   format.edition output
    651   format.date "year" output.check
    652   new.block
    653   note output
    654   fin.entry
    655 }
    656 
    657 FUNCTION {booklet}
    658 { output.bibitem
    659   format.authors output
    660   new.block
    661   format.title ",''" * "title" output.check
    662   new.nccont
    663   howpublished address new.block.checkb
    664   howpublished output
    665   address output
    666   format.date output
    667   new.block
    668   note output
    669   fin.entry
    670 }
    671 
    672 FUNCTION {inbook}
    673 { output.bibitem
    674   author empty$
    675     { format.editors "author and editor" output.check }
    676     { format.authors output.nonnull
    677       crossref missing$
    678 	{ "author and editor" editor either.or.check }
    679 	'skip$
    680       if$
    681     }
    682   if$
    683   new.block
    684   format.btitle "title" output.check
    685   crossref missing$
    686     { format.bvolume output
    687       format.chapter.pages "chapter and pages" output.check
    688       new.block
    689       format.number.series output
    690       new.sentence
    691       publisher "publisher" output.check
    692       address output
    693     }
    694     { format.chapter.pages "chapter and pages" output.check
    695       new.block
    696       format.book.crossref output.nonnull
    697     }
    698   if$
    699   format.edition output
    700   format.date "year" output.check
    701   new.block
    702   note output
    703   fin.entry
    704 }
    705 
    706 FUNCTION {incollection}
    707 { output.bibitem
    708   format.authors "author" output.check
    709   new.block
    710   format.title ",''" * "title" output.check
    711   new.ncblock
    712   crossref missing$
    713     { format.in.ed.booktitle "booktitle" output.check
    714       format.bvolume output
    715       format.number.series output
    716       format.chapter.pages output
    717       new.sentence
    718       publisher "publisher" output.check
    719       address output
    720       format.edition output
    721       format.date "year" output.check
    722     }
    723     { format.incoll.inproc.crossref output.nonnull
    724       format.chapter.pages output
    725     }
    726   if$
    727   new.block
    728   note output
    729   fin.entry
    730 }
    731 
    732 FUNCTION {inproceedings}
    733 { output.bibitem
    734   format.authors "author" output.check
    735   new.block
    736   format.title ",''" * "title" output.check
    737   new.ncblock
    738   crossref missing$
    739     { format.in.ed.booktitle "booktitle" output.check
    740       address empty$
    741 	{ organization publisher new.sentence.checkb
    742 	  organization output
    743 	  format.date "year" output.check
    744 	}
    745 	{ address output.nonnull
    746 	  format.date "year" output.check
    747 	  organization output
    748 	}
    749       if$
    750       format.bvolume output
    751       format.number.series output
    752       format.pages output
    753       publisher output
    754     }
    755     { format.incoll.inproc.crossref output.nonnull
    756       format.pages output
    757     }
    758   if$
    759   new.block
    760   note output
    761   fin.entry
    762 }
    763 
    764 FUNCTION {conference} { inproceedings }
    765 
    766 FUNCTION {manual}
    767 { output.bibitem
    768   author empty$
    769     { organization empty$
    770 	'skip$
    771 	{ organization output.nonnull
    772 	  address output
    773 	}
    774       if$
    775     }
    776     { format.authors output.nonnull }
    777   if$
    778   new.block
    779   format.btitle "title" output.check
    780   author empty$
    781     { organization empty$
    782 	{ address new.block.checka
    783 	  address output
    784 	}
    785 	'skip$
    786       if$
    787     }
    788     { organization address new.block.checkb
    789       organization output
    790       address output
    791     }
    792   if$
    793   format.edition output
    794   format.date output
    795   new.block
    796   note output
    797   fin.entry
    798 }
    799 
    800 FUNCTION {mastersthesis}
    801 { output.bibitem
    802   format.authors "author" output.check
    803   new.block
    804   format.title ",''" * "title" output.check
    805   new.ncblock
    806   "M.S. thesis" format.thesis.type output.nonnull
    807   school "school" output.check
    808   address output
    809   format.date "year" output.check
    810   new.block
    811   note output
    812   fin.entry
    813 }
    814 
    815 FUNCTION {misc}
    816 { output.bibitem
    817   format.authors output
    818   title howpublished new.block.checkb
    819   format.title ",''" * output
    820   new.nccont
    821   howpublished new.block.checka
    822   howpublished output
    823   format.date output
    824   new.block
    825   note output
    826   fin.entry
    827   empty.misc.check
    828 }
    829 
    830 FUNCTION {phdthesis}
    831 { output.bibitem
    832   format.authors "author" output.check
    833   new.block
    834   format.btitle "title" output.check
    835   new.block
    836   "Ph.D. thesis" format.thesis.type output.nonnull
    837   school "school" output.check
    838   address output
    839   format.date "year" output.check
    840   new.block
    841   note output
    842   fin.entry
    843 }
    844 
    845 FUNCTION {proceedings}
    846 { output.bibitem
    847   editor empty$
    848     { organization output }
    849     { format.editors output.nonnull }
    850   if$
    851   new.block
    852   format.btitle "title" output.check
    853   format.bvolume output
    854   format.number.series output
    855   address empty$
    856     { editor empty$
    857 	{ publisher new.sentence.checka }
    858 	{ organization publisher new.sentence.checkb
    859 	  organization output
    860 	}
    861       if$
    862       publisher output
    863       format.date "year" output.check
    864     }
    865     { address output.nonnull
    866       format.date "year" output.check
    867       new.sentence
    868       editor empty$
    869 	'skip$
    870 	{ organization output }
    871       if$
    872       publisher output
    873     }
    874   if$
    875   new.block
    876   note output
    877   fin.entry
    878 }
    879 
    880 FUNCTION {techreport}
    881 { output.bibitem
    882   format.authors "author" output.check
    883   new.block
    884   format.title ",''" * "title" output.check
    885   new.ncblock
    886   format.tr.number output.nonnull
    887   institution "institution" output.check
    888   address output
    889   format.date "year" output.check
    890   new.block
    891   note output
    892   fin.entry
    893 }
    894 
    895 FUNCTION {unpublished}
    896 { output.bibitem
    897   format.authors "author" output.check
    898   new.block
    899   format.title ",''" * "title" output.check
    900   new.ncblock
    901   note "note" output.check
    902   format.date output
    903   fin.entry
    904 }
    905 
    906 FUNCTION {default.type} { misc }
    907 
    908 MACRO {jan} {"Jan."}
    909 
    910 MACRO {feb} {"Feb."}
    911 
    912 MACRO {mar} {"Mar."}
    913 
    914 MACRO {apr} {"Apr."}
    915 
    916 MACRO {may} {"May"}
    917 
    918 MACRO {jun} {"June"}
    919 
    920 MACRO {jul} {"July"}
    921 
    922 MACRO {aug} {"Aug."}
    923 
    924 MACRO {sep} {"Sept."}
    925 
    926 MACRO {oct} {"Oct."}
    927 
    928 MACRO {nov} {"Nov."}
    929 
    930 MACRO {dec} {"Dec."}
    931 
    932 MACRO {acmcs} {"ACM Computing Surveys"}
    933 
    934 MACRO {acta} {"Acta Informatica"}
    935 
    936 MACRO {cacm} {"Communications of the ACM"}
    937 
    938 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
    939 
    940 MACRO {ibmsj} {"IBM Systems Journal"}
    941 
    942 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
    943 
    944 MACRO {ieeetc} {"IEEE Transactions on Computers"}
    945 
    946 MACRO {ieeetcad}
    947  {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
    948 
    949 MACRO {ipl} {"Information Processing Letters"}
    950 
    951 MACRO {jacm} {"Journal of the ACM"}
    952 
    953 MACRO {jcss} {"Journal of Computer and System Sciences"}
    954 
    955 MACRO {scp} {"Science of Computer Programming"}
    956 
    957 MACRO {sicomp} {"SIAM Journal on Computing"}
    958 
    959 MACRO {tocs} {"ACM Transactions on Computer Systems"}
    960 
    961 MACRO {tods} {"ACM Transactions on Database Systems"}
    962 
    963 MACRO {tog} {"ACM Transactions on Graphics"}
    964 
    965 MACRO {toms} {"ACM Transactions on Mathematical Software"}
    966 
    967 MACRO {toois} {"ACM Transactions on Office Information Systems"}
    968 
    969 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
    970 
    971 MACRO {tcs} {"Theoretical Computer Science"}
    972 
    973 READ
    974 
    975 STRINGS { longest.label }
    976 
    977 INTEGERS { number.label longest.label.width }
    978 
    979 FUNCTION {initialize.longest.label}
    980 { "" 'longest.label :=
    981   #1 'number.label :=
    982   #0 'longest.label.width :=
    983 }
    984 
    985 FUNCTION {longest.label.pass}
    986 { number.label int.to.str$ 'label :=
    987   number.label #1 + 'number.label :=
    988   label width$ longest.label.width >
    989     { label 'longest.label :=
    990       label width$ 'longest.label.width :=
    991     }
    992     'skip$
    993   if$
    994 }
    995 
    996 EXECUTE {initialize.longest.label}
    997 
    998 ITERATE {longest.label.pass}
    999 
   1000 FUNCTION {begin.bib}
   1001 { preamble$ empty$
   1002     'skip$
   1003     { preamble$ write$ newline$ }
   1004   if$
   1005   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
   1006 }
   1007 
   1008 EXECUTE {begin.bib}
   1009 
   1010 EXECUTE {init.state.consts}
   1011 
   1012 ITERATE {call.type$}
   1013 
   1014 FUNCTION {end.bib}
   1015 { newline$
   1016   "\end{thebibliography}" write$ newline$
   1017 }
   1018 
   1019 EXECUTE {end.bib}
   1020 
   1021 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of IEEE.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%