%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 

%% Author          : Aptara

%% Created On      : Fri Apr 20 14:44:07 2007

%% Last Modified By:

%% Last Modified On:

%% Version		   : 0.1

%%				

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%

ENTRY

  { address

    author

    booktitle

    chapter

    edition

    editor

    howpublished

    institution

    journal

    key

    note

    number

    organization

    pages

    publisher

    school

    series

    title

    type

    volume

    year

  }

  {}

  { label extra.label sort.label }



INTEGERS { output.state before.all mid.sentence after.sentence after.block }



FUNCTION {init.state.consts}

{ #0 'before.all :=

  #1 'mid.sentence :=

  #2 'after.sentence :=

  #3 'after.block :=

}



STRINGS { s t }



FUNCTION {output.nonnull}

{

  swap$

  output.state mid.sentence =

    { ", " * write$ }

    { output.state after.block =

        { add.period$ write$

          newline$

          "\newblock " write$

        }

        { output.state before.all =

            'write$

            { add.period$ " " * write$ }

          if$

        }

      if$

      mid.sentence 'output.state :=

    }

  if$

}



FUNCTION {output}

{ duplicate$ empty$

    'pop$

    'output.nonnull

  if$

}



FUNCTION {output.check}

{ 't :=

  duplicate$ empty$

    { pop$ "empty " t * " in " * cite$ * warning$ }

    'output.nonnull

  if$

}



FUNCTION {output.year.check}

{ year empty$

    { "empty year in " cite$ * warning$ }

    { write$

      " (" year * extra.label * ")" *

      mid.sentence 'output.state :=

    }

  if$

}



FUNCTION {output.bibitem}

{ newline$

  "\bibitem[" write$

  label write$

  "]{" write$

  cite$ write$

  "}" write$

  newline$

  ""

  before.all 'output.state :=

}



FUNCTION {fin.entry}

{ add.period$

  write$

  newline$

}



FUNCTION {new.block}

{ output.state before.all =

    'skip$

    { after.block 'output.state := }

  if$

}



FUNCTION {new.sentence}

{ output.state after.block =

    'skip$

    { output.state before.all =

        'skip$

        { after.sentence 'output.state := }

      if$

    }

  if$

}



FUNCTION {not}

{   { #0 }

    { #1 }

  if$

}



FUNCTION {and}

{   'skip$

    { pop$ #0 }

  if$

}



FUNCTION {or}

{   { pop$ #1 }

    'skip$

  if$

}



FUNCTION {new.block.checkb}

{ empty$

  swap$ empty$

  and

    'skip$

    'new.block

  if$

}



FUNCTION {field.or.null}

{ duplicate$ empty$

    { pop$ "" }

    'skip$

  if$

}



FUNCTION {emphasize}

{ duplicate$ empty$

    { pop$ "" }

    { "{\em " swap$ * "}" * }

  if$

}



FUNCTION {smallcapsify}

{ duplicate$ empty$

    { pop$ "" }

    { "{\sc " swap$ * "}" * }

  if$

}



FUNCTION {embolden}

{ duplicate$ empty$

    { pop$ "" }

    { "{\bf " swap$ * ",}" * }

  if$

}



INTEGERS { nameptr namesleft numnames }



FUNCTION {format.names}

{ 's :=

  #1 'nameptr :=

  s num.names$ 'numnames :=

  numnames 'namesleft :=

    { namesleft #0 > }

    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   

      nameptr #1 >

        { namesleft #1 >

            { ", " * t * }

            { numnames #2 >

                    { "," * }

                    'skip$

              if$

              t "others" =

                { " et~al." * }

                { " and " * t * }

              if$

            }

          if$

        }

        't

      if$

      nameptr #1 + 'nameptr :=

      namesleft #1 - 'namesleft :=

    }

  while$

}



FUNCTION {format.lab.names2}

{ 's :=

  #1 'nameptr :=

  s num.names$ 'numnames :=

  numnames 'namesleft :=

    { namesleft #0 > }

    { s nameptr "{vv~}{ll}{, jj.}" format.name$ 't :=   

      nameptr #1 >

        { namesleft #1 >

            { ", " * t * }

            { numnames #2 >

                'skip$

                'skip$

              if$

              t "others" =

                { " et~al." * }

                { " and " * t * }

              if$

            }

          if$

        }

        't

      if$

      nameptr #1 + 'nameptr :=

      namesleft #1 - 'namesleft :=

    }

  while$

}



FUNCTION {format.authors}

{ author empty$

    { "" }

    { author format.names }

  if$

}



FUNCTION {format.key}                   

{ empty$

    { key field.or.null }

    { "" }

  if$

}



FUNCTION {format.editors}

{ editor empty$

    { "" }

    { editor format.names

      editor num.names$ #1 >

        { ", editors" * }

        { ", editor" * }

      if$

    }

  if$

}



FUNCTION {format.title}

{ title empty$

    { "" }

    { title "t" change.case$ }

  if$

}



FUNCTION {n.dashify}

{ 't :=

  ""

    { t empty$ not }

    { t #1 #1 substring$ "-" =

        { t #1 #2 substring$ "--" = not

            { "--" *

              t #2 global.max$ substring$ 't :=

            }

            {   { t #1 #1 substring$ "-" = }

                { "-" *

                  t #2 global.max$ substring$ 't :=

                }

              while$

            }

          if$

        }

        { t #1 #1 substring$ *

          t #2 global.max$ substring$ 't :=

        }

      if$

    }

  while$

}



FUNCTION {format.btitle}

{ title emphasize

}



FUNCTION {tie.or.space.connect}

{ duplicate$ text.length$ #3 <

    { "~" }

    { " " }

  if$

  swap$ * *

}



FUNCTION {either.or.check}

{ empty$

    'pop$

    { "can't use both " swap$ * " fields in " * cite$ * warning$ }

  if$

}



FUNCTION {format.bvolume}

{ volume empty$

    { "" }

    { "volume" volume tie.or.space.connect

      series empty$

        'skip$

        { " of " * series emphasize * }

      if$

      "volume and number" number either.or.check

    }

  if$

}



FUNCTION {format.number.series}

{ volume empty$

    { number empty$

        { series field.or.null }

        { output.state mid.sentence =

            { "number" }

            { "Number" }

          if$

          number tie.or.space.connect

          series empty$

            { "there's a number but no series in " cite$ * warning$ }

            { " in " * series * }

          if$

        }

      if$

    }

    { "" }

  if$

}



FUNCTION {format.edition}

{ edition empty$

    { "" }

    { output.state mid.sentence =

        { edition "l" change.case$ " edition" * }

        { edition "t" change.case$ " edition" * }

      if$

    }

  if$

}



INTEGERS { multiresult }



FUNCTION {multi.page.check}

{ 't :=

  #0 'multiresult :=

    { multiresult not

      t empty$ not

      and

    }

    { t #1 #1 substring$

      duplicate$ "-" =

      swap$ duplicate$ "," =

      swap$ "+" =

      or or

        { #1 'multiresult := }

        { t #2 global.max$ substring$ 't := }

      if$

    }

  while$

  multiresult

}



FUNCTION {format.pages}

{ pages empty$

    { "" }

    { pages multi.page.check

        { "pages" pages n.dashify tie.or.space.connect }

        { "page" pages tie.or.space.connect }

      if$

    }

  if$

}



FUNCTION {format.vol.num.pages}

{ volume field.or.null embolden

  pages empty$

    'skip$

    { duplicate$ empty$

        { pop$ format.pages }

        { " " * pages n.dashify * }

      if$

    }

  if$

}



FUNCTION {format.chapter.pages}

{ chapter empty$

    'format.pages

    { type empty$

        { "chapter" }

        { type "l" change.case$ }

      if$

      chapter tie.or.space.connect

      pages empty$

        'skip$

        { ", " * format.pages * }

      if$

    }

  if$

}



FUNCTION {format.in.ed.booktitle}

{ booktitle empty$

    { "" }

    { editor empty$

        { "In " booktitle emphasize * }

        { "In " format.editors * ", " * booktitle emphasize * }

      if$

    }

  if$

}



FUNCTION {format.thesis.type}

{ type empty$

    'skip$

    { pop$

      type "t" change.case$

    }

  if$

}



FUNCTION {format.tr.number}

{ type empty$

    { "Technical Report" }

    'type

  if$

  number empty$

    { "t" change.case$ }

    { number tie.or.space.connect }

  if$

}



FUNCTION {format.article.crossref}

{ "In"                                                  

  " \cite{" * crossref * "}" *

}



FUNCTION {format.book.crossref}

{ volume empty$

    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$

      "In "

    }

    { "Volume" volume tie.or.space.connect

      " of " *

    }

  if$

  "\cite{" * crossref * "}" *                           

}



FUNCTION {format.incoll.inproc.crossref}

{ "In"                                                  

  " \cite{" * crossref * "}" *

}



FUNCTION {article}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  crossref missing$

    { journal emphasize " " * "journal" output.check

      format.vol.num.pages

      before.all 'output.state :=

      output

    }

    { format.article.crossref output.nonnull

      format.pages output

    }

  if$

  new.block

  note output

  fin.entry

}



FUNCTION {book}

{ output.bibitem

  author empty$

    { format.editors "author and editor" output.check

      editor format.key output

    }

    { format.authors output.nonnull

      crossref missing$

        { "author and editor" editor either.or.check }

        'skip$

      if$

    }

  if$

  output.year.check                             

  new.block

  format.btitle "title" output.check

  crossref missing$

    { format.bvolume output

      new.block

      format.number.series output

      new.sentence

      publisher "publisher" output.check

      address output

    }

    { new.block

      format.book.crossref output.nonnull

    }

  if$

  format.edition output

  new.block

  note output

  fin.entry

}



FUNCTION {booklet}

{ output.bibitem

  format.authors output

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  howpublished output

  address output

  new.block

  note output

  fin.entry

}



FUNCTION {inbook}

{ output.bibitem

  author empty$

    { format.editors "author and editor" output.check

      editor format.key output

    }

    { format.authors output.nonnull

      crossref missing$

        { "author and editor" editor either.or.check }

        'skip$

      if$

    }

  if$

  output.year.check                             

  new.block

  format.btitle "title" output.check

  crossref missing$

    { format.bvolume output

      format.chapter.pages "chapter and pages" output.check

      new.block

      format.number.series output

      new.sentence

      publisher "publisher" output.check

      address output

    }

    { format.chapter.pages "chapter and pages" output.check

      new.block

      format.book.crossref output.nonnull

    }

  if$

  format.edition output

  new.block

  note output

  fin.entry

}



FUNCTION {incollection}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  crossref missing$

    { format.in.ed.booktitle "booktitle" output.check

      format.bvolume output

      format.number.series output

      format.chapter.pages output

      new.sentence

      publisher "publisher" output.check

      address output

      format.edition output

    }

    { format.incoll.inproc.crossref output.nonnull

      format.chapter.pages output

    }

  if$

  new.block

  note output

  fin.entry

}



FUNCTION {inproceedings}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  crossref missing$

    { format.in.ed.booktitle "booktitle" output.check

      format.bvolume output

      format.number.series output

      format.pages output

      address output                                    

      new.sentence                                      

      organization output                               

      publisher output                                  

    }

    { format.incoll.inproc.crossref output.nonnull

      format.pages output

    }

  if$

  new.block

  note output

  fin.entry

}



FUNCTION {conference} { inproceedings }



FUNCTION {manual}

{ output.bibitem

  format.authors output

  author format.key output                              

  output.year.check                                     

  new.block

  format.btitle "title" output.check

  organization address new.block.checkb

  organization output

  address output

  format.edition output

  new.block

  note output

  fin.entry

}



FUNCTION {mastersthesis}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  "Master's thesis" format.thesis.type output.nonnull

  school "school" output.check

  address output

  new.block

  note output

  fin.entry

}



FUNCTION {misc}

{ output.bibitem

  format.authors output

  author format.key output                              

  output.year.check                                     

  new.block

  format.title output

  new.block

  howpublished output

  new.block

  note output

  fin.entry

}



FUNCTION {phdthesis}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.btitle "title" output.check

  new.block

  "PhD thesis" format.thesis.type output.nonnull

  school "school" output.check

  address output

  new.block

  note output

  fin.entry

}



FUNCTION {proceedings}

{ output.bibitem

  format.editors output

  editor format.key output                              

  output.year.check                                     

  new.block

  format.btitle "title" output.check

  format.bvolume output

  format.number.series output

  address output                                

  new.sentence                                  

  organization output                           

  publisher output                              

  new.block

  note output

  fin.entry

}



FUNCTION {techreport}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  format.tr.number output.nonnull

  institution "institution" output.check

  address output

  new.block

  note output

  fin.entry

}



FUNCTION {unpublished}

{ output.bibitem

  format.authors "author" output.check

  author format.key output                              

  output.year.check                                     

  new.block

  format.title "title" output.check

  new.block

  note "note" output.check

  fin.entry

}



FUNCTION {default.type} { misc }



MACRO {ajs} {"Australian Journal of Statistics"}

MACRO {annpr} {"Annals of Probability"}

MACRO {annst} {"Annals of Statistics"}

MACRO {anzjs} {"Australian and New Zealand Journal of Statistics"}

MACRO {appst} {"Applied Statistics"}

MACRO {bcs} {"Biometrics"}

MACRO {bj} {"Biometrical Journal"}

MACRO {bka}  {"Biometrika"}

MACRO {bs}  {"Bayesian Statistics"}

MACRO {cjs} {"Canadian Journal of Statistics"}

MACRO {csa} {"Communications in Statistics, A"}

MACRO {csb} {"Communications in Statistics, B"}

MACRO {csc} {"Communications in Statistics, C"}

MACRO {econ} {"Econometrica"}

MACRO {isr} {"International Statistics Review"}

MACRO {jabes} {"Journal of Agricultural, Biological, and Environmental Statistics"}

MACRO {jasa} {"Journal of the American Statistical Association"}

MACRO {jma} {"Journal of Multivariate Analysis"}

MACRO {jqt} {"Journal of Quality Technology"}

MACRO {jrssa} {"Journal of the Royal Statistical Society, Series A"}

MACRO {jrssb} {"Journal of the Royal Statistical Society, Series B"}

MACRO {jscs} {"Journal of Statistical Computation and Simulation"}

MACRO {sim} {"Statistics in Medicine"}

MACRO {sjs} {"Scandinavian Journal of Statistics"}

MACRO {ss} {"Statistical Science"}

MACRO {stat} {"Statistics"}

MACRO {tas} {"The American Statistician"}

MACRO {tcs} {"Technometrics"}

MACRO {thestat} {"The Statistician"}

MACRO {risi} {"Review of the International Statistics Institute"}



MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}



READ



FUNCTION {sortify}

{ purify$

  "l" change.case$

}



INTEGERS { len }



FUNCTION {chop.word}

{ 's :=

  'len :=

  s #1 len substring$ =

    { s len #1 + global.max$ substring$ }

    's

  if$

}



FUNCTION {format.lab.names}

{ 's :=

  s #1 "{vv~}{ll}" format.name$

  s num.names$ duplicate$

  #2 >

    { pop$ " et~al." * }

    { #2 <

        'skip$

        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =

            { " et~al." * }

            { " and " * s #2 "{vv~}{ll}" format.name$ * }

          if$

        }

      if$

    }

  if$

}



FUNCTION {author.key.label}

{ author empty$

    { key empty$

        { cite$ #1 #3 substring$ }

        'key                                    

      if$

    }

    { author format.lab.names }

  if$

}



FUNCTION {author.editor.key.label}

{ author empty$

    { editor empty$

        { key empty$

            { cite$ #1 #3 substring$ }

            'key                                

          if$

        }

        { editor format.lab.names }

      if$

    }

    { author format.lab.names }

  if$

}



FUNCTION {editor.key.label}

{ editor empty$

    { key empty$

        { cite$ #1 #3 substring$ }

        'key                    

      if$

    }

    { editor format.lab.names }

  if$

}



FUNCTION {my.full.label}

{ 's :=

  #1 'nameptr :=               % nameptr = 1;

  s num.names$ 'numnames :=    % numnames = num.name$(s);

  numnames 'namesleft :=

    { namesleft #0 > }



    { s nameptr "{vv~}{ll}" format.name$ 't :=  % get the next name

      nameptr #1 >

        { namesleft #1 >

              { ", " * t * }

              { numnames #2 >

                  { "," * }

                  'skip$

                if$

                t "others" =

                    { " et~al\mbox{.}" * } % jrh: avoid spacing problems

                    { " and " * t * } % from Chicago Manual of Style

                  if$

               }

               if$

             }

            't

        if$

        nameptr #1 + 'nameptr :=          % nameptr += 1;

        namesleft #1 - 'namesleft :=      % namesleft =- 1;

    }

  while$



}



FUNCTION {calc.label}      

{ type$ "book" =

  type$ "inbook" =

  or

    'author.editor.key.label

    { type$ "proceedings" =

        'editor.key.label                       

        'author.key.label                       

      if$

    }

  if$

  "\protect\citeauthoryear{" author my.full.label * "}{" * swap$ * "}{"                    

%  "\protect\citeauthoryear{" author format.lab.names * "}{" * swap$ * "}{"                    

%  "\protect\citeauthoryear{" format.authors * "}{" * swap$ * "}{"                    

%  "\protect\citeauthoryear{" swap$ * "}{"                   

  *                                                     

  year field.or.null purify$ #-1 #4 substring$          

  *                       

  'label :=

}



FUNCTION {sort.format.names}

{ 's :=

  #1 'nameptr :=

  ""

  s num.names$ 'numnames :=

  numnames 'namesleft :=

    { namesleft #0 > }

    { nameptr #1 >

        { "   " * }

        'skip$

      if$                                               

      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't := 

      nameptr numnames = t "others" = and

        { "et al" * }

        { t sortify * }

      if$

      nameptr #1 + 'nameptr :=

      namesleft #1 - 'namesleft :=

    }

  while$

}



FUNCTION {sort.format.title}

{ 't :=

  "A " #2

    "An " #3

      "The " #4 t chop.word

    chop.word

  chop.word

  sortify

  #1 global.max$ substring$

}



FUNCTION {author.sort}

{ author empty$

    { key empty$

        { "to sort, need author or key in " cite$ * warning$

          ""

        }

        { key sortify }

      if$

    }

    { author sort.format.names }

  if$

}



FUNCTION {author.editor.sort}

{ author empty$

    { editor empty$

        { key empty$

            { "to sort, need author, editor, or key in " cite$ * warning$

              ""

            }

            { key sortify }

          if$

        }

        { editor sort.format.names }

      if$

    }

    { author sort.format.names }

  if$

}



FUNCTION {editor.sort}

{ editor empty$

    { key empty$

        { "to sort, need editor or key in " cite$ * warning$

          ""

        }

        { key sortify }

      if$

    }

    { editor sort.format.names }

  if$

}



FUNCTION {presort}

{ calc.label

  label sortify

  "    "

  *

  type$ "book" =

  type$ "inbook" =

  or

    'author.editor.sort

    { type$ "proceedings" =

        'editor.sort

        'author.sort

      if$

    }

  if$

  #1 entry.max$ substring$      

  'sort.label :=                

  sort.label                    

  *

  "    "

  *

  title field.or.null

  sort.format.title

  *

  #1 entry.max$ substring$

  'sort.key$ :=

}



ITERATE {presort}



SORT            



STRINGS { last.label next.extra }       



INTEGERS { last.extra.num }             



FUNCTION {initialize.extra.label.stuff} 

{ #0 int.to.chr$ 'last.label :=

  "" 'next.extra :=

  #0 'last.extra.num :=

}



FUNCTION {forward.pass}

{ last.label label =

    { last.extra.num #1 + 'last.extra.num :=

      last.extra.num int.to.chr$ 'extra.label :=

    }

    { "a" chr.to.int$ 'last.extra.num :=

      "" 'extra.label :=

      label 'last.label :=

    }

  if$

}



FUNCTION {reverse.pass}       

{ next.extra "b" =

    { "a" 'extra.label := }

    'skip$

  if$

  label extra.label * "}" * 'label :=

  extra.label 'next.extra :=

}



EXECUTE {initialize.extra.label.stuff}



ITERATE {forward.pass}



REVERSE {reverse.pass}



FUNCTION {bib.sort.order}

{ sort.label

  "    "

  *

  year field.or.null sortify

  *

  "    "

  *

  title field.or.null

  sort.format.title

  *

  #1 entry.max$ substring$

  'sort.key$ :=

}



ITERATE {bib.sort.order}



SORT            



FUNCTION {begin.bib}

{ preamble$ empty$                              

    'skip$

    { preamble$ write$ newline$ }

  if$

  "\begin{thebibliography}{}" write$ newline$           

}



EXECUTE {begin.bib}



EXECUTE {init.state.consts}



ITERATE {call.type$}



FUNCTION {end.bib}

{ newline$

  "\end{thebibliography}" write$ newline$

}



EXECUTE {end.bib}

%% 

%% End of file `biom.bst'.

%%

