\begin{filecontents*}{cc.cls} %% %% This is file `cc.cls', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cccls,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \providecommand\ignorespacesafterend{\@ignoretrue} \newif\ifclass \ifx\@currext\@clsextension\classtrue\else\classfalse\fi \ifclass\expandafter\ProvidesClass\else\expandafter\ProvidesPackage\fi {\ifclass cc\else cc-cls\fi} [% CC MAIN DATE AND VERSION ON NEXT LINE 2010/06/17 v2.12 computational complexity \ifclass document class\else package\fi] \RequirePackage{ccaux} \DeclareOption{localnumbering}{\@longarticletrue} \DeclareOption{globalnumbering}{\@longarticlefalse} \DeclareOption{longarticle}{\@longarticletrue} \DeclareOption{shortarticle}{\@longarticlefalse} \DeclareOption{cclayout}{\@cclayouttrue} \DeclareOption{nocclayout}{\@cclayoutfalse} \DeclareOption{prefixes}{% \PassOptionsToPackage{\CurrentOption}{relabel}} \DeclareOption{noprefixes}{% \ExecuteOptions{notheoremitemprefixes}% \PassOptionsToPackage{\CurrentOption,nobare}{relabel}} \DeclareOption{bare}{\PassOptionsToPackage{\CurrentOption}{relabel}} \DeclareOption{nobare}{\PassOptionsToPackage{\CurrentOption}{relabel}} \DeclareOption{multilingual}{\ExecuteOptions{T1,latin1,babel}} \DeclareOption{nomultilingual}{\ExecuteOptions{OT1,nolatin1,nobabel}} \DeclareOption{T1}{\@Tonetrue} \DeclareOption{OT1}{\@Tonefalse} \DeclareOption{latin1}{\@latintrue} \DeclareOption{nolatin1}{\@latinfalse} \DeclareOption{babel}{\@babeltrue} \DeclareOption{nobabel}{\@babelfalse} \DeclareOption{ams}{\@amstrue} \DeclareOption{noams}{\@amsfalse} \DeclareOption{autotitle}{\@autotitletrue} \DeclareOption{noautotitle}{\@autotitlefalse} \DeclareOption{ccsectioning}{\@ccsectioningtrue} \DeclareOption{noccsectioning}{\@ccsectioningfalse} \DeclareOption{natbib}{\@natbibtrue\@cccitefalse} \DeclareOption{nonatbib}{\@natbibfalse\@cccitefalse} \DeclareOption{cccite}{\@natbibfalse\@cccitetrue} \DeclareOption{nocccite}{\@natbibfalse\@cccitefalse} \DeclareOption{manualbibliography}{\@manualbibliographytrue} \DeclareOption{twocolumnbibliography}{\@twocolumnbibliographytrue} \DeclareOption{onecolumnbibliography}{\@twocolumnbibliographyfalse} \DeclareOption{nosort}{% \def\@natbibsort{}} \DeclareOption{sort}{% \def\@natbibsort{\PassOptionsToPackage{sort}{natbib}}} \DeclareOption{sort&compress}{% \def\@natbibsort{\PassOptionsToPackage{sort&compress}{natbib}}} \DeclareOption{cctheorems}{\@cctheoremstrue\@standardtheoremstrue} \DeclareOption{cctheorems+separatelycounted}{% \@cctheoremstrue\@standardtheoremsfalse} \DeclareOption{nocctheorems}{\@cctheoremsfalse} \DeclareOption{separateequationcounting}{\@ccnosepeqncntfalse} \DeclareOption{noseparateequationcounting}{\@ccnosepeqncnttrue} \DeclareOption{ccalgorithms}{\@ccalgotrue} \DeclareOption{noccalgorithms}{\@ccalgofalse} \DeclareOption{theoremitemprefixes}{% \PassOptionsToPackage{\CurrentOption}{ccthm}} \DeclareOption{notheoremitemprefixes}{% \PassOptionsToPackage{\CurrentOption}{ccthm}} \DeclareOption{enhancedprefixes}{% old \PassOptionsToPackage{theoremitemprefixes}{ccthm}} \DeclareOption{standardprefixes}{% old \PassOptionsToPackage{notheoremitemprefixes}{ccthm}} \DeclareOption{ccpublish}{\@ccpublishtrue} \DeclareOption{noccpublish}{\@ccpublishfalse} \DeclareOption{cctextarea}{\@cctextareatrue} \DeclareOption{nocctextarea}{\@cctextareafalse} \DeclareOption{noothermargins}{\@marginmode\m@ne} \DeclareOption{classicalmargins}{\@marginmode\z@} \DeclareOption{printmargins}{\@marginmode\@ne} \DeclareOption{balancedmargins}{\@marginmode\tw@} \DeclareOption{10pt}{\def\@ccptsize{10}} \DeclareOption{11pt}{\def\@ccptsize{11}} \DeclareOption{12pt}{\def\@ccptsize{12}} \DeclareOption{a4paper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{a5paper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{b5paper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{letterpaper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{legalpaper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{executivepaper}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{landscape}{\@cctextareafalse% \PassOptionsToClass{\CurrentOption}{article}} \DeclareOption{oneside}{\@twosidefalse} \DeclareOption{twoside}{\@twosidetrue} \DeclareOption{leqno}{% \PassOptionsToClass{\CurrentOption}{article}% \PassOptionsToPackage{\CurrentOption}{amsmath}% } \DeclareOption{reqno}{% \PassOptionsToClass{\CurrentOption}{article}% \PassOptionsToPackage{\CurrentOption}{amsmath}% } \DeclareOption*{\OptionNotUsed \PassOptionsToClass{\CurrentOption}{article}} \ifclass \ExecuteOptions{a4paper,12pt,cctextarea,balancedmargins,twoside,% OT1,nolatin1,nobabel,% localnumbering,bare,% leqno,ams,ccpublish,cclayout,autotitle,ccsectioning,% onecolumnbibliography,natbib,sort&compress,% cctheorems,theoremitemprefixes,noseparateequationcounting,% ccalgorithms} \else \ExecuteOptions{a4paper,12pt,nocctextarea,balancedmargins,twoside,% OT1,nolatin1,nobabel,% localnumbering,bare,% leqno,ams,noccpublish,nocclayout,noautotitle,ccsectioning,% onecolumnbibliography,natbib,sort&compress,% cctheorems,theoremitemprefixes,noseparateequationcounting,% ccalgorithms} \fi \ProcessOptions\relax \PassOptionsToClass{\@ccptsize pt}{article} \if@twoside \PassOptionsToClass{twoside}{article} \else \PassOptionsToClass{oneside}{article} \fi \let\@ccptsize\@undefined \@natbibsort \let\@natbibsort\@undefined \if@standardtheorems\else \ClassWarning{cc}{You are using the non documented feature\MessageBreak cctheorems+separatelycounted.\MessageBreak It is recommended not to use this.} \fi \newcommand{\cc}{\textsf{computational complexity}} \ifclass \LoadClass{article}[1999/01/07 v1.4a] \fi \if@Tone \RequirePackage[T1]{fontenc} \fi %%german.sty is not allowed. Use global options: %%multilingual,german. \@pass@ptions\@pkgextension{}{german} \global\expandafter\let\csname ver@german.\@pkgextension\endcsname\@empty \if@babel \RequirePackage{babel} \fi \if@latin \RequirePackage[latin1]{inputenc}[1998/03/05 v0.97] \fi \if@ams \RequirePackage{amsmath}[2000/01/15 v2.05]% 1997/03/20 v1.2d \RequirePackage{amsfonts}[1997/09/17 v2.2e] \RequirePackage{amssymb}[1996/11/03 v2.2b] \else \newcommand{\numberwithin}[3][\arabic]{% \@ifundefined{c@#2}{\@nocounterr{#2}}{% \@ifundefined{c@#3}{\@nocnterr{#3}}{% \@addtoreset{#2}{#3}% \expandafter\xdef\csname the#2\endcsname{% \expandafter\noexpand\csname the#3\endcsname% .\noexpand#1{#2}}}}% } %% \def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{% %% \@ifundefined{c@#2}{\@nocnterr{#2}}{% %% \@addtoreset{#1}{#2}% %% \toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}% %% \expandafter\xdef\csname the#1\endcsname %% {\expandafter\noexpand\csname the#2\endcsname %% .\the\toks@}}}} \let\@ifempty\cc@ifempty \let\@ifnotempty\cc@ifnotempty \let\bigstar\bullet \let\lozenge\circ \def\square{{\fboxsep.3em{\vbox{\hbox{\fbox{}}\vskip0pt}}}} \let\text\mbox% This is a poor man's version! \fi \RequirePackage{url}[1999/03/02 ver 1.4] \expandafter\def\expandafter\UrlSpecials\expandafter{% \UrlSpecials\do\%{}} \providecommand{\email}{\begingroup\urlstyle{tt}\Url} \providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url} \providecommand{\ixpt}{\@setfontsize\ixpt\@ixpt{11}} \newcommand{\xptsfbx}{% \@setfontsize\xpt\@xpt{12}\usefont{OT1}{cmss}{bx}{n}} \DeclareTextFontCommand{\textsfbx}{\usefont{OT1}{cmss}{bx}{n}} \if@cclayout \RequirePackage{cclayout} \else \newskip\headerindent \headerindent=10mm \newdimen\headrulewidth \headrulewidth.4pt \def\cctitlehead{} \def\ccauthorhead{} \def\ps@cc{\let\@mkboth\markboth \def\@oddhead{\vbox{\hbox to\textwidth{\reset@font\strut \null \hfil {\small\cctitlehead}% \hbox to\headerindent{\hfil\thepage}% }% \if@ccpublish\else \kern2.6\p@ \hrule\@height\headrulewidth\kern-\headrulewidth \kern-2.6\p@ \fi \vskip\z@ }% }% \def\@oddfoot{} \def\@evenhead{\vbox{\hbox to\textwidth{\reset@font\strut \hbox to\headerindent{\thepage\hfil}% {\small\ccauthorhead}% \hfil \null }% \if@ccpublish\else \kern2.6\p@ \hrule\@height\headrulewidth\kern-\headrulewidth \kern-2.6\p@ \fi \vskip\z@ }% }% \let\@evenfoot\@oddfoot } \fi%@cclayout \if@ccsectioning \def\@seccntformat#1{\csname the#1\endcsname.\enskip} \renewcommand{\section}{\@startsection{section}{1}{\z@}% {-2.9ex\@plus-.5ex\@minus-.2ex}% {1.5ex\@plus.5ex\@minus.2ex}% {\normalfont\large\bfseries\centering}} \def\opt@fullstop#1{#1{\has@fullstop#1.\@@@ \if@tempswa\else \has@exlamationmark#1!\@@@ \if@tempswa\else \has@questionmark#1?\@@@ \if@tempswa\else .\fi \fi \fi}} \def\has@fullstop#1.#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}} \def\has@exlamationmark#1!#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}} \def\has@questionmark#1?#2\@@@{\@ifempty{#2}{\@tempswafalse}{\@tempswatrue}} \def\dot@sect#1#2#3#4#5#6[#7]#8{% \let\@sect\ccorg@sect\let\@ssect\ccorg@ssect \@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\opt@fullstop{#8}}} \def\dot@ssect#1#2#3#4#5{% \let\@sect\ccorg@sect\let\@ssect\ccorg@ssect \@ssect{#1}{#2}{#3}{#4}{\opt@fullstop{#5}}} \def\add@dot{% \let\ccorg@sect\@sect\let\ccorg@ssect\@ssect \let\@sect\dot@sect\let\@ssect\dot@ssect} \renewcommand{\subsection}{% \add@dot \@startsection{subsection}{2}{\z@}% {2.33ex\@plus.5ex\@minus.2ex}% was 12pt +- {-1em}% {\normalfont\normalsize\bfseries}} \renewcommand{\subsubsection}{% \add@dot \@startsection{subsubsection}{3}{\z@}% {1.55ex\@plus.5ex\@minus.2ex}% was 8pt +- {-1em}% {\normalfont\normalsize\bfseries}} \fi%@ccsectioning \if@natbib \RequirePackage{cc2cite} \if@manualbibliography \bibstyle@plain%\bibpunct{[}{]}{;}{n}{}{,} \fi \else%@natbib \if@cccite \RequirePackage{cccite} \renewcommand{\thebibliography}[1]{% \condbreak{8ex}% \section*{\refname \addcontentsline{toc}{section}{\refname}% \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}% \vskip-\lastskip \list{[\@arabic\c@enumiv] }% {% \labelwidth\z@ \labelsep\z@ \leftmargin\z@ \@openbib@code \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}% }% \sloppy \clubpenalty4000 \@clubpenalty \clubpenalty \widowpenalty4000 \sfcode`\.\@m \bibfont} \let\bibfont\small \CheckCommand*\@bibitem[1]{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces} \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{[\the\value{\@listctr}]}}\fi\ignorespaces} \else \relax \fi%@cccite \fi%@natbib \if@twocolumnbibliography \RequirePackage{multicol} \newenvironment{nthebibliography}{% \footnotesize \let\bibfont\footnotesize \let\section\subsubsection \begin{multicols}2 \othebibliography} {% \vfill\vfill\vfill\vfill \endothebibliography \end{multicols}} \AtBeginDocument{% \let\othebibliography\thebibliography \let\endothebibliography\endthebibliography \let\thebibliography\nthebibliography \let\endthebibliography\endnthebibliography} \fi \RequirePackage{relabel}[1998/09/07 v1.01] \let\nref\ref \babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie] \defprefix{part}{\partname~} \babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre] \defprefix{chapter}{\chaptername~} \babel\def\sectionname{Section}[german=Abschnitt,french=Section] \defprefix{section}{\sectionname~} \babel\def\subsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsection}{\subsectionname~} \babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsubsection}{\subsubsectionname~} \let\ccorg@appendix\appendix \babel\def\appendixname{Appendix}[german=Anhang,french=Annexe] \def\appendix{% \defprefix{section}{\appendixname~}% \defprefix{subsection}{\appendixname~}% \defprefix{subsubsection}{\appendixname~}% \ccorg@appendix} \defprefix{equation}#1{(#1)} \babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}] \defprefix{figure}{\figurename~} \babel\def\tablename{Table}[german=Tafel,french={\scshape Table}] \defprefix{table}{\tablename~} \numberallwithin{section} \AtBeginDocument{\@adjustnumbering} \if@cctheorems \RequirePackage{ccthm} \RequirePackage{ccproof} \fi \if@ccalgo \RequirePackage{ccalgo} \fi \babel\def\ccacknowledgementsname{Acknowledgements}[% german=Danksagung,french=Remerciements] \newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{} \def\labelitemi{$\circ$} \def\footnoterule{\kern-3\p@\hrule\@width18mm\kern 2.6\p@} \let\ccorg@include\include \newwarning{warn@include}{Note that \protect\include\space is equivalent to \protect\input\space.} \renewcommand{\include}{% \if@ccpublish \ccClassWarning{warn@include}% \let\next\input \else \let\next\ccorg@include \fi \next} \endinput %% %% End of file `cc.cls'. \end{filecontents*} \begin{filecontents*}{cc-cls.sty} %% %% This is file `cc-cls.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccsty,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \input{cc.cls} \endinput %% %% End of file `cc-cls.sty'. \end{filecontents*} \begin{filecontents*}{cc2cite.sty} %% %% This is file `cc2cite.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc2cite,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc2cite}[2000/02/29 v2.05 cc2 cite helper package] \RequirePackage{natbib} \bibpunct{(}{)}{;}{a}{}{,} \newcommand{\bibstyle@cc}{\bibpunct{(}{)}{;}{a}{}{,}} \expandafter\def\csname bibstyle@cc2\endcsname{% \bibpunct{(}{)}{;}{a}{}{,}} \let\bibfont\small \bibhang\z@ \providecommand{\newwarning}[2]{% \expandafter\gdef\csname cc@warn@#1\endcsname{#2}} \providecommand{\ccClassWarning}[1]{% \ClassWarning{cc}{\csname cc@warn@#1\endcsname}} \newwarning{old@citemul}{% The command \protect\citemul\space is obsolete. Use \protect\citet\space instead.\MessageBreak Please read the documentation of the package `natbib.sty'} \newwarning{old@parencite}{% The command \protect\parencite\space is obsolete. Use \protect\citep\space instead.\MessageBreak Please read the documentation of the package `natbib.sty'} \newwarning{old@shortcite}{% The command \protect\shortcite\space is obsolete. Use \protect\citealt\space instead.\MessageBreak Please read the documentation of the package `natbib.sty'} \def\citemul{\ccClassWarning{old@citemul}\citet} \def\parencite{\ccClassWarning{old@parencite}\citep} \def\shortcite{\ccClassWarning{old@shortcite}\citealt} \RequirePackage{ccdbs} \DefaultBibliographyStyle{cc2} \endinput %% %% End of file `cc2cite.sty'. \end{filecontents*} \begin{filecontents*}{cc4amsart.sty} %% %% This is file `cc4amsart.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4amsart,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4amsart}[2009/12/22 v2.05b computational complexity, adaptions to amsart. Michael Nuesken, Bonn.] \RequirePackage{ccaux} \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's % definitions. \PassOptionsToPackage{bare}{relabel} \RequirePackage{thcc} \gdef\theorem@headerfont{\bfseries} %% \def\th@cc{% %% \normalfont\itshape %% \def\@begintheorem##1##2{\item %% [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% %% \def\@opargbegintheorem##1##2##3{\item %% [\hskip\labelsep \theorem@headerfont ##1\ ##2\ % %% \normalfont({\activate@shortcite{}##3}).]}% %% } \@longarticletrue \RequirePackage{ccthm} \babel\def\ccacknowledgementsname{Acknowledgements}[% german=Danksagung,french=Remerciements] \newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{} \RequirePackage{relabel} \RequirePackage{cc2cite} \RequirePackage{ccqed} \AtBeginDocument{\@adjustnumbering} \endinput %% %% End of file `cc4amsart.sty'. \end{filecontents*} \begin{filecontents*}{cc4apjrnl.sty} %% %% This is file `cc4apjrnl.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4apjrnl,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4apjrnl}[2002/01/08 v2.05 computational complexity, adaptions to apjrnl. Michael Nuesken, Bonn.] \let\answer\relax \let\endanswer\relax \RequirePackage{amsmath}[1997/03/20 v1.2d] \RequirePackage{amsfonts}[1997/09/17 v2.2e] \RequirePackage{amssymb}[1996/11/03 v2.2b] \RequirePackage{ccaux} \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's definitions. \@longarticletrue \@adjustnumbering \let\theorem@style\@undefined \RequirePackage{ccthm} \RequirePackage{ccqed} \let\proof\@undefined \let\endproof\@undefined \RequirePackage{ccproof} \RequirePackage{cc2cite} \RequirePackage{url}[1999/03/02 ver 1.4] \expandafter\def\expandafter\UrlSpecials\expandafter{% \UrlSpecials\do\%{}} \providecommand{\email}{\begingroup\urlstyle{tt}\Url} \providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url} \gdef\theorem@headerfont{\scshape\null\hskip\parindent} \gdef\Proof{\textit{Proof}} \renewcommand{\qedsymbol}{\rule{2pt}{4pt}} \endinput %% %% End of file `cc4apjrnl.sty'. \end{filecontents*} \begin{filecontents*}{cc4elsart.sty} %% %% This is file `cc4elsart.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4elsart,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4elsart}[2009/12/22 v2.05b computational complexity, adaptions to elsart. Michael Nuesken, Bonn.] \RequirePackage{ccaux} \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's % definitions. \PassOptionsToPackage{bare}{relabel} \RequirePackage{thcc} %%% \gdef\theorem@headerfont{\bfseries} %%% %% \def\th@cc{% %%% %% \normalfont\itshape %%% %% \def\@begintheorem##1##2{\item %%% %% [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% %%% %% \def\@opargbegintheorem##1##2##3{\item %%% %% [\hskip\labelsep \theorem@headerfont ##1\ ##2\ % %%% %% \normalfont({\activate@shortcite{}##3}).]}% %%% %% } \@longarticletrue \let\claim\relax \let\fact\relax \let\note\relax \let\proof\relax\let\endproof\relax \RequirePackage{ccthm} \RequirePackage{ccproof} \RequirePackage{ccqed} \babel\def\ccacknowledgementsname{Acknowledgements}[% german=Danksagung,french=Remerciements] \newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{} \RequirePackage{relabel} \babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie] \defprefix{part}{\partname~} \babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre] \defprefix{chapter}{\chaptername~} \babel\def\sectionname{Section}[german=Abschnitt,french=Section] \defprefix{section}{\sectionname~} \babel\def\subsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsection}{\subsectionname~} \babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsubsection}{\subsubsectionname~} \let\ccorg@appendix\appendix \babel\def\appendixname{Appendix}[german=Anhang,french=Annexe] \def\appendix{% \defprefix{section}{\appendixname~}% \defprefix{subsection}{\appendixname~}% \defprefix{subsubsection}{\appendixname~}% \ccorg@appendix} \defprefix{equation}#1{(#1)} \babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}] \defprefix{figure}{\figurename~} \babel\def\tablename{Table}[german=Tafel,french={\scshape Table}] \defprefix{table}{\tablename~} \RequirePackage{amsmath}[2000/01/15 v2.05]% 1997/03/20 v1.2d \RequirePackage{amsfonts}[1997/09/17 v2.2e] \RequirePackage{amssymb}[1996/11/03 v2.2b] \numberallwithin{section} \AtBeginDocument{\@adjustnumbering} %%% \RequirePackage{cc2cite} %%% \RequirePackage{url} \endinput %% %% End of file `cc4elsart.sty'. \end{filecontents*} \begin{filecontents*}{cc4jT.sty} %% %% This is file `cc4jT.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4jT,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4jT}[2002/01/08 v2.05 computational complexity, adaptions to jT which uses amsart. Michael Nuesken, Bonn.] \RequirePackage{ccaux} \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's % definitions. \PassOptionsToPackage{bare}{relabel} \RequirePackage{thcc} \gdef\theorem@headerfont{\bfseries} %% \def\th@cc{% %% \normalfont\itshape %% \def\@begintheorem##1##2{\item %% [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% %% \def\@opargbegintheorem##1##2##3{\item %% [\hskip\labelsep \theorem@headerfont ##1\ ##2\ % %% \normalfont({\activate@shortcite{}##3}).]}% %% } \@longarticletrue \let\proof\relax\let\endproof\relax \RequirePackage{ccthm} \RequirePackage{ccproof} \RequirePackage{ccqed} \babel\def\ccacknowledgementsname{Acknowledgements}[% german=Danksagung,french=Remerciements] \newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{} \RequirePackage{relabel} \babel\def\partname{Part}[german=Teil,french=\protect\@Fpt partie] \defprefix{part}{\partname~} \babel\def\chaptername{Chapter}[german=Kapitel,french=Chapitre] \defprefix{chapter}{\chaptername~} \babel\def\sectionname{Section}[german=Abschnitt,french=Section] \defprefix{section}{\sectionname~} \babel\def\subsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsection}{\subsectionname~} \babel\def\subsubsectionname{Section}[german=Abschnitt,french=Section] \defprefix{subsubsection}{\subsubsectionname~} \let\ccorg@appendix\appendix \babel\def\appendixname{Appendix}[german=Anhang,french=Annexe] \def\appendix{% \defprefix{section}{\appendixname~}% \defprefix{subsection}{\appendixname~}% \defprefix{subsubsection}{\appendixname~}% \ccorg@appendix} \defprefix{equation}#1{(#1)} \babel\def\figurename{Figure}[german=Figur,french={\scshape Figure}] \defprefix{figure}{\figurename~} \babel\def\tablename{Table}[german=Tafel,french={\scshape Table}] \defprefix{table}{\tablename~} \numberallwithin{section} \AtBeginDocument{\@adjustnumbering} \RequirePackage{cc2cite} \RequirePackage{url} \endinput %% %% End of file `cc4jT.sty'. \end{filecontents*} \begin{filecontents*}{cc4llncs.sty} %% %% This is file `cc4llncs.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4llncs,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4llncs}[2002/10/01 v2.05 computational complexity, adaptions to llncs. Michael Nuesken, Bonn.] \let\claim\relax \let\endclaim\relax \let\conjecture\relax \let\endconjecture\relax \let\corollary\relax \let\endcorollary\relax \let\counterexample\relax \let\endcounterexample\relax \let\definition\relax \let\enddefinition\relax \let\exercise\relax \let\endexercise\relax \let\fact\relax \let\endfact\relax \let\hypothesis\relax \let\endhypothesis\relax \let\lemma\relax \let\endlemma\relax \let\notation\relax \let\endnotation\relax \let\note\relax \let\endnote\relax \let\observation\relax \let\endobservation\relax \let\open\relax \let\endopen\relax \let\openquestion\relax \let\endopenquestion\relax \let\problem\relax \let\endproblem\relax \let\proposition\relax \let\endproposition\relax \let\question\relax \let\endquestion\relax \let\remark\relax \let\endremark\relax \let\result\relax \let\endresult\relax \let\theorem\relax \let\endtheorem\relax \let\thesis\relax \let\endthesis\relax \let\warning\relax \let\endwarning\relax \let\example\relax \let\endexample\relax \RequirePackage{amsmath}[1997/03/20 v1.2d] \RequirePackage{amsfonts}[1997/09/17 v2.2e] \RequirePackage{amssymb}[1996/11/03 v2.2b] \RequirePackage{ccaux} \@longarticletrue \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's % definitions. \RequirePackage{ccthm} \theoremheaderfont{\upshape\bfseries} \RequirePackage{ccalgo} \let\origthebibliography\thebibliography \let\origendthebibliography\endthebibliography \let\citeauthoryear\relax \RequirePackage{cc2cite} \let\thebibliography\origthebibliography \let\endthebibliography\origendthebibliography \RequirePackage{url}[1999/03/02 ver 1.4] \expandafter\def\expandafter\UrlSpecials\expandafter{% \UrlSpecials\do\%{}} \providecommand{\email}{\begingroup\urlstyle{tt}\Url} \providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url} \def\condbreak#1{% \vskip 0pt plus #1% \pagebreak[3]% \vskip 0pt plus -#1% \relax} %%% \endinput %% %% End of file `cc4llncs.sty'. \end{filecontents*} \begin{filecontents*}{cc4siamltex.sty} %% %% This is file `cc4siamltex.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cc4siamltex,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cc4siamltex}[2002/05/22 v2.05 computational complexity, adaptions to siamltex. Michael Nuesken, Bonn.] \let\theorem\relax \let\endtheorem\relax \let\lemma\relax \let\endlemma\relax \let\corollary\relax \let\endcorollary\relax \let\proposition\relax \let\endproposition\relax \let\definition\relax \let\enddefinition\relax \let\proof\relax \let\endproof\relax \RequirePackage{amsmath} \RequirePackage{amsfonts} \RequirePackage{amssymb} \RequirePackage{ccaux} \RequirePackage{ccreltx}% deactivate amsthm.sty and reactive LaTeX's % definitions. %% \PassOptionsToPackage{bare}{relabel} \RequirePackage{ccthm} \RequirePackage{relabel} \RequirePackage{cc2cite} \RequirePackage{ccproof} \renewcommand{\Proof}{\textit{Proof}} \renewcommand{\qedsymbol}{\vbox{\hrule height0.6pt\hbox{% \vrule height1.3ex width0.6pt\hskip0.8ex \vrule width0.6pt}\hrule height0.6pt }} \RequirePackage{ccalgo} \babel\def\ccacknowledgementsname{Acknowledgements}[% german=Danksagung,french=Remerciements] \newenvironment{acknowledge}{\section*{\ccacknowledgementsname}}{} \RequirePackage{url}[1999/03/02 ver 1.4] \expandafter\def\expandafter\UrlSpecials\expandafter{% \UrlSpecials\do\%{}} \providecommand{\email}{\begingroup\urlstyle{tt}\Url} \providecommand{\homepage}{\begingroup\scriptsize\urlstyle{tt}\Url} \endinput %% %% End of file `cc4siamltex.sty'. \end{filecontents*} \begin{filecontents*}{ccalgo.sty} %% %% This is file `ccalgo.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccalgo,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{ccalgo}[2005/08/27 v2.05 algorithm environment for cc. Michael Nuesken, Bonn.] \let\namedalgorithm\@undefined \let\endnamedalgorithm\@undefined \let\algorithm\@undefined \let\endalgorithm\@undefined {\def\algonumerate@item[#1]{% \if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}% \fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{% \@minipagefalse \global\@newlistfalse \if@inlabel \global\@inlabelfalse {\setbox\z@\lastbox \ifvoid\z@ \kern-\itemindent \fi}% \box\@labels \penalty\z@ \fi \if@nobreak \@nobreakfalse \clubpenalty \@M \else \clubpenalty \@clubpenalty \everypar{}% \fi}% \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter\@listctr \fi \fi \sbox\@tempboxa{\makelabel{#1}}% \global\setbox\@labels\hbox{% \unhbox\@labels \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa \else \hbox to\labelwidth {\unhbox\@tempboxa}% \fi \hskip \labelsep}% \ignorespaces} \ifx\algonumerate@item\@item\else \PackageWarningNoLine{ccalgo}{% Command \protect\@item\space has changed.\MessageBreak Check if current package is valid} \fi} \RequirePackage{ccaux} \RequirePackage{theorem} \RequirePackage{thcc} \RequirePackage{relabel} \def\list@parshape{% %%\typeout{parshape 1 \the\@totalleftmargin+\the\linewidth}% \parshape \@ne \@totalleftmargin \linewidth} \newdimen\reinit@list@last \def\reinit@list#1{% \advance\itemindent\reinit@list@last \advance\@totalleftmargin-\reinit@list@last \advance\linewidth\reinit@list@last \global\reinit@list@last#1\relax \ifdim\reinit@list@last>\algonumerate@maxindent \global\reinit@list@last\algonumerate@maxindent\fi \advance\itemindent-\reinit@list@last \advance\@totalleftmargin\reinit@list@last \advance\linewidth-\reinit@list@last %%\typeout{\the\@totalleftmargin + \the\linewidth}% \list@parshape} \def\reinit@list@label{% \reinit@list{\wd\@tempboxa}% } \newcommand{\makealgolabel}[1]{#1.} \newcommand{\makeoptalgolabel}[1]{(#1)} \let\makeoptalgocurrentlabel\makeoptalgolabel \newcounter{algonumerate} \defprefix{algonumerate}{} \newcount\algonumerate@items \renewcommand{\thealgonumerate}{% \expandafter\ifnum\value{algonumerate}<\@ne \algonumfield% \else \arabic{algonumerate}\fi}% \def\algonumfield{\ignorespaces \ifx\@algonumfield\relax\else \expandafter\@algonumfield\csname c@algonumerate\endcsname\fi \unskip} \newif\if@speciallabel \newcommand{\labelalgonumerate}{% \count@\value{algonumerate}% \ifnum\count@<\z@ \algonumfield% \else \makealgolabel{\thealgonumerate}% \fi }% \newdimen\algo@labelsep \newdimen\steplabelwidth \newtoks\AtNextItem \newif\if@requireditemscomplete \newif\if@noitemargcopy \let\orig@item\item \def\item{\@ifnextchar[{\@noitemargcopyfalse\orig@item}{\@noitemargcopytrue\orig@item}} \newcount\last@algolabeltype \newcount\this@algolabeltype \newcommand{\algonumerate@label}[1]{% \expandafter\count@\value{algonumerate}% \if@noitemargcopy \ifnum\count@<\z@ \let\next\algonumerate@labelautomatic \global\last@algolabeltype\this@algolabeltype \global\this@algolabeltype\m@ne \else \let\next\algonumerate@labelnumber \global\last@algolabeltype\this@algolabeltype \global\this@algolabeltype\@ne \fi \else \def\@tempa{#1}% \ifx\@tempa\@empty \let\next\algonumerate@labelempty \global\last@algolabeltype\this@algolabeltype \global\this@algolabeltype\tw@ \else \global\last@algolabeltype\this@algolabeltype \global\this@algolabeltype\z@ \let\next\algonumerate@labelexplicit \fi \fi\next{#1}} \newcommand{\algonumerate@makelabelexplicit}[1]{% #1:\hskip\algo@labelsep% } \newcommand{\algonumerate@makelabelempty}[1]{% \hskip\steplabelwidth\hskip\algo@labelsep% } \newcommand{\algonumerate@makelabelautomatic}[1]{% #1:\hskip\algo@labelsep% } \newcommand{\algonumerate@makelabelnumber}[1]{% \hb@xt@\steplabelwidth{\hss %\hb@xt@\steplabelwidth{\hfill #1% %} }\hskip\algo@labelsep% } \newcommand{\algonumerate@postprocess}[1]{% \expandafter\count@\value{algonumerate}% %%{\tracingall\nonstopmode\showbox\@tempboxa}% \ifnum\last@algolabeltype<\@ne \ifnum\this@algolabeltype=\@ne \medskip \fi \fi #1% \global\let\latest@item@currentlabel\@currentlabel \global\let\latest@item@bare@currentlabel\@bare@currentlabel \ifnum\count@=\m@ne \stepcounter{algonumerate}% \fi \global\@speciallabeltrue \the\AtNextItem \global\AtNextItem{}% \reinit@list@label } \newcommand{\algonumerate@labelexplicit}[1]{% For algorithm i/o %%% \typeout{item explicit [#1]}% \algonumerate@makelabelexplicit{#1}% \global\let\algonumerate@global\global \gdef\global{\algonumerate@global\let\global\algonumerate@global \algonumerate@postprocess{% \protected@edef\@currentlabel{\csname p@\@listctr\endcsname {\makeoptalgocurrentlabel{#1}}}% \protected@edef\@bare@currentlabel{#1}% }% \global}% } \newcommand{\algonumerate@labelempty}[1]{% For algorithm i/o %%% \typeout{item empty [#1]}% \algonumerate@makelabelempty{}% \global\let\algonumerate@global\global \gdef\global{\algonumerate@global\let\global\algonumerate@global \algonumerate@postprocess{}% \global}% } \newcommand{\algonumerate@labelautomatic}[1]{% For algorithm steps %%% \typeout{item automatic [#1]}% \algonumerate@makelabelautomatic{#1}% \global\let\algonumerate@global\global \gdef\global{\algonumerate@global\let\global\algonumerate@global \algonumerate@postprocess{% \protected@edef\@currentlabel{\csname p@\@listctr\endcsname {\makeoptalgocurrentlabel{#1}}}% \protected@edef\@bare@currentlabel{#1}% }% \global}% } \newcommand{\algonumerate@labelnumber}[1]{% For algorithm steps %%% \typeout{item numbered [#1]}% \algonumerate@makelabelnumber{#1}% \global\let\algonumerate@global\global \gdef\global{\algonumerate@global\let\global\algonumerate@global \algonumerate@postprocess{}% \global}% } %%% \newdimen\algonumerate@maxindent \newdimen\@algolongestlabel \AtBeginDocument{\ifdim\algonumerate@maxindent=\z@ \algonumerate@maxindent.2\textwidth\fi} \def\algonumerateinit#1{% \setcounter{algonumerate}{-1}% \this@algolabeltype=\@M \@algolongestlabel\z@ \def\@algonumfield{}% \let\ccorg@or\or\let\or\relax \algonumerate@items\z@ \@for\@tempa:=#1\do{% \advance\algonumerate@items\@ne \@temptokena\expandafter{\@tempa}% \toks@\expandafter{\@algonumfield}% \edef\@algonumfield{\the\@temptokena\or\the\toks@}% \setbox\@tempboxa\hbox{\algonumerate@makelabelautomatic{\the\toks@}}% \ifdim\wd\@tempboxa>\@algolongestlabel\relax \@algolongestlabel\wd\@tempboxa\fi }% \let\or\ccorg@or \toks@\expandafter{\@algonumfield}% \edef\@algonumfield##1{\noexpand\ifcase-##1\noexpand\or \the\toks@\noexpand\fi}% } \newenvironment{algonumerate}{% \if@inlabel~\fi\par \list{\labelalgonumerate}{% \usecounter{algonumerate}% \let\makelabel\algonumerate@label \parsep\z@% \topsep\z@% \itemsep\z@% \parskip\z@% %\leftmargin\z@ %\algo@labelsep\labelsep %\labelsep\z@ \leftmargin\labelsep \algo@labelsep\z@ \settowidth\steplabelwidth{\makealgolabel{99}}% \labelwidth\z@ \global\reinit@list@last\z@ }% \setcounter{algonumerate}{-\algonumerate@items}% \ifnum\algonumerate@items>\z@ \addtocounter{algonumerate}\m@ne \global\@requireditemscompletefalse \else \global\@requireditemscompletetrue \fi \setcounter{block@cnt}\z@ \let\step\algo@step \let\block\algo@block \let\endblock\endalgo@block \let\range\algo@range \let\endrange\endalgo@range \let\indention\algo@indention \let\endindention\endalgo@indention \let\body\algo@block \let\endbody\endalgo@block \let\meta\algo@meta \let\endmeta\endalgo@meta \def\skipremainingspecialitems{\setcounter{algonumerate}{0}}% }{% \endlist\vskip\topskip} \newdimen\blockindent \blockindent\parindent \newcounter{block@cnt} \newcommand{\nextblock}{% \stepcounter{block@cnt}\edef\currentblock{\arabic{block@cnt}}% } \newif\if@trivialrange \newcommand{\refsetrange}[2]{% {\shortlabeltrue \let\@tempa\relax \protected@edef\@tempa{% \csname r@\the\algorithmmasterkey-#1\endcsname}% %%\show\@tempa \let\@tempc\relax \protected@edef\@tempc{% \csname r@\the\algorithmmasterkey-#2\endcsname}% %%\show\@tempc \ifx\@tempa\@tempc\global\@trivialrangetrue \else\global\@trivialrangefalse\fi }% \if@trivialrange \protected@edef\@currentlabel{}% \else \protected@edef\@currentlabel{% \csname p@\@listctr\endcsname{% \protect\short\protect\ref{\the\algorithmmasterkey-#1}% --% \protect\short\protect\ref{\the\algorithmmasterkey-#2}% }}% \fi \protected@edef\@bare@currentlabel{% \protect\bare\protect\ref{\the\algorithmmasterkey-#1}% --% \protect\bare\protect\ref{\the\algorithmmasterkey-#2}% }% } \newenvironment{algo@range}{% \par \stepcounter{block@cnt}\edef\block@{\arabic{block@cnt}}% \refsetrange{bob\block@}{eob\block@}% \AtNextItem{\algolabel{bob\block@}}% }{% \algolabel{eob\block@}% \par \global\let\algo@block@currentlabel\@currentlabel \global\let\algo@block@bare@currentlabel\@bare@currentlabel \aftergroup\algo@endrange@aftergroup } \def\algo@endrange@aftergroup{% \let\@currentlabel\latest@item@currentlabel \let\@bare@currentlabel\latest@item@bare@currentlabel } \newenvironment{algo@indention}{% \par \if@requireditemscomplete \advance\leftmargin\blockindent \advance\labelsep\blockindent \advance\@totalleftmargin\blockindent \advance\linewidth-\blockindent \def\algo@indention@undo{% \advance\leftmargin-\blockindent \advance\labelsep-\blockindent \advance\@totalleftmargin-\blockindent \advance\linewidth\blockindent } \list@parshape \else \let\algo@indention@undo\relax \fi }{% \par \algo@indention@undo \list@parshape \aftergroup\list@parshape \global\let\algo@block@currentlabel\@currentlabel \global\let\algo@block@bare@currentlabel\@bare@currentlabel \aftergroup\algo@endrange@aftergroup } \newif\ifindented@block \newenvironment{algo@block}{% \indented@blockfalse \if@requireditemscomplete\indented@blocktrue\fi \ifindented@block\algo@indention \else \sbox\@tempboxa{\makelabel{}}% \fi \algo@range}{% \endalgo@range \ifindented@block\endalgo@indention\fi } \newdimen\meta@indent \newenvironment{algo@meta}{% \@newlistfalse \vskip\topskip \par %%\meta@indent\leftmargin %%\advance\meta@indent\algo@labelsep %%\advance\meta@indent\steplabelwidth \meta@indent\@totalleftmargin \advance\labelsep-\meta@indent \advance\@totalleftmargin-\meta@indent \advance\linewidth\meta@indent \advance\leftmargin-\meta@indent \list@parshape }{% \vskip\topskip \par \advance\labelsep\meta@indent \advance\@totalleftmargin\meta@indent \advance\linewidth-\meta@indent \advance\leftmargin\meta@indent \aftergroup\list@parshape } \newcommand{\algo@step}[2][]{% \expandafter\ifnum\value{algonumerate}<\m@ne \PackageError{ccalgo}{Missing \protect\item}{}% \fi \cc@ifempty{#1}{\item}{\item[#1]}% \def\@tempa{#2}\ifx\@tempa\@empty\else\algolabel{#2}\fi% } \newtoks\algotitle \theorembodyfont{}% \theoremstyle{ccalgonn} \newtheorem{named@lg@r@thm*}{\the\algotitle} \defprefix{named@lg@r@thm*}#1{\the\algotitle} \theoremstyle{ccalgo} \newtheorem{named@lg@r@thm}{\the\algotitle} \defprefix{named@lg@r@thm}#1{\the\algotitle~#1} \ifx\c@namedth@@r@m\@undefined\else \let\c@named@lg@r@thm\c@namedth@@r@m \let\thenamed@lg@r@thm\thenamedth@@r@m \fi \babel\def\babelInput{Input}[german=Eingabe,french=Entr\'ee] \babel\def\babelOutput{Output}[german=Ausgabe,french=Sortie] \babel\def\babelstep{step}[german=Schritt,french=pas]%% ??? pas? \babel\def\babelStep{Step}[german=Schritt,french=Pas]%% ??? pas? \newtoks\algorithmmasterkey \newenvironment{namedalgorithm}[1]{% \pagebreak[3]% \def\algo@theorem{named@lg@r@thm}% \algotitle{#1}% \n@medalgorithm} {\endalgonumerate\csname end\algo@theorem\endcsname} \newenvironment{namedalgorithm*}[1]{% \def\algo@theorem{named@lg@r@thm*}% \algotitle{#1}% \n@medalgorithm} {\endalgonumerate\csname end\algo@theorem\endcsname} \newcommand{\n@medalgorithm}[1][\babelInput,\protect\babelOutput]{% \algonumerateinit{#1}% \n@m@d@lgorithmgetlongestlabel} \newcommand{\n@m@d@lgorithmgetlongestlabel}[1][]{% \def\@tempa{#1}% \ifx\@tempa\@empty\else \setbox\@tempboxa\hbox{\algonumerate@makelabel{#1}}% \ifdim\wd\@tempboxa>\@algolongestlabel\relax \@algolongestlabel\wd\@tempboxa\fi \fi \n@m@d@lgorithmgetmasterkey } \newcommand{\n@m@d@lgorithmgetmasterkey}[1]{% \algorithmmasterkey{#1}% \edef\@tempa{\the\algorithmmasterkey}\ifx\@tempa\@empty \PackageError{ccalgo}{Empty key for algorithm like environment}{}\fi% \n@m@d@lgorithm } \newcommand{\n@m@d@lgorithm}[1][]{% \def\@tempa{#1}% \ifx\@tempa\@empty\csname\algo@theorem\endcsname \else\csname\algo@theorem\endcsname[#1]\fi% \label{\the\algorithmmasterkey}% \algo@keywords \defprefix{algonumerate}{% \Iflabelchanged{\algo@theorem}{\uselabel{\algo@theorem} % \ifnum\c@algonumerate>\z@ \babelstep~\fi}}% \algonumerate }% \def\algolabel#1{\label{\the\algorithmmasterkey-#1}}% \newcommand{\stepref}[2]{\babelStep~\short\ref{#1-#2} in \whole\ref{#1}} \newcommand{\newalgorithm}[2]{% \def\newalgo@name{#1}% \def\newalgo@title{#2}% \n@walgorithm} \newcommand{\n@walgorithm}[1][\babelInput,\protect\babelOutput]{% \protected@edef\@tempa{% \noexpand\newenvironment{\newalgo@name}% {\noexpand\namedalgorithm{\newalgo@title}[\noexpand#1]}% {\noexpand\endnamedalgorithm}% \noexpand\newenvironment{\newalgo@name*}% {\noexpand\csname namedalgorithm*\endcsname {\newalgo@title}[\noexpand#1]}% {\noexpand\csname endnamedalgorithm*\endcsname}% }\@tempa } \babel\def\algorithmname{Algorithm}[% german=Algorithmus,french=Algorithme] \newalgorithm{algorithm}{\protect\algorithmname} \def\algo@keywords{% \def\keyword##1{\textsf{##1} \ignorespaces}% \babel\def\FOR{\keyword{For}}[german=\keyword{F{\"{u}}r}]% \babel\def\DO{\keyword{do}}[german=\keyword{erledige}]% \babel\def\endFOR{}[]% \babel\def\WHILE{\keyword{While}}[german=\keyword{Solange}]% \babel\def\endWHILE{}[]% \babel\def\REPEAT{\keyword{Repeat}}[german=\keyword{Wiederhole}]% \babel\def\UNTIL{\keyword{Until}}[german=\keyword{Bis}]% \babel\def\IF{\keyword{If}}[german=\keyword{Falls}]% \babel\def\THEN{\keyword{then}}[german=\keyword{dann}]% \babel\def\ELIF{\keyword{Else if}}[german=\keyword{Sonst wenn}]% \babel\def\ELSE{\keyword{Else}}[german=\keyword{Sonst}]% \babel\def\endIF{}[]% \babel\def\CALL{\keyword{Call}}[german=\keyword{Rufe}]% \babel\def\RETURN{\keyword{Return}}[german=\keyword{Antworte}]% \def\@tempa{nohyphenation}\ifx\languagename\@tempa\else% \expandafter\selectlanguage\expandafter{\languagename}\fi% \def\COMMENT##1{$\{$ ##1 $\}$}% } \newcommand{\optitem}[1]{% \cc@ifempty{#1}{\if@inlabel\par\else\item\fi}{\item[#1]}% } \newcommand{\algoprettify}[3]{% \setbox2\hbox{#1}% \setbox4\hbox{#2}% \setbox6\hbox{#3}% \setbox0\hbox{\unhcopy2\unhcopy4{ }\unhcopy6}% \ifdim\wd0<\linewidth \unhbox0 \else \dimen0=\linewidth \advance\dimen0 by -\wd2 \unhbox2\parbox[t]{\dimen0}{\unhbox4\strut}\par\unhbox6 \fi } \newenvironment{ifblock}[2][] {% \optitem{#1}% \nextblock \algolabel{if\currentblock}% \algoprettify{\IF}{#2}{\THEN} \indention \refsetrange{if\currentblock}{endif\currentblock}% } {% \algolabel{endif\currentblock}% \endindention} \newenvironment{elifblock}[2][]{% \optitem{#1}% \nextblock \algoprettify{\ELIF}{#2}{\THEN} \algolabel{elif\currentblock}% \indention \refsetrange{elif\currentblock}{endelif\currentblock}% }{% \algolabel{endelif\currentblock}% \endindention} \newenvironment{elseblock}[1][]{% \optitem{#1}% \nextblock \ELSE% \algolabel{else\currentblock}% \indention \refsetrange{else\currentblock}{endelse\currentblock}% }{% \algolabel{endelse\currentblock}% \endindention} \newenvironment{forblock}[2][]{% \optitem{#1}% \nextblock \algoprettify{\FOR}{#2}{% \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}% \algolabel{for\currentblock}% \block\algolabel{body\currentblock}% \refsetrange{for\currentblock}{endfor\currentblock}% }{% \algolabel{endfor\currentblock}% \endblock} \newenvironment{whileblock}[2][]{% \optitem{#1}% \nextblock \algoprettify{\WHILE}{#2}{% \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}% \algolabel{while\currentblock}% \block \algolabel{body\currentblock}% \refsetrange{while\currentblock}{endwhile\currentblock}% }{% \algolabel{endwhile\currentblock}% \endblock} \newenvironment{untilblock}[2][]{% \optitem{#1}% \nextblock \algoprettify{\UNTIL}{#2}{% \DO \short\ref{\the\algorithmmasterkey-body\currentblock}}% \algolabel{until\currentblock}% \block \algolabel{body\currentblock}% \refsetrange{until\currentblock}{enduntil\currentblock}% }{% \algolabel{enduntil\currentblock}% \endblock} \newenvironment{blockuntil}[2][]{% \optitem{#1}% \nextblock \def\repeat@cond{#2}% \REPEAT \short\ref{\the\algorithmmasterkey-body\currentblock}% \algolabel{repeat\currentblock}% \block \algolabel{body\currentblock}% \refsetrange{repeat\currentblock}{endrepeat\currentblock}% }{% \endblock \item \algolabel{endrepeat\currentblock}% \algoprettify{\UNTIL}{\repeat@cond}{}} \newenvironment{blockwhile}[2][]{% \optitem{#1}% \nextblock \def\repeat@cond{#2}% \REPEAT \short\ref{\the\algorithmmasterkey-body\currentblock}% \algolabel{repeat\currentblock}% \block \algolabel{body\currentblock}% \refsetrange{repeat\currentblock}{endrepeat\currentblock}% }{% \endblock \item \algolabel{endrepeat\currentblock}% \algoprettify{\WHILE}{\repeat@cond}{}} \endinput %% %% End of file `ccalgo.sty'. \end{filecontents*} \begin{filecontents*}{ccaux.sty} %% %% This is file `ccaux.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccaux,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{ccaux}[2008/03/18 v2.08 computational complexity, auxiliaries. Michael Nuesken, Bonn.] \newif\if@longarticle \@longarticletrue \newif\if@cclayout \@cclayouttrue \newif\if@Tone \@Tonetrue \newif\if@latin \@latintrue \newif\if@babel \@babelfalse \newif\if@ams \@amstrue \newif\if@autotitle \@autotitletrue \newif\if@ccsectioning \@ccsectioningtrue \newif\if@cccite \@cccitefalse \newif\if@natbib \@natbibtrue \newif\if@manualbibliography \@manualbibliographyfalse \newif\if@twocolumnbibliography \@twocolumnbibliographyfalse \newif\if@cctheorems \@cctheoremstrue \newif\if@standardtheorems \@standardtheoremstrue \newif\if@ccnosepeqncnt \@ccnosepeqncnttrue \newif\if@ccalgo \@ccalgotrue \newif\if@theoremitemprefixes \@theoremitemprefixestrue \newif\if@ccpublish \@ccpublishfalse \newif\if@cctextarea \@cctextareatrue \newcount\@marginmode \@marginmode\tw@ \def\numberallwithin#1{\gdef\cc@numberingtoplevel{#1}} \def\@adjustnumbering{% \if@longarticle \numberwithin{equation}\cc@numberingtoplevel \numberwithin{figure}\cc@numberingtoplevel \numberwithin{table}\cc@numberingtoplevel \if@cctheorems\if@standardtheorems\else \numberwithin{answer}\cc@numberingtoplevel \numberwithin{assumption}\cc@numberingtoplevel \numberwithin{claim}\cc@numberingtoplevel \numberwithin{conjecture}\cc@numberingtoplevel \numberwithin{convention}\cc@numberingtoplevel \numberwithin{corollary}\cc@numberingtoplevel \numberwithin{counterexample}\cc@numberingtoplevel \numberwithin{definition}\cc@numberingtoplevel \numberwithin{exercise}\cc@numberingtoplevel \numberwithin{fact}\cc@numberingtoplevel \numberwithin{hypothesis}\cc@numberingtoplevel \numberwithin{lemma}\cc@numberingtoplevel \numberwithin{notation}\cc@numberingtoplevel \numberwithin{note}\cc@numberingtoplevel \numberwithin{observation}\cc@numberingtoplevel \numberwithin{open}\cc@numberingtoplevel \numberwithin{openquestion}\cc@numberingtoplevel \numberwithin{problem}\cc@numberingtoplevel \numberwithin{proposition}\cc@numberingtoplevel \numberwithin{question}\cc@numberingtoplevel \numberwithin{remark}\cc@numberingtoplevel \numberwithin{result}\cc@numberingtoplevel \numberwithin{theorem}\cc@numberingtoplevel \numberwithin{thesis}\cc@numberingtoplevel \numberwithin{warning}\cc@numberingtoplevel \numberwithin{exampleexample}\cc@numberingtoplevel \fi\fi \fi} \numberallwithin{section}% redo this in the preamble, if necessary \newcommand{\newwarning}[2]{% \expandafter\gdef\csname cc@warn@#1\endcsname{#2}% \expandafter\def\csname cc@warncount@#1\endcsname{0}} \newcommand{\ccClassWarning}[1]{% \@ifundefined{cc@warn@#1}{% \ClassWarning{cc}{Undefined warning.\MessageBreak This should never occur. Please inform nuesken@bit.uni-bonn.de .}% }{}% \expandafter\ifcase\csname cc@warncount@#1\endcsname\relax \ClassWarning{cc}{\csname cc@warn@#1\endcsname.\MessageBreak Possible further occurencies of this warning will be\MessageBreak collected until the end of the document.\MessageBreak This one was}% \or \AtEndDocument{% \ClassWarningNoLine{cc}{Repeated warning collected \csname cc@warncount@#1\endcsname\space times:\MessageBreak \csname cc@warn@#1\endcsname}% }% \else \fi \expandafter\count@=0\csname cc@warncount@#1\endcsname\relax \advance\count@\@ne \expandafter\xdef\csname cc@warncount@#1\endcsname{\the\count@}% } \providecommand{\addto}[2]{% \expandafter\ccaddto\expandafter{\csname cc@\string#1\endcsname}{#2}{#1}} \newcommand{\ccaddto}[3]{% \ifx#1\@undefined \gdef#1{#2}% \AtBeginDocument{\expandafter\ccaddtonow\expandafter{#1}#3}% \else \ifx#1\relax \gdef#1{#2}% \AtBeginDocument{\expandafter\ccaddtonow\expandafter{#1}#3}% \else {\toks@\expandafter{#1#2}% \xdef#1{\the\toks@}}% \fi \fi } \newcommand{\ccaddtoINDOC}[3]{% \ifx#1\@undefined \gdef#1{#2}% \else \ifx#1\relax \gdef#1{#2}% \else {\toks@\expandafter{#1#2}% \xdef#1{\the\toks@}}% \fi \fi } \AtBeginDocument{\global\let\ccaddto\ccaddtoINDOC} \newcommand{\ccaddtonow}[2]{% \ifx#2\@undefined \gdef#2{#1}% \else \ifx#2\relax \gdef#2{#1}% \else {\toks@\expandafter{#2#1}% \xdef#2{\the\toks@}}% \fi \fi } \long\def\cc@ifempty#1{\cc@xifempty#1@@..\@nil} \long\def\cc@xifempty#1#2@#3#4#5\@nil{% \ifx#3#4\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} \long\def\cc@ifnotempty#1{\cc@ifempty{#1}{}} %%% \def\oldbabel\def#1#2#3#4#5#6{\def#1{#2}% %%% \cc@ifnotempty{#2}{\addto\captionsenglish{\def#1{#2}}}% %%% \cc@ifnotempty{#3}{% %%% \addto\captionsgerman{\def#1{#3}}% %%% \addto\captionsngerman{\def#1{#3}}% %%% }% %%% \cc@ifnotempty{#4}{\addto\captionsfrench{\def#1{#4}}}% %%% \cc@ifnotempty{#5}{\addto\captionsitalian{\def#1{#5}}}% %%% \cc@ifnotempty{#6}{\addto\captionsspanish{\def#1{#6}}}% %%% } \def\babel\def#1#2{% \@ifnextchar[{\n@wbabel{#1}{#2}}{\n@wbabel{#1}{#2}[]}} \def\n@wbabel#1#2[#3]{% \def#1{#2}% \cc@ifnotempty{#2}{\addto\captionsenglish{\def#1{#2}}}% \babeladdtranslations#1{#3}% } \def\b@beladdlang#1=#2=#3\@@@#4{% \cc@ifnotempty{#2}{% %%% \@ifundefined{captions#1}{% %%% \ClassWarning{cc}{Language `#1' undefined, ignoring %%% translation \string#4=#2.}% %%% }{% \expandafter\addto\csname captions#1\endcsname{\def#4{#2}}% %%% }% }% } \def\babeladdtranslations#1#2{% \@for\@tempa:=#2\do{\expandafter\b@beladdlang\@tempa==\@@@#1}% } \def\condbreak#1{% \vskip 0pt plus #1% \pagebreak[3]% \vskip 0pt plus -#1% \relax} \let\ccorg@enumerate\enumerate \def\enumerate{\@ifstar{\count251\c@enumi \count252\c@enumii \count253\c@enumiii \count254\c@enumiv \ccorg@enumerate \c@enumi\count251 \c@enumii\count252 \c@enumiii\count253 \c@enumiv\count254}% {\ccorg@enumerate}} \endinput %% %% End of file `ccaux.sty'. \end{filecontents*} \begin{filecontents*}{cccite.sty} %% %% This is file `cccite.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cccite,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{cccite}[2000/02/29 v2.05 cc cite helper package] \PackageWarningNoLine{cccite}{% The package cccite is obsolete.\MessageBreak Better use cc2cite. } \RequirePackage{ccdbs} \DefaultBibliographyStyle{cc} \let\ccorg@cite\cite \let\ccorg@@cite\@cite \def\@citeseppen{-5} \def\@cite#1#2{{#1\if@tempswa , #2\fi}} \def\cite#1{\def\citeauthoryear##1##2{##1\ (##2)}\@citex{#1}} \def\citeauthor#1{\def\citeauthoryear##1##2{##1}\@citex{#1}} \def\citeyear#1{\def\citeauthoryear##1##2{##2}\@citex{#1}} \def\shortcite#1{\def\citeauthoryear##1##2{##1\ ##2}\@citex{#1}} \def\parencite#1{\def\citeauthoryear##1##2{(##1\ ##2)}\@citex{#1}} \def\citemul#1{\@mcite #1\@\@} \def\@mcite#1,#2\@\@{\citeauthor{#1}\hskip3pt(\citeyear{#1,#2})} \def\@citex#1{\@tempswafalse% \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi \def\@citea{}\@cite{\@for\@citeb:=#1\do {\@citea\def\@citea{,\penalty\@citeseppen\ }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{}} \let\ccorg@cite\cite \newcommand{\citet}{\let\which@cite\ccorg@cite\cc@citea} \let\cite\citet \newcommand{\citep}{\let\which@cite\parencite\cc@citea} \newcommand{\citealt}{\let\which@cite\shortcite\cc@citea} \newcommand{\citealp}{\let\which@cite\shortcite\cc@citea} \newcommand{\citetext}[1]{(#1)} \newcommand{\@citeyearpar}[1]{\citetext{\citeyear{#1}}} \newcommand{\citeyearpar}{\let\which@cite\@citeyearpar\cc@citea} \let\ccorg@citeauthor\citeauthor \renewcommand{\citeauthor}{\let\which@cite\ccorg@citeauthor\cc@citea} \newcommand{\citefullauthor}{\citeauthor*} \newcommand{\Citet}{\let\which@cite\cite\cc@citea} \newcommand{\Citep}{\let\which@cite\parencite\cc@citea} \newcommand{\Citealt}{\let\which@cite\shortcite\cc@citea} \newcommand{\Citealp}{\let\which@cite\shortcite\cc@citea} \newwarning{poormancitea}{% This is only a poor (wo)man's version of this command.\MessageBreak Please use the package natbib.sty for full features.\MessageBreak Drop the document class option cccite } \newcommand{\cc@citea}{% \ccClassWarning{poormancitea}% \@tempswafalse\@ifstar{\cc@cite@st}{\cc@citeb}} \def\cc@cite@st{\@tempswatrue\cc@citeb} \newcommand{\cc@citeb}[1][]{\def\cc@cite@a{#1}\cc@citec} \newcommand{\cc@citec}[1][]{\def\cc@cite@b{#1}\which@cite} \def\@biblabel#1{% \def\citename##1{##1}% for authordate bib styles } \newcounter{NAT@ctr} \def\NAT@noname{{}} \let\ccorg@lbibitem\@lbibitem \def\@lbibitem[#1]#2{% \let\citeauthoryear\bib@citeauthoryear \if@filesw\@tempswatrue\else\@tempswafalse\fi\@fileswfalse \ccorg@lbibitem[#1]{#2}% \if@tempswa\@fileswtrue\fi \NAT@ifcmd#1(@)(@)\@nil{#2}\ignorespaces} \newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd} \newcommand\NAT@ifxcmd{% \ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi} \def\NAT@bare#1(#2)#3(@)#4\@nil#5{% \if @#2 \expandafter\NAT@apalk#1, , \@nil{#5}\else \stepcounter{NAT@ctr}% \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{#3}{#5} \fi } \newcommand\NAT@apalk{} \def\NAT@apalk#1, #2, #3\@nil#4{\if\relax#2\relax \global\NAT@stdbsttrue \cc@wrout{#1}{}{}{}{#4}\else \stepcounter{NAT@ctr}% \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\fi} \newcommand\citeauthoryear{} \def\bib@citeauthoryear#1#2#3(@)(@)\@nil#4{% \stepcounter{NAT@ctr}\if\relax#3\relax \cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#4}\else \cc@wrout{\arabic {NAT@ctr}}{#3}{#2}{#1}{#4}\fi} \newcommand\citestarts{\NAT@open} \newcommand\citeends{\NAT@close} \newcommand\betweenauthors{and} \newcommand\astroncite{} \def\astroncite#1#2(@)(@)\@nil#3{\stepcounter{NAT@ctr}\cc@wrout{\arabic {NAT@ctr}}{#2}{#1}{}{#3}} \newcommand\citename{} \def\citename#1#2(@)(@)\@nil#3{\expandafter\NAT@apalk#1#2, \@nil{#3}} \newcommand\harvarditem[4][]% {\if\relax#1\relax\bibitem[#2(#3)]{#4}\else \bibitem[#1(#3)#2]{#4}\fi } \newcommand\harvardleft{\NAT@open} \newcommand\harvardright{\NAT@close} \newcommand\harvardyearleft{\NAT@open} \newcommand\harvardyearright{\NAT@close} \AtBeginDocument{\providecommand{\harvardand}{and}} \newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}} \newcommand\cc@wrout[5]{% \if@filesw {\let\protect\noexpand\let~\relax \immediate \write\@auxout{\string\bibcite{#5}% {\protect\citeauthoryear{#3}{#2}}}}\fi \ignorespaces} \endinput %% %% End of file `cccite.sty'. \end{filecontents*} \begin{filecontents*}{ccdbs.sty} %% %% This is file `ccdbs.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccdbs,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{ccdbs}[2000/02/20 v2.05 bibliography helper package] \let\ccorg@bibliographystyle\bibliographystyle \newif\if@bibstylemissing \@bibstylemissingtrue \def\bibliographystyle{\@bibstylemissingfalse \gdef\bibliographystyle##1{% \PackageWarning{ccdbs}{\protect\bibliographystyle\space can be used only before \protect\bibliography!}}% \ccorg@bibliographystyle} \let\ccorg@bibliography\bibliography \def\bibliography{% \if@bibstylemissing \bibliographystyle{\bibstyle@default}% \fi \ccorg@bibliography} \newcommand{\DefaultBibliographyStyle}[1]{% \def\bibstyle@default{#1}} \DefaultBibliographyStyle{plain} \endinput %% %% End of file `ccdbs.sty'. \end{filecontents*} \begin{filecontents*}{cclayout.sty} %% %% This is file `cclayout.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `cclayout,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \if@ccpublish \expandafter\xdef\csname ver@fullpage.sty\endcsname{9999}% \typeout{The package fullpage is forbidden when publishing in the journal computation complexity. It will be ignored.} \fi \let\@contact\relax \newcommand{\contact}[1]{\gdef\@contact{#1}} \AtBeginDocument{\if@ccpublish \@ifundefined{@contact}{% \ClassWarningNoLine{cc}{Who is the contact author?\MessageBreak Use \protect\contact\space in the preamble!}% }{}% \fi} \let\@received\relax \newcommand{\received}[1]{\gdef\@received{#1}} \AtBeginDocument{\if@ccpublish \@ifundefined{@received}{% \ClassWarningNoLine{cc}{Missing received date.\MessageBreak Use \protect\received\space in the preamble.}{}% }{}% \fi} \let\@titlehead\relax \newcommand{\titlehead}[1]{\gdef\@titlehead{#1}} \let\@authorhead\@undefined \newcommand{\authorhead}[1]{\gdef\@authorhead{#1}} \let\@authorlist\@undefined \newcommand{\authorlist}[1]{\gdef\@authorlist{#1}} \newbox\@abstract \let\abstract\@undefined\let\endabstract\@undefined \babel\def\ccabstractname{Abstract}[% german=Zusammenfassung,french=R\'esum\'e] \newenvironment{abstract} {\global\setbox\@abstract\@abstr{\ccabstractname}} {\end@abstr} \newtoks\@abstract@toks \newcommand{\Abstract}{\global\@abstract@toks} \newbox\@keywords \babel\def\cckeywordsname{Keywords}[% german=Stichworte,french=Mot-cl\'e] \newenvironment{keywords} {\global\setbox\@keywords\@abstr{\cckeywordsname}} {\end@abstr} \newbox\@subject \babel\def\ccsubjectclassificationname{Subject classification}[% german=Klassifizierung,french=Classification de suj\`et] \newenvironment{subject} {\global\setbox\@subject\@abstr{\ccsubjectclassificationname}} {\end@abstr} \newdimen\@abstrwidth \newenvironment{@abstr}[1]{% \vbox\bgroup \hsize\textwidth \@parboxrestore \leftmargin.5\textwidth \advance\leftmargin-.5\@abstrwidth \rightmargin\leftmargin \@trivlist\@newlistfalse\global\@inlabeltrue \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin \advance\@totalleftmargin \leftmargin \parshape \@ne \@totalleftmargin \linewidth \small \def\@listi{\leftmargin\leftmargini \topsep 2\p@ \@plus2\p@ \@minus1\p@ \parsep 1\p@ \itemsep \parsep}% %%% \let\origcclist\list %%% \def\list{\ifnum\@listdepth>0\relax\@toodeep\fi\origcclist}% \let\@listii\@toodeep \let\@listiii\@toodeep \let\@listiv\@toodeep \let\@listv\@toodeep \let\@listvi\@toodeep \textbf{#1. }\ignorespaces} {% %\strut \par %\vskip\z@ \egroup \ignorespacesafterend} \newif\if@abstractoptional \if@ccpublish\@abstractoptionalfalse\else\@abstractoptionaltrue\fi \newcommand{\noabstract}{\ClassWarning{cc}{You are using a non documented feature}\@abstractoptionaltrue} \newif\if@keywordsoptional \if@ccpublish\@keywordsoptionalfalse\else\@keywordsoptionaltrue\fi \newcommand{\nokeywords}{\ClassWarning{cc}{You are using a non documented feature}\@keywordsoptionaltrue} \newif\if@subjectoptional \if@ccpublish\@subjectoptionalfalse\else\@subjectoptionaltrue\fi \newcommand{\nosubject}{\ClassWarning{cc}{You are using a non documented feature}\@subjectoptionaltrue} \def\@subtitle{} \newcommand{\subtitle}[1]{\def\@subtitle{#1}} \def\@version{} \newcommand{\version}[1]{\def\@version{#1}} \def\@cctxt{} \newif\if@cchead \newcommand{\ccpublish}[4]{% \global\@ccpublishtrue \global\@abstractoptionalfalse% Abstract required \global\@keywordsoptionalfalse% Keywords required \global\@subjectoptionalfalse% Subject class. required \global\@ccheadtrue \gdef\@ccyear{#1}% \gdef\@ccvolume{#2}% \gdef\@ccnumber{#3}% \gdef\@ccfirst{#4}% \gdef\@cctxt{cc \textbf{#2} (#1)}% \global\@autotitletrue \AtBeginDocument{\addtocounter{section}{-1}\refstepcounter{section}}% \AtEndDocument{\label{ccenddocument}}% } \newcommand{\noccpublish}[1]{% \global\@ccpublishfalse \global\@abstractoptionaltrue% Abstract required \global\@keywordsoptionaltrue% Keywords required \global\@subjectoptionaltrue% Subject class. required \global\@ccheadfalse \gdef\@cctxt{#1}% %%\global\@twosidefalse } \def\printed@issn{1016-3328}% \def\electronic@issn{1420-8954}% \newcommand{\printed}{\let\issn\printed@issn} \newcommand{\electronic}{\let\issn\electronic@issn} \printed \@onlypreamble\ccpublish \@onlypreamble\electronic \@onlypreamble\printed \def\extractnamesfr@m@author{% \@ifundefined{@authorlist}{% \let\and\ignorespaces \let\latest@name\relax \count@\z@ \expandafter\extract@names\@author\and\and\@nil}{% \@authorlist } } \def\extract@names#1\and#2\@nil{% \cc@ifempty{#1}{% \unskip\if\and\relax\else \ifnum\count@>\tw@\authorlastsepmany\else\authorlastsep\fi \fi\latest@name \let\next\gobble@nil}% {% \unskip\and\latest@name \ifx\latest@name\relax\else\let\and\authorsep\fi \extract@name#1\\\@nil \let\next\extract@names}% \next#2\@nil} \def\gobble@nil#1\@nil{} \def\extract@name#1\\#2\@nil{\advance\count@\@ne\def\latest@name{#1}} \babel\def\ccAND{and}[german=und,french=et] \def\authorsep{,\penalty-5\ } \def\authorlastsep{\penalty-5\ \ccAND{} } \def\authorlastsepmany{,\penalty-5\ \ccAND{} } \newtoks\latest@lastname \newtoks\@firstname \let\@firstlastname\@temptokena \def\extractauthorheadfr@m@author{% {% \let\and\@empty \latest@lastname{}% \toks@{}% \count@\m@ne \expandafter\extract@lastnames\@author\and\and\@nil \ifnum\count@<2 \xdef\@authorhead{\the\@firstname} \else\ifnum\count@<4 \xdef\@authorhead{\the\toks@}% \else \xdef\@authorhead{\the\@firstlastname\noexpand\textit{ et al.}}% \fi\fi }% \setbox0\hbox{\small\let\thanks\@gobble\@authorhead}% \ifdim\wd0>.7\textwidth \ClassWarningNoLine{cc}{Authorhead too long. Use \protect\authorhead\space to specify\MessageBreak a shortened author list for the headings!}% \fi } \def\extract@lastnames#1\and#2\@nil{% \advance\count@\@ne \cc@ifempty{#1}{% \expandafter\cc@ifempty\expandafter{\the\toks@}{% \edef\@tempa{\the\latest@lastname}% }{% \edef\@tempa{\the\toks@\authorheadlastsep\the\latest@lastname}% }% \toks@\expandafter{\@tempa}% \let\next\gobble@nil }{% \expandafter\cc@ifempty\expandafter{\the\toks@}{% \edef\@tempa{\the\latest@lastname}% }{% \edef\@tempa{\the\toks@\authorheadsep\the\latest@lastname}% }% \toks@\expandafter{\@tempa}% \extract@lastname#1\\\@nil \let\next\extract@lastnames}% \ifnum\count@=\@ne\@firstlastname\expandafter{\the\toks@}\fi \next#2\@nil} \def\gobble@nil#1\@nil{} \def\extract@lastname#1\\#2\@nil{% \ifnum\count@=\z@\@firstname{#1}\fi \extract@lastname@#1 \@nil} \def\extract@lastname@#1 #2\@nil{% \cc@ifempty{#2}{\latest@lastname{#1}}{\extract@lastname@#2\@nil}} \def\authorheadsep{, } \def\authorheadlastsep{ \& } \def\authorheadlastsepmany{ \& } \let\@author\relax \AtBeginDocument{% \@ifundefined{@author}{\if@ccpublish \ClassError{cc}{No \protect\author\space given}{Define an author list in the preamble by \protect\author{...}}% \else \ClassWarningNoLine{cc}{No \protect\author\space given}% \fi}{} \@ifundefined{@authorhead}{\extractauthorheadfr@m@author}{}} \let\@title\relax \AtBeginDocument{% \@ifundefined{@title}{\if@ccpublish \ClassError{cc}{No \protect\title\space given}{Define a title in the preamble by \protect\title{...}}% \else \ClassWarningNoLine{cc}{No \protect\title\space given}% \fi}{} \setbox0\hbox{\small\let\thanks\@gobble \@ifundefined{@titlehead}{\let\\\ \@title}{\@titlehead}}% \ifdim\wd0>.7\textwidth \ClassError{cc}{Title too long for running head.\MessageBreak Use \protect\titlehead\space to specify\MessageBreak a shortened title for the headings!}{}% \fi} \def\extractaffilsfr@om@author{% \parindent\z@ \init@affils \begin{tabular}{@{}ll@{}}% \expandafter\extract@affils\@author\and\and\@nil \end{tabular} \par } \def\init@affils{% \let\and\relax \@oddaffiltrue } \def\extract@affils#1\and#2\@nil{% \cc@ifempty{#1}{\let\next\gobble@nil}{% \extract@affil#1\\\@nil \let\next\extract@affils}% \next#2\@nil} \def\extract@affil#1\\#2\@nil{% \def\currentaddress{\otheraddress Current address of \textsc{\ignorespaces#1}:\\}% \begin{@ffiliation} \textsc{\ignorespaces#1}\\#2 \end{@ffiliation} \affilsep} \newcommand{\otheraddress}{\end{@ffiliation}\affilsep \begin{@ffiliation}} \def\affilsep{% \if@oddaffil\odd@sep\@oddaffilfalse \else\even@sep\@oddaffiltrue \fi } \newif\if@oddaffil \def\odd@sep{&}% \def\even@sep{\end{tabular}\par\begin{tabular}{@{}ll@{}}}% \newenvironment{@ffiliation} {% \minipage[t]{.48\hsize} \dimen@\hsize \advance\dimen@ -1.5em \everypar{\parshape 2 \z@ \hsize 1.5em \dimen@}% \def\\{\unskip\par}% } {\strut\par\medskip\endminipage} \if@cctextarea \textwidth=141mm \@abstrwidth=120mm \textheight=200mm \topmargin=0mm \oddsidemargin=12mm \evensidemargin=12mm \marginparwidth=25mm \headheight=1.25\headheight \ifnum\@marginmode<\z@\@marginmode\z@\fi \else \@abstrwidth0.85\textwidth \fi \typeout{Now adjusting margins.} \ifcase\@marginmode \AtEndOfClass{% \oddsidemargin\paperwidth \advance\oddsidemargin-2in \advance\oddsidemargin-\textwidth \advance\oddsidemargin-\evensidemargin} \or \AtEndOfClass{% \oddsidemargin\paperwidth \advance\oddsidemargin-2in \advance\oddsidemargin-\textwidth \evensidemargin=5mm \advance\oddsidemargin-\evensidemargin} \or \AtEndOfClass{% \oddsidemargin\paperwidth \advance\oddsidemargin-2in \advance\oddsidemargin-\textwidth \oddsidemargin.5\oddsidemargin \evensidemargin\oddsidemargin} \fi \AtEndOfClass{% \marginparwidth1in \advance\marginparwidth-5mm \advance\marginparwidth-2\marginparsep \ifdim\evensidemargin<\oddsidemargin \advance\marginparwidth\evensidemargin \else \advance\marginparwidth\oddsidemargin \fi } \newskip\headerindent \headerindent=10mm \newdimen\headrulewidth \headrulewidth.4pt \def\ps@cc{\let\@mkboth\markboth \def\@oddhead{\vbox{\hbox to\textwidth{\reset@font\strut {\small\@cctxt}% \hfil {\small \@ifundefined{@titlehead}{% \let\\\ % \@title }{% \@titlehead }}% \hbox to\headerindent{\hfil\thepage}% }% \if@ccpublish\else \kern2.6\p@ \hrule\@height\headrulewidth\kern-\headrulewidth \kern-2.6\p@ \fi \vskip\z@ }% }% \def\@oddfoot{} \def\@evenhead{\vbox{\hbox to\textwidth{\reset@font\strut \hbox to\headerindent{\thepage\hfil}% {\small\@authorhead}% \hfil {\small\@cctxt}% }% \if@ccpublish\else \kern2.6\p@ \hrule\@height\headrulewidth\kern-\headrulewidth \kern-2.6\p@ \fi \vskip\z@ }% }% \let\@evenfoot\@oddfoot } \AtEndOfClass{\pagestyle{cc}} \AtEndOfClass{% \AtBeginDocument{\@onlypreamble{\author{\if@autotitle\maketitle\fi}}} %\AtBeginDocument{\if@autotitle\maketitle\fi} \AtEndDocument{\if@autotitle\makeendtitle\fi} } \def\fourdigits#1{\ifnum#1<10\relax000#1\else \ifnum#1<100\relax00#1\else \ifnum#1<1000\relax0#1\else #1\fi\fi\fi} \def\twodigits#1{\ifnum#1<10\relax0#1\else \ifnum#1<100\relax#1\else #1\fi\fi} \def\vertrulea{\rule[-7.583pt]{0pt}{7.583pt}} \def\vertruleb{\rule{2.25pt}{10.2pt}} \newtoks\cite@hook \renewcommand{\maketitle}{% \global\@topnum\z@ % Prevents figures from going at top of page. \cite@hook{}% \if@cchead \vbox to\z@{\vss \@ifundefined{r@ccenddocument}{\@tempcnta\z@}{% \@tempcnta\@ne \advance\@tempcnta-\@ccfirst \edef\@tempa{\csname r@ccenddocument\endcsname}% \ifx\@secondoffive\@@@@undefined% hyperref launches this! \edef\@tempa{\expandafter\@secondoftwo\@tempa{}{}{}{}{}}% \else \edef\@tempa{\expandafter\@secondoffive\@tempa{}{}{}{}{}}% \fi% \advance\@tempcnta\@tempa% }% \setcounter{page}{\@ccfirst}% \hbox to\textwidth{% \vbox to\z@{\vss \baselineskip=12pt% \halign{\ixpt##\hfil\cr comput. complex.~\textbf{\@ccvolume}~(\@ccyear), \thepage\ -- \pageref{ccenddocument}\cr \issn/\expandafter\@gobbletwo\@ccyear% %% use + instead --? /\twodigits{\@ccnumber}\fourdigits{\thepage}--\the\@tempcnta\ \$ 1.50+0.20/0\cr}}\hss \vbox to\z@{\vss \offinterlineskip% \halign{##&##\hfil\cr \vertrulea&\ixpt \copyright{} Birkh{\"{a}}user Verlag, Basel \@ccyear\cr \noalign{\hrule} \vertruleb\hskip1mm&% \vbox to\z@{\vbox to\z@{\vss \hbox{\xptsfbx computational complexity}}\vss}% \cr}}}\vskip47.333pt} \fi \hrule\@height\z@ \vskip2.2ex% 4.0mm \relax \begin{center} \if@ccpublish \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{% There are no footnotes allowed in title or author.\MessageBreak Your command is ignored.\MessageBreak Think about moving your remark to the acknowledgements}}% \let\thanks\footnote \else \renewcommand{\footnote}[1]{\protect\ClassWarningNoLine{cc}{% In title or author \string\footnote\space does not work.\MessageBreak Avoid footnotes or use \string\thanks}}% \renewcommand{\thefootnote}{\@fnsymbol\c@footnote}% \def\@makefnmark{% \rlap{\@textsuperscript{\normalfont\@thefnmark}}}% \long\def\@makefntext##1{\parindent 1em\noindent \hb@xt@1.8em{% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% \fi {% \Large\bfseries \def\\{\penalty-\@M}% \expandafter\MakeUppercase\expandafter{\@title}% \par }% \@ifundefined{@subtitle}{}{{% \large\itshape \@subtitle \par }} \@ifundefined{@version}{}{{% \large\itshape \@version \par }} \bigskip \vskip1.21ex% 2.2mm \vskip\z@ {% \large\scshape \extractnamesfr@m@author \par }% \if@ccpublish \ifx\@date\today\else \ClassWarningNoLine{cc}{Date ignored! (\@date)}% \fi \else{% \vskip1ex \large\@date\par }\fi \def\@tempa{\vskip5.5ex\let\@tempa\relax}% \expandafter\cc@ifempty\expandafter{\the\@abstract@toks}{% \ifvoid\@abstract \if@abstractoptional \ClassWarningNoLine{cc}{Missing abstract}% \else \ClassError{cc}{Missing abstract} {Define an abstract in the preamble using \protect\begin{abstract} ... \protect\end{abstract}.}% \fi \else \@tempa\leavevmode\unvbox\@abstract\par \fi }{% \ifvoid\@abstract\else \ClassWarningNoLine{cc}{Two abstracts, using the one defined by \protect\Abstract}% \fi \global\setbox\@abstract \@abstr{\ccabstractname} \the\@abstract@toks \end@abstr \@tempa\leavevmode\unvbox\@abstract\par } \ifvoid\@keywords \if@keywordsoptional \ClassWarningNoLine{cc}{Missing keywords}% \else \ClassError{cc}{Missing keywords} {Define keywords in the preamble using \protect\begin{keywords} ... \protect\end{keywords}.}% \fi \else \@tempa\leavevmode\unvbox\@keywords\par \fi \ifvoid\@subject \if@subjectoptional \ClassWarningNoLine{cc}{Missing subject classification}% \else \ClassError{cc}{Missing subject classification} {Define a subject classification in the preamble using \protect\begin{subject} ... \protect\end{subject}.}% \fi \else \@tempa\leavevmode\unvbox\@subject\par \fi \@thanks \ifx\@tempa\relax\vskip3ex\fi \end{center} \thispagestyle{empty} \setcounter{footnote}{0}% \global\let\maketitle\relax \global\let\thanks\@gobble \global\let\@thanks\relax \global\let\author\@notprerr \global\let\title\@notprerr \global\let\abstract\@notprerr \global\let\Abstract\@notprerr \global\let\keywords\@notprerr \global\let\subject\@notprerr \global\let\titlehead\@notprerr \global\let\authorhead\@notprerr \global\let\received\@notprerr \vskip\z@ \par\@afterindentfalse\@afterheading } \let\@maketitle\@undefined \let\and\@undefined \babel\def\ManuscriptReceived{Manuscript received }[% german=Manuskript erhalten: ,% french=Manuscrit re\c{c}u: ] \newcommand{\makeendtitle}{% \par \parindent\z@ \bigskip \@ifundefined{@received}{}{% \noindent{\small \ManuscriptReceived\@received \par}% \medskip }% {\small \extractaffilsfr@om@author }% %%\clearpage \gdef\makeendtitle{\ClassWarning{cc}{\protect\makeendtitle\space multiply used!}}% } \endinput %% %% End of file `cclayout.sty'. \end{filecontents*} \begin{filecontents*}{ccproof.sty} %% %% This is file `ccproof.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccproof,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{ccproof}[2000/02/29 v2.05 proof environments for cc. Michael Nuesken, Bonn.] \RequirePackage{theorem} \RequirePackage{thcc} \RequirePackage{ccqed} \newcommand{\Qed}{\@qedtrue\qed}% \newtoks\everyproof \everyproof{} \theoremstyle{ccproof} \theorembodyfont{} \newtoks\prooftitle \newtheorem{pr@@f}{\the\prooftitle} \newenvironment{namedproof}[2][\qedsymbol]{% \save@set@qed \prooftitle{#2}% \def\@tempa{#1}% \def\@tempc{\qedsymbol}% \ifx\@tempa\@tempc\relax\else\let\qedsymbol\@tempa\fi% \the\everyproof \pr@@f }{% \qed\restore@qed \endpr@@f} \babel\def\Proof{Proof}[german=Beweis,french=Preuve] \newenvironment{proof}{\namedproof{\Proof}}{\endnamedproof} \endinput %% %% End of file `ccproof.sty'. \end{filecontents*} \begin{filecontents*}{ccqed.sty} %% %% This is file `ccqed.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccqed,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{ccqed}[2000/02/29 v2.05 right-justified end-of-proof mark, based on Paul Taylor's QED.sty of 24 June 1995] \def\qed{\protect\@qed{$\qedsymbol$}} \def\qedsymbol{\square} \newif\ifAutoQED\AutoQEDfalse \def\parag@pushright#1{{% \parfillskip\z@ \widowpenalty\@M \displaywidowpenalty\@M \finalhyphendemerits\z@ \hbox@pushright #1% \par}}% \def\hbox@pushright{% \unskip \nobreak \hfil \penalty50 \hskip.2em \null \hfill }% \def\vbox@pushright#1{\expandafter\message % (2 Jan 1994) {QED.sty could be improved in this case (line \the\inputlineno): please ask}% \page@pushright{#1}}% \newif\if@qed\@qedfalse \def\save@set@qed{\let\saved@ifqed\if@qed\global\@qedtrue}% \def\restore@qed{\global\let\if@qed\saved@ifqed} \def\@qed#1{\check@pt@fm@thm \if@qed \global\@qedfalse\pushright{#1}% \else\ifhmode\ifinner\else\par\fi\fi% \fi} \def\@pushright#1{% \ifvmode \ifinner\vbox@pushright{#1}% \else \page@pushright{#1}% \fi \else\ifmmode\maths@pushright{\hbox{#1}}% \else\ifinner\hbox@pushright{#1}% \else\parag@pushright{#1}% \fi \fi \fi } \def\maths@pushright#1{% \ifinner \hbox@pushright{#1}% \else \eqno#1% \def\]{$$\ignorespaces}% \fi }% \def\page@pushright#1{% 18 Jan 1994 %\unpenalty % ineffective \skip@\lastskip \ifdim\skip@>\z@ \unskip \else\skip@\z@\relax \fi %\unpenalty % TeX won't let me do this \dimen@\baselineskip \advance\dimen@-\prevdepth \nobreak \nointerlineskip \hbox to\hsize{% \setbox\z@\null \ifdim\dimen@>\z@\ht\z@\dimen@\fi \box\z@ \hfill #1}% \vskip\skip@ }% \let\nonqed@thm\@thm \let\nonqed@endthm\@endtheorem \def\@thm{\save@set@qed\nonqed@thm} \def\@endtheorem{\ifAutoQED\qed\fi\restore@qed\nonqed@endthm} \newbox\qed@box \def\WillHandleQED{\relax \ifx\HandleQED\nohandle@qed \def\pushright{\global\setbox\qed@box\hbox}% \let\QEDbox\qed@box \def\HandleQED{\unhbox\QEDbox}% \aftergroup\check@handle@qed \else \let\QEDbox\voidb@x \fi } \def\nohandle@qed{% \errhelp{One of them is missing: see QED.sty.}% \errmessage{This environment uses \string\WillHandleQED\space and \string\HandleQED\space incorrectly}} \def\check@handle@qed{\relax \ifvoid\qed@box\else\expandafter\nohandle@qed\fi} \def\UnHandleQED{% \let\HandleQED\nohandle@qed \let\QEDbox\voidb@x \def\pushright{\protect\@pushright}}% \UnHandleQED \ifx\theorem@style\undefined \def\check@pt@fm@thm{\relax \ifx\square\undefined \gdef\square{\bigcirc \errhelp={Anonymous ftp e-math.ams.com /ams/amsfonts}% \errmessage{\string\square\space is an AMS symbol}% \global\let\square\bigcirc}% \fi \ifx\theorem@style\undefined \global\let\check@pt@fm@thm\relax \else \errhelp={The macros \@thm and \@endtheorem need to be re-defined.}% \errmessage{QED.sty must be loaded AFTER theorem.sty but before using \string\newtheorem}% \fi \global\let\check@pt@fm@thm\relax }% \else \def\check@pt@fm@thm{% \ifx\square\undefined \def\square{\bigcirc \errhelp={Anonymous ftp e-math.ams.com /ams/amsfonts}% \errmessage{\string\square\space is an AMS symbol}% \global\let\square\bigcirc}% \fi \global\let\check@pt@fm@thm\relax }% \fi \DeclareOption{auto-QED}{\AutoQEDtrue}% \DeclareOption{explicit-QED}{\AutoQEDfalse}% \DeclareOption{black-square}{\def\qedsymbol{\blacksquare}}% \DeclareOption{open-square}{\def\qedsymbol{\square}}% \ProcessOptions\relax \newif\if@resettagsleft@ \let\standardqed\qed \def\rescueqed{\qquad\qedsymbol\vphantom{\standardqed}} \def\eqnoqed{\eqno\hbox{\standardqed}}%\vphantom{\standardqed}} \let\ccorg@eqnnum\@eqnnum \let\ccorg@nonumber\nonumber \def\eqnarrayqed{% \global\@eqnswtrue \global\let\nonumber\relax \addtocounter{equation}\m@ne \gdef\@eqnnum{\llap{$\qedsymbol$\vphantom{\standardqed}}% \global\let\nonumber\ccorg@nonumber \global\let\@eqnnum\ccorg@eqnnum}} \def\tagqed{\tag*{\iftagsleft@ \hskip\displaywidth\llap{$\qedsymbol$}\hskip-\displaywidth% \else$\qedsymbol$\fi}\vphantom{\standardqed}} \def\simpletagqed{\iftagsleft@\global\@resettagsleft@true\fi \global\tagsleft@false \tag*{$\qedsymbol$}\vphantom{\standardqed}} \def\aftersplitqed{\global\let\endsplit\@endsplit} \let\ccorg@endsplit\endsplit \def\@endsplit{\ccorg@endsplit\qed\global\let\endsplit\ccorg@endsplit}% \def\noqed{} \def\@ifcurrenv#1#2{\def\@tempa{#1}\ifx\@tempa\@currenvir\relax \let\next#2\fi} \renewenvironment{displaymath}{$$}{$$\@ignoretrue} \renewcommand{\[}{\begin{displaymath}} \renewcommand{\]}{\end{displaymath}} \if@ams \def\qed{% \if@resettagsleft@ \global\tagsleft@true \global\@resettagsleft@false \fi \let\next\standardqed \@ifcurrenv{displaymath}\eqnoqed \@ifcurrenv{equation}\noqed \@ifcurrenv{eqnarray}\noqed \@ifcurrenv{eqnarray*}\eqnarrayqed \@ifcurrenv{equation*}\tagqed \@ifcurrenv{split}\aftersplitqed \@ifcurrenv{multline}\noqed \@ifcurrenv{multline*}\simpletagqed \@ifcurrenv{gather}\noqed \@ifcurrenv{gather*}\tagqed \@ifcurrenv{align}\noqed \@ifcurrenv{align*}\tagqed \@ifcurrenv{alignat}\noqed \@ifcurrenv{alignat*}\tagqed \next} \else \def\qed{% \let\next\standardqed \@ifcurrenv{displaymath}\eqnoqed \@ifcurrenv{equation}\noqed \@ifcurrenv{eqnarray}\noqed \@ifcurrenv{eqnarray*}\eqnarrayqed \next} \fi \endinput %% %% End of file `ccqed.sty'. \end{filecontents*} \begin{filecontents*}{ccreltx.sty} %% %% This is file `ccreltx.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccreltx,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{ccreltx}[2002/05/22 v2.05 computational complexity, reactivate ltthm. Michael Nuesken, Bonn.] %%% From File: ltthm.dtx \def\newtheorem#1{% \@ifnextchar[{\@othm{#1}}{\@nthm{#1}}} \def\@nthm#1#2{% \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}} \def\@xnthm#1#2[#3]{% \expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}\@newctr{#1}[#3]% \expandafter\xdef\csname the#1\endcsname{% \expandafter\noexpand\csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}% \global\@namedef{end#1}{\@endtheorem}}} \def\@ynthm#1#2{% \expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}% \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}% \global\@namedef{end#1}{\@endtheorem}}} \def\@othm#1[#2]#3{% \@ifundefined{c@#2}{\@nocounterr{#2}}% {\expandafter\@ifdefinable\csname #1\endcsname {\global\@namedef{the#1}{\@nameuse{the#2}}% \global\@namedef{#1}{\@thm{#2}{#3}}% \global\@namedef{end#1}{\@endtheorem}}}} \def\@thm#1#2{% \refstepcounter{#1}% \@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}} \def\@xthm#1#2{% \@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces} \def\@ythm#1#2[#3]{% \@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces} \def\@thmcounter#1{\noexpand\arabic{#1}} \def\@thmcountersep{.} \def\@begintheorem#1#2{\trivlist \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape} \def\@opargbegintheorem#1#2#3{\trivlist \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape} \def\@endtheorem{\endtrivlist} \endinput %% %% End of file `ccreltx.sty'. \end{filecontents*} \begin{filecontents*}{ccthm.sty} %% %% This is file `ccthm.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `ccthm,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{ccthm}[2000/02/29 v2.05 theorem environments for cc. Michael Nuesken, Bonn.] \newif\if@theoremitemprefixes \DeclareOption{theoremitemprefixes}{\@theoremitemprefixestrue} \DeclareOption{notheoremitemprefixes}{\@theoremitemprefixesfalse} \ExecuteOptions{theoremitemprefixes} \ProcessOptions\relax \RequirePackage{theorem}[1995/11/23 v2.2c] \RequirePackage{thcc} \RequirePackage{relabel} \newtoks\everytheorem \everytheorem{} \if@theoremitemprefixes \def\EnumerationInTheorems#1{% \let\@thm@currentlabel\@empty \let\@thm@bare@currentlabel\@empty \let\@@refstepcounter\refstepcounter \def\refstepcounter##1{% \let\refstepcounter\@@refstepcounter \let\@@refstepcounter\@undefined \refstepcounter{##1}% \let\@thm@currentlabel\@currentlabel \protected@edef\@thm@bare@currentlabel{{\csname the##1\endcsname}}% }% \def\theenumi{\@roman\c@enumi}% \def\labelenumi{(\theenumi)}% \defprefix{enumi}##1{% %%\Iflabelchanged{#1}{\uselabel{#1}}% \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {\@thm@bare@currentlabel}{\@thm@currentlabel}% (##1)}% %%\def\theenumii{\@alph\c@enumii}% %%\def\labelenumii{(\theenumii)}% \defprefix{enumii}##1{% %%\Iflabelchanged{#1}{\uselabel{#1}}% \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {\@thm@bare@currentlabel}{\@thm@currentlabel}% (\theenumi.##1)}% \def\theenumiii{\@arabic\c@enumiii}% \def\labelenumiii{(\theenumiii)}% \defprefix{enumiii}##1{% %%\Iflabelchanged{#1}{\uselabel{#1}}% \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {\@thm@bare@currentlabel}{\@thm@currentlabel}% (\theenumi.\theenumii.##1)}% %%\def\theenumiv{\@Alph\c@enumiv}% %%\def\labelenumiv{\theenumiv.}% \defprefix{enumiv}##1{% %%\Iflabelchanged{#1}{\uselabel{#1}}% \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {\@thm@bare@currentlabel}{\@thm@currentlabel}% (\theenumi.\theenumii.\theenumiii##1)} } \else \def\EnumerationInTheorems#1{% \def\theenumi{\@roman\c@enumi}% \def\labelenumi{(\theenumi)}% \defprefix{enumi}##1{(##1)}% %%\def\theenumii{\@alph\c@enumii}% %%\def\labelenumii{(\theenumii)}% \defprefix{enumii}##1{(\theenumi.##1)}% \def\theenumiii{\@arabic\c@enumiii}% \def\labelenumiii{(\theenumiii)}% \defprefix{enumiii}##1{(\theenumi.\theenumii.##1)}% %%\def\theenumiv{\@Alph\c@enumiv}% %%\def\labelenumiv{\theenumiv.}% \defprefix{enumiv}##1{(\theenumi.\theenumii.\theenumiii##1)} } \fi \def\theorempreamblenn\@thm#1#2{% \defprefix{#1}##1{#2}% \EnumerationInTheorems{#1}% \pagebreak[3]\relax \the\everytheorem \@thm{#1}{#2}} \theorem@bodyfont{\theorempreamblenn} \theoremstyle{ccnn} \newtoks\theoremtitle \newtheorem{namedth@@r@m*}{\the\theoremtitle} \newenvironment{namedtheorem*}[1]{% \theoremtitle{#1}\csname namedth@@r@m*\endcsname} {\csname endnamedth@@r@m*\endcsname} \babel\def\Answer{Answer}[german=Antwort,french=Reponse] \newtheorem{answer*}[namedth@@r@m*]{\Answer}% \babel\def\Assumption{Assumption}[german=Annahme,french=Assomption] \newtheorem{assumption*}[namedth@@r@m*]{\Assumption} \babel\def\Claim{Claim}[german=Behauptung,french=Proposition] \newtheorem{claim*}[namedth@@r@m*]{\Claim} \babel\def\Conjecture{Conjecture}[german=Vermutung,french=Conjecture] \newtheorem{conjecture*}[namedth@@r@m*]{\Conjecture} \babel\def\Convention{Convention}[german=Vereinbarung,french=Convention] \newtheorem{convention*}[namedth@@r@m*]{\Convention}% \babel\def\Corollary{Corollary}[german=Korollar,french=Corollaire] \newtheorem{corollary*}[namedth@@r@m*]{\Corollary} \babel\def\Counterexample{Counterexample}[% german=Gegenbeispiel,french=Contre-exemple] \newtheorem{counterexample*}[namedth@@r@m*]{\Counterexample}% \babel\def\Definition{Definition}[german=Definition,french=D\'efinition] \newtheorem{definition*}[namedth@@r@m*]{\Definition} \babel\def\Exercise{Exercise}[german=Aufgabe,french=Exercice] \newtheorem{exercise*}[namedth@@r@m*]{\Exercise} \babel\def\Fact{Fact}[german=Fakt,french=Fait] \newtheorem{fact*}[namedth@@r@m*]{\Fact} \babel\def\Hypothesis{Hypothesis}[german=Hypothese,french=Hypoth\`ese] \newtheorem{hypothesis*}[namedth@@r@m*]{\Hypothesis} \babel\def\Lemma{Lemma}[german=Lemma,french=Lemme] \newtheorem{lemma*}[namedth@@r@m*]{\Lemma} \babel\def\Notation{Notation}[german=Notation,french=Notation] \newtheorem{notation*}[namedth@@r@m*]{\Notation} \babel\def\Note{Note}[german=Notiz,french=Note] \newtheorem{note*}[namedth@@r@m*]{\Note} \babel\def\Observation{Observation}[% german=Beobachtung,french=Observation] \newtheorem{observation*}[namedth@@r@m*]{\Observation} \babel\def\OpenQuestion{Open Question}[% german=Offene Frage,french=Question ouverte] \newtheorem{open*}[namedth@@r@m*]{\OpenQuestion} \newtheorem{openquestion*}[namedth@@r@m*]{\OpenQuestion} \babel\def\Problem{Problem}[german=Problem,french=Probl\`eme] \newtheorem{problem*}[namedth@@r@m*]{\Problem} \babel\def\Proposition{Proposition}[% german=Behauptung,french=Proposition] \newtheorem{proposition*}[namedth@@r@m*]{\Proposition} \babel\def\Question{Question}[german=Frage,french=Question] \newtheorem{question*}[namedth@@r@m*]{\Question}% \babel\def\Remark{Remark}[german=Bemerkung,french=Remarque] \newtheorem{remark*}[namedth@@r@m*]{\Remark} \babel\def\Result{Result}[german=Ergebnis,french=R\'esultat] \newtheorem{result*}[namedth@@r@m*]{\Result} \babel\def\Theorem{Theorem}[german=Satz,french=Th\'eor\`eme] \newtheorem{theorem*}[namedth@@r@m*]{\Theorem} \babel\def\Thesis{Thesis}[german=These,french=Th\`ese] \newtheorem{thesis*}[namedth@@r@m*]{\Thesis}% \babel\def\Warning{Warning}[german=Warnung,french=Alerte] \newtheorem{warning*}[namedth@@r@m*]{\Warning}% %%\newtheorem{example*}[namedth@@r@m*]{Example}% \babel\def\Example{Example}[german=Beispiel,french=Exemple] \newenvironment{example*}[1][]{% \cc@ifempty{#1} {\csname namedtheorem*\endcsname{\Example}}% {\csname namedtheorem*\endcsname{\Example}[#1]}% \upshape \let\qedsymbol\eoesymbol } {\qed\csname endnamedtheorem*\endcsname} \def\theorempreamble\@thm#1#2{% \defprefix{#1}##1{#2~##1}% \EnumerationInTheorems{#1}% \pagebreak[3]\relax \the\everytheorem \@thm{#1}{#2}} \theorem@bodyfont{\theorempreamble} \theoremstyle{cc} \newtheorem{namedth@@r@m}{\the\theoremtitle} \if@ccnosepeqncnt \let\c@namedth@@r@m\c@equation \def\thenamedth@@r@m{\theequation} \fi \newenvironment{namedtheorem}[1] {\theoremtitle{#1}\namedth@@r@m} {\endnamedth@@r@m} \if@standardtheorems \newtheorem{answer}[namedth@@r@m]{\Answer} \newtheorem{assumption}[namedth@@r@m]{\Assumption} \newtheorem{claim}[namedth@@r@m]{\Claim} \newtheorem{conjecture}[namedth@@r@m]{\Conjecture} \newtheorem{convention}[namedth@@r@m]{\Convention} \newtheorem{corollary}[namedth@@r@m]{\Corollary} \newtheorem{counterexample}[namedth@@r@m]{\Counterexample} \newtheorem{definition}[namedth@@r@m]{\Definition} \newtheorem{exercise}[namedth@@r@m]{\Exercise} \newtheorem{fact}[namedth@@r@m]{\Fact} \newtheorem{hypothesis}[namedth@@r@m]{\Hypothesis} \newtheorem{lemma}[namedth@@r@m]{\Lemma} \newtheorem{notation}[namedth@@r@m]{\Notation} \newtheorem{note}[namedth@@r@m]{\Note} \newtheorem{observation}[namedth@@r@m]{\Observation} \newtheorem{open}[namedth@@r@m]{\OpenQuestion} \newtheorem{openquestion}[namedth@@r@m]{\OpenQuestion} \newtheorem{problem}[namedth@@r@m]{\Problem} \newtheorem{proposition}[namedth@@r@m]{\Proposition} \newtheorem{question}[namedth@@r@m]{\Question} \newtheorem{remark}[namedth@@r@m]{\Remark} \newtheorem{result}[namedth@@r@m]{\Result} \newtheorem{theorem}[namedth@@r@m]{\Theorem} \newtheorem{thesis}[namedth@@r@m]{\Thesis} \newtheorem{warning}[namedth@@r@m]{\Warning} \newenvironment{example}[1][]{% \cc@ifempty{#1} {\namedtheorem{\Example}}% {\namedtheorem{\Example}[#1]}% \upshape \let\qedsymbol\eoesymbol } {\qed\endnamedtheorem} \else \newtheorem{answer}{\Answer} \newtheorem{assumption}{\Assumption} \newtheorem{claim}{\Claim} \newtheorem{conjecture}{\Conjecture} \newtheorem{convention}{\Convention} \newtheorem{corollary}{\Corollary} \newtheorem{counterexample}{\Counterexample} \newtheorem{definition}{\Definition} \newtheorem{exercise}{\Exercise} \newtheorem{fact}{\Fact} \newtheorem{hypothesis}{\Hypothesis} \newtheorem{lemma}{\Lemma} \newtheorem{notation}{\Notation} \newtheorem{note}{\Note} \newtheorem{observation}{\Observation} \newtheorem{open}{\OpenQuestion} \newtheorem{openquestion}{\OpenQuestion} \newtheorem{problem}{\Problem} \newtheorem{proposition}{\Proposition} \newtheorem{question}{\Question} \newtheorem{remark}{\Remark} \newtheorem{result}{\Result} \newtheorem{theorem}{\Theorem} \newtheorem{thesis}{\Thesis} \newtheorem{warning}{\Warning} \newtheorem{exampleexample}{\Example} \newenvironment{example}{% \exampleexample% \upshape \let\qedsymbol\eoesymbol } {\qed\endexampleexample} \fi \babel\def\ccContinued{continued}[% german=fortgesetzt,french=continu\'e(e)] \newenvironment{continued}[1]{% \csname namedtheorem*\endcsname{\ref{#1} \ccContinued}% }{\csname endnamedtheorem*\endcsname} \newenvironment{contexample}[1]{% \csname namedtheorem*\endcsname{\ref{#1} \ccContinued}% \upshape \let\qedsymbol\eoesymbol } {\qed\csname endnamedtheorem*\endcsname} \newcommand{\eoesymbol}{\lozenge} \endinput %% %% End of file `ccthm.sty'. \end{filecontents*} \begin{filecontents*}{develop.sty} \end{filecontents*} \begin{filecontents*}{relabel.sty} %% %% This is file `relabel.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `relabel,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %%% File: relabel.sty %% Copyright (C) 1998 Michael N\"{u}sken, all rights reserved. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{relabel}[1998/09/07 v1.01 Relabel. MNuesken] \newif\if@prefixes \DeclareOption{prefixes}{\@prefixestrue} \DeclareOption{noprefixes}{\@prefixesfalse} \newif\if@bare \DeclareOption{bare}{\@baretrue} \DeclareOption{nobare}{\@barefalse} \ExecuteOptions{prefixes,nobare} \ProcessOptions\relax \newcommand*{\Label}[2]{\modify{#2}\label{#1}\revert} \newcommand*{\modify}[1]{\@bsphack% \global\let\revert@currentlabel\@currentlabel \global\let\revert@bare@currentlabel\@bare@currentlabel \def\@tempb##1{#1} \protected@edef\@currentlabel{\@tempb{\@currentlabel}}% \@esphack} \newcommand*{\revert}{\@bsphack \global\let\@currentlabel\revert@currentlabel \global\let\@bare@currentlabel\revert@bare@currentlabel \@esphack} \let\revert@currentlabel\relax \let\revert@bare@currentlabel\relax \newcommand*{\setcurrentlabel}[1]{% \protected@edef\@currentlabel{#1}% \let\@bare@currentlabel\@currentlabel} \newcommand*{\defprefix}[1]{\if@prefixes \def\next{\expandafter\def\csname p\string @#1\endcsname}% \else\def\next{\def\next}\fi\next} \newcommand*{\useprefix}[1]{\csname p\string @#1\endcsname} \newcommand*{\uselabel}[1]{\csname p\string @#1\expandafter \endcsname\csname the#1\endcsname} \def\defprefixcond#1#2{\defprefix{#1}{\conduselabel{#2}}} \newcommand*{\Iflabelchanged}[2]{% \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {{\csname the#1\endcsname}}% {#2}% } \def\conduselabel#1{% obsolete \protect\protect\protect\@@conduselabel {{\protect\csname the#1\endcsname}}% {{\csname the#1\endcsname}}% {\csname p\string @#1\endcsname{\csname the#1\endcsname}}% }% \def\@@conduselabel#1#2#3{{% \let\protect\relax \edef\@tempa{#1}% \edef\@tempc{#2}% \ifx\@tempa\@tempc\relax\@condlabelfalse\else\@condlabeltrue\fi \iflonglabel\@condlabeltrue\fi \ifshortlabel\@condlabelfalse\fi \if@condlabel #3\fi }} \newif\if@condlabel \newif\iflonglabel \longlabelfalse \newif\ifshortlabel \shortlabelfalse \def\short\ref#1{{\shortlabeltrue\ref{#1}}} \def\whole\ref#1{{\longlabeltrue\ref{#1}}} \def\quiet\ref#1{\vphantom{\ref{#1}}} \CheckCommand*\refstepcounter[1]{\stepcounter{#1}% \protected@edef\@currentlabel {\csname p@#1\endcsname\csname the#1\endcsname}% } \def\refstepcounter#1{\stepcounter{#1}% \protected@edef\@currentlabel {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% \protected@edef\@bare@currentlabel {\csname the#1\endcsname}% } \if@bare \let\relabel@label\label \def\label#1{\ifx\@currentlabel\@bare@currentlabel\else {\let\@currentlabel\@bare@currentlabel\relabel@label{bare@#1}}% \fi\relabel@label{#1}} \def\bare\ref#1{\@ifundefined{r@bare@#1}{\ref{#1}}{\ref{bare@#1}}} \else \def\bare{\PackageWarning{relabel}{\string\bare\space disabled! (Use option bare to enable it.)}} \fi \let\@bare@currentlabel\@currentlabel \endinput %% %% End of file `relabel.sty'. \end{filecontents*} \begin{filecontents*}{thcc.sty} %% %% This is file `thcc.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% cc.dtx (with options: `thcc,chartab') %% %% Copyright 2000-2010 %% Michael N"usken, Joachim von zur Gathen, computational complexity %% %% IMPORTANT NOTICE: %% %% This is a generated file. It is part of the %% computational complexity macro package %% derived from cc.dtx by 'tex cc.ins'. %% See cc.dtx for license information. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{thcc}[2008/03/18 v2.08 computational complexity, theorem layouts. Michael Nuesken, Bonn.] \RequirePackage{theorem}[1995/11/23] \expandafter\xdef\csname ver@amsthm.sty\endcsname {2000/02/29 Forbidden by cc.cls/thcc.sty. Not loaded!} \expandafter\xdef\csname ver@apthm.sty\endcsname {2000/02/29 Forbidden by cc.cls/thcc.sty. Not loaded!} \def\activate@shortcite{} \AtBeginDocument{% \@ifpackageloaded{cccite}{% \def\activate@shortcite{\let\cite\shortcite} }{}% \@ifpackageloaded{natbib}{% \def\activate@shortcite{% \let\cite\citealt \let\citet\citealt \let\citep\citealp }% }{}% \if@manualbibliography\def\activate@shortcite{}\fi } \def\th@cc{% \normalfont\slshape \def\@begintheorem##1##2{\item [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% \def\@opargbegintheorem##1##2##3{\item [\hskip\labelsep \theorem@headerfont ##1\ ##2\ % \normalfont({\activate@shortcite{}##3}).]}% } \def\th@ccnn{% \normalfont\slshape \def\@begintheorem##1##2{\item [\hskip\labelsep \theorem@headerfont ##1.]}% \def\@opargbegintheorem##1##2##3{\item [\hskip\labelsep \theorem@headerfont ##1\ % \normalfont({\activate@shortcite{}##3}).]}% } \def\th@ccproof{% \normalfont\upshape \def\@begintheorem##1##2{\item [\hskip\labelsep \theorem@headerfont ##1.\ \ ]}% \def\@opargbegintheorem##1##2##3{\item [\hskip\labelsep \theorem@headerfont ##1\ % \normalfont({\activate@shortcite{}##3}).\ \ ]}% } \def\th@ccalgo{% \normalfont\upshape \def\@begintheorem##1##2{\item [\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% \def\@opargbegintheorem##1##2##3{\item [\hskip\labelsep \theorem@headerfont ##1\ ##2.] {\normalfont##3.\par}}% } \def\th@ccalgonn{% \normalfont\upshape \def\@begintheorem##1##2{\item [\hskip\labelsep \theorem@headerfont ##1.]}% \def\@opargbegintheorem##1##2##3{\item [\hskip\labelsep \theorem@headerfont ##1.] {\normalfont##3.\par}}% } \gdef\theorem@headerfont{\scshape} \endinput %% %% End of file `thcc.sty'. \end{filecontents*} \begin{filecontents*}{cc.bst} % File name: cc.bst % % cc.bst style file for BibTeX. % February 6, 1996 % This style file provides the following citation facilities: % Usage in Tex Output: % file: % \cite Cook (1990) % \citeauthor Cook % \citeyear 1990 % \citemul Cook (1990, 1991a, 1991b) % \shortcite Cook 1990 % \parencite (Cook 1990) % \nocite % It was prepared by modifying previous style files. % Here are acknowledgements: %> BibTeX `named' style file for BibTeX version 0.99c, LaTeX version 2.09 %> Place it in a file called named.bst in the BibTeX search path. (Placing it %> in the same directory as the LaTeX document should also work.) %> Support for named citations is provided by named.sty %> This version was made by modifying the master file made by %> Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) %> Copyright (C) 1985, all rights reserved. %> Modifications Copyright 1988, Peter F. Patel-Schneider %> Copying of this file is authorized only if either %> (1) you make absolutely no changes to your copy, including name, or %> (2) if you do make changes, you name it something other than %> btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. %> This restriction helps ensure that all standard styles are identical. %> There are undoubtably bugs in this style. If you make bug fixes, %> improvements, etc. please let me know. My e-mail address is: %> pfps@research.att.com ENTRY { address author booktitle chapter edition editor howpublished institution journal key month 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 { mode s t } %FUNCTION {message} %{ % duplicate$ top$ %} FUNCTION {output.nonnull} { 's := %%%% "output.nonnull" top$ %%%% output.state top$ output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ %%%% { ", " * write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } 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.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 {semi.block} { %%%%"semi.block" top$ mid.sentence 'output.state := } %FUNCTION {semi.block} %{ output.state mid.sentence = % '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.checka} { empty$ 'skip$ 'new.block if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {new.semiblock.checkb} { empty$ swap$ empty$ and 'skip$ 'semi.block if$ } FUNCTION {new.sentence.checka} { empty$ 'skip$ 'new.sentence if$ } FUNCTION {new.sentence.checkb} { empty$ swap$ empty$ and 'skip$ 'new.sentence if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\sl " swap$ * "}" * } if$ } FUNCTION {bold} { duplicate$ empty$ { pop$ "" } { "{\bf " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := "{\sc " * numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff~}{vv~}{ll}{, jj}" 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.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { "ed.\ " editor format.names * } if$ } FUNCTION {format.editors.reverse} { editor empty$ { "" } { editor format.names ", ed." * } if$ } FUNCTION {format.editors.simple} { editor empty$ { "" } { editor format.names } 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.date} { year empty$ { month empty$ { "" } % { "there's a month but no year in " cite$ * warning$ % month % } { } if$ } % { month empty$ % {year extra.label * } % { month " " * year * extra.label *} % if$ % } { year extra.label * } if$ } 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$ % { "" } % { series empty$ % 'skip$ % {series emphasize ",\ vol.\ " * volume *} % if$ % "volume and number" number either.or.check % } % if$ %} %FUNCTION {format.bvolume} %{ volume empty$ % { "" } % { series empty$ % 'skip$ % {series emphasize "\ " * volume bold *} % if$ % "volume and number" number either.or.check % } % if$ %} FUNCTION {format.bvolume} { volume empty$ { "" } { "vol." 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.number.series} { volume empty$ { number empty$ { series field.or.null } { series empty$ { "there's a number but no series in " cite$ * warning$ } { series "\ " * number bold * } 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 n.dashify } { "p." pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.year} { volume field.or.null bold number empty$ 'skip$ { "(" number * ")\," * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ year empty$ 'skip$ { "\ (" * format.date * ")" * } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null bold number empty$ 'skip$ { "(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ",\, pp.\, " * 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 " booktitle emphasize * ", " * format.editors * } if$ } if$ } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ month empty$ year empty$ note empty$ and and and and and key empty$ not and { "all relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.publisher.address} { address empty$ 'publisher { publisher ", " * address * } 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} { key empty$ { journal empty$ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " journal * "\/}" * } if$ } { "In " key * } if$ " \shortcite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv~}{ll}" format.name$ editor num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { " and " * editor #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ "In " } { "Volume" volume tie.or.space.connect " of " * } if$ editor empty$ editor field.or.null author field.or.null = or { key empty$ { series empty$ { "need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } { "{\em " * series * "\/}" * } if$ } { key * } if$ } { format.crossref.editor * } if$ " \shortcite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { editor empty$ editor field.or.null author field.or.null = or { key empty$ { booktitle empty$ { "need editor, key, or booktitle for " cite$ * " to crossref " * crossref * warning$ "" } { "In {\em " booktitle * "\/}" * } if$ } { "In " key * } if$ } { "In " format.crossref.editor * } if$ " \shortcite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check semi.block format.title "title" output.check new.block crossref missing$ { journal emphasize "\ " * format.vol.num.year * "journal" output.check format.pages output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors.simple "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ semi.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence format.publisher.address "publisher" output.check } { new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output semi.block format.title "title" output.check howpublished address new.block.checkb howpublished output address output format.date output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ semi.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 format.publisher.address "publisher" output.check } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output format.date "year" output.check new.block note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check semi.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 format.publisher.address "publisher" output.check format.edition output format.date "year" output.check } { 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 semi.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output address empty$ { organization publisher new.sentence.checkb organization output publisher output format.date output } { address output.nonnull format.date output %%%% new.sentence organization output publisher output } if$ format.pages output } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem author empty$ { organization empty$ 'skip$ { organization output.nonnull address output } if$ } { format.authors output.nonnull } if$ semi.block format.btitle "title" output.check author empty$ { organization empty$ { address new.block.checka address output } 'skip$ if$ } { organization address new.block.checkb organization output address output } if$ format.edition output format.date output new.block note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check semi.block format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors "author" output.check title howpublished new.semiblock.checkb format.title output howpublished new.block.checka howpublished output format.date output new.block note output fin.entry empty.misc.check } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check semi.block format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem editor empty$ { organization output } % { format.editors output.nonnull } { format.editors.reverse output.nonnull } if$ semi.block format.btitle "title" output.check format.bvolume output format.number.series output address empty$ { editor empty$ { publisher new.sentence.checka } { organization publisher new.sentence.checkb organization output } if$ publisher output format.date "year" output.check } { address output.nonnull format.date "year" output.check new.sentence editor empty$ 'skip$ { organization output } if$ publisher output } if$ new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check semi.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output format.date "year" output.check new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check semi.block format.title "title" output.check new.block note "note" output.check format.date output fin.entry } FUNCTION {default.type} { misc } 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$ } INTEGERS { et.al.char.used } FUNCTION {initialize.et.al.char.used} { #0 'et.al.char.used := } EXECUTE {initialize.et.al.char.used} FUNCTION {format.lab.names} { 's := s num.names$ 'numnames := mode "cite" = { numnames #1 = { s #1 "{vv }{ll}" format.name$ } { numnames #2 = { s #1 "{vv }{ll }\& " format.name$ s #2 "{vv }{ll}" format.name$ * } { s #1 "{vv }{ll }\bgroup \em et al.\egroup " format.name$ } if$ } if$ } { numnames #1 = { s #1 "{ll}" format.name$ } { numnames #2 = { s #1 "{ll }\& " format.name$ s #2 "{ll}" format.name$ * } { s #1 "{ll }\bgroup \em et al.\egroup " 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 {author.key.organization.label} { author empty$ { key empty$ { organization empty$ { cite$ #1 #3 substring$ } { "The " #4 organization chop.word #3 text.prefix$ } if$ } { key } if$ } { author format.lab.names } if$ } FUNCTION {editor.key.organization.label} { editor empty$ { key empty$ { organization empty$ { cite$ #1 #3 substring$ } { "The " #4 organization chop.word #3 text.prefix$ } if$ } { key } if$ } { editor format.lab.names } if$ } FUNCTION {calc.label} { "cite" 'mode := type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label { type$ "manual" = 'author.key.organization.label 'author.key.label if$ } if$ } if$ "\protect\citeauthoryear{" swap$ * "}{" * year field.or.null purify$ * % CHANGED - pfps - 15 Feb 1989 'label := "sort" 'mode := type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.organization.label { type$ "manual" = 'author.key.organization.label 'author.key.label if$ } if$ } if$ " " * year field.or.null purify$ * sortify 'sort.label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ 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 {author.organization.sort} { author empty$ { organization empty$ { key empty$ { "to sort, need author, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { author sort.format.names } if$ } FUNCTION {editor.organization.sort} { editor empty$ { organization empty$ { key empty$ { "to sort, need editor, organization, or key in " cite$ * warning$ "" } { key sortify } if$ } { "The " #4 organization chop.word sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { calc.label sort.label " " * type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.organization.sort { type$ "manual" = 'author.organization.sort 'author.sort if$ } if$ } if$ * " " * year field.or.null sortify * " " * cite$ * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { longest.label last.sort.label next.extra } INTEGERS { longest.label.width last.extra.num } FUNCTION {initialize.longest.label} { "" 'longest.label := #0 int.to.chr$ 'last.sort.label := "" 'next.extra := #0 'longest.label.width := #0 'last.extra.num := } FUNCTION {forward.pass} { last.sort.label sort.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 := sort.label 'last.sort.label := } if$ } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ label extra.label * "}" * 'label := % CHANGED - pfps 15 Feb 1989 label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ extra.label 'next.extra := } EXECUTE {initialize.longest.label} ITERATE {forward.pass} REVERSE {reverse.pass} FUNCTION {begin.bib} { et.al.char.used { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } 'skip$ if$ preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{}\small" write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} \end{filecontents*} \begin{filecontents*}{cc2.bst} %% %% This is file `cc2.bst', %% generated with the docstrip utility. %% %% The original source files were: %% %% merlin.mbs (with options: `,ay,nat,lang,vonx,ed-au,nmft,nmft-sc,nmfted,nmand-rm,dt-beg,yr-par,note-yr,atit-u,vol-bf,volp-com,pgsep-s,jnm-x,pg-bk,isbn,issn,url,url-blk,edpar,edby,edbyy,ppx,ord,amper,and-xcom,etal-it,nfss') %% ---------------------------------------- %% *** bst for computational complexity with natbib.sty *** %% %% Copyright 1994-2007 Patrick W Daly % =============================================================== % IMPORTANT NOTICE: % This bibliographic style (bst) file has been generated from one or % more master bibliographic style (mbs) files, listed above. % % This generated file can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt; either % version 1 of the License, or any later version. % =============================================================== % Name and version information of the main mbs file: % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)] % For use with BibTeX version 0.99a or later %------------------------------------------------------------------- % This bibliography style file is intended for texts in ENGLISH % This is an author-year citation style bibliography. As such, it is % non-standard LaTeX, and requires a special package file to function properly. % Such a package is natbib.sty by Patrick W. Daly % The form of the \bibitem entries is % \bibitem[Jones et al.(1990)]{key}... % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... % The essential feature is that the label (the part in brackets) consists % of the author names, as they should appear in the citation, with the year % in parentheses following. There must be no space before the opening % parenthesis! % With natbib v5.3, a full list of authors may also follow the year. % In natbib.sty, it is possible to define the type of enclosures that is % really wanted (brackets or parentheses), but in either case, there must % be parentheses in the label. % The \cite command functions as follows: % \citet{key} ==>> Jones et al. (1990) % \citet*{key} ==>> Jones, Baker, and Smith (1990) % \citep{key} ==>> (Jones et al., 1990) % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) % \citeauthor{key} ==>> Jones et al. % \citeauthor*{key} ==>> Jones, Baker, and Smith % \citeyear{key} ==>> 1990 %--------------------------------------------------------------------- ENTRY { address author booktitle chapter edition editor eid howpublished institution isbn issn journal key language month note number organization pages publisher school series title type url volume year } {} { label extra.label sort.label short.list } 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} { 's := 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$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } 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 {add.blank} { " " * before.all 'output.state := } FUNCTION {date.block} { new.block } 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$ "" } { "\emph{" swap$ * "}" * } if$ } FUNCTION {bolden} { duplicate$ empty$ { pop$ "" } { "\textbf{" swap$ * "}" * } if$ } FUNCTION {scaps} { duplicate$ empty$ { pop$ "" } { "\textsc{" swap$ * "}" * } if$ } FUNCTION {bib.name.font} { scaps } FUNCTION {bib.fname.font} { bib.name.font } FUNCTION {tie.or.space.prefix} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ } FUNCTION {capitalize} { "u" change.case$ "t" change.case$ } FUNCTION {space.word} { " " swap$ * " " * } % Here are the language-specific definitions for explicit words. % Each function has a name bbl.xxx where xxx is the English word. % The language selected here is ENGLISH FUNCTION {bbl.and} { "and"} FUNCTION {bbl.etal} { "et~al." } FUNCTION {bbl.editors} { "editors" } FUNCTION {bbl.editor} { "editor" } FUNCTION {bbl.edby} { "edited by" } FUNCTION {bbl.edition} { "edition" } FUNCTION {bbl.volume} { "volume" } FUNCTION {bbl.of} { "of" } FUNCTION {bbl.number} { "number" } FUNCTION {bbl.nr} { "no." } FUNCTION {bbl.in} { "in" } FUNCTION {bbl.pages} { "" } FUNCTION {bbl.page} { "" } FUNCTION {bbl.chapter} { "chapter" } FUNCTION {bbl.techrep} { "Technical Report" } FUNCTION {bbl.mthesis} { "Master's thesis" } FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } FUNCTION {bbl.first} { "1st" } FUNCTION {bbl.second} { "2nd" } FUNCTION {bbl.third} { "3rd" } FUNCTION {bbl.fourth} { "4th" } FUNCTION {bbl.fifth} { "5th" } FUNCTION {bbl.st} { "st" } FUNCTION {bbl.nd} { "nd" } FUNCTION {bbl.rd} { "rd" } FUNCTION {bbl.th} { "th" } 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"} FUNCTION {eng.ord} { duplicate$ "1" swap$ * #-2 #1 substring$ "1" = { bbl.th * } { duplicate$ #-1 #1 substring$ duplicate$ "1" = { pop$ bbl.st * } { duplicate$ "2" = { pop$ bbl.nd * } { "3" = { bbl.rd * } { bbl.th * } if$ } if$ } if$ } if$ } MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } FUNCTION {bibinfo.warn} { swap$ duplicate$ missing$ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } { duplicate$ empty$ { swap$ "empty " swap$ * " in " * cite$ * warning$ } { swap$ pop$ } if$ } if$ } FUNCTION {format.url} { url empty$ { "" } { "\urlprefix\url{" url * "}" * } if$ } INTEGERS { nameptr namesleft numnames } STRINGS { bibinfo} FUNCTION {format.names} { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ bib.name.font bibinfo bibinfo.check 't := nameptr #1 > { namesleft #1 > { ", " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { " " * bbl.etal emphasize * } { "\&" space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } if$ } FUNCTION {format.names.ed} { format.names } FUNCTION {format.key} { empty$ { key field.or.null } { "" } if$ } FUNCTION {format.authors} { author "author" format.names } FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } FUNCTION {format.editors} { editor "editor" format.names duplicate$ empty$ 'skip$ { " " * get.bbl.editor "(" swap$ * ")" * * } if$ } FUNCTION {format.book.pages} { pages "pages" bibinfo.check duplicate$ empty$ 'skip$ { " " * bbl.pages * } if$ } FUNCTION {format.isbn} { isbn "isbn" bibinfo.check duplicate$ empty$ 'skip$ { new.block "ISBN " swap$ * } if$ } FUNCTION {format.issn} { issn "issn" bibinfo.check duplicate$ empty$ 'skip$ { new.block "ISSN " swap$ * } if$ } FUNCTION {select.language} { duplicate$ empty$ 'pop$ { language empty$ 'skip$ { "{\selectlanguage{" language * "}" * swap$ * "}" * } if$ } if$ } FUNCTION {format.note} { note empty$ { "" } { note #1 #1 substring$ duplicate$ "{" = 'skip$ { output.state mid.sentence = { "l" } { "u" } if$ change.case$ } if$ note #2 global.max$ substring$ * "note" bibinfo.check } if$ } FUNCTION {format.title} { title "title" bibinfo.check duplicate$ empty$ 'skip$ { select.language } if$ } FUNCTION {format.full.names} {'s := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { " " * bbl.etal emphasize * } { "\&" space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {author.editor.key.full} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } { author format.full.names } if$ } FUNCTION {author.key.full} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.full.names } if$ } FUNCTION {editor.key.full} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } FUNCTION {make.full.names} { type$ "book" = type$ "inbook" = or 'author.editor.key.full { type$ "proceedings" = 'editor.key.full 'author.key.full if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem[{" write$ label write$ ")" make.full.names duplicate$ short.list = { pop$ } { * } if$ "}]{" * write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {if.digit} { duplicate$ "0" = swap$ duplicate$ "1" = swap$ duplicate$ "2" = swap$ duplicate$ "3" = swap$ duplicate$ "4" = swap$ duplicate$ "5" = swap$ duplicate$ "6" = swap$ duplicate$ "7" = swap$ duplicate$ "8" = swap$ "9" = or or or or or or or or or } FUNCTION {n.separate} { 't := "" #0 'numnames := { t empty$ not } { t #-1 #1 substring$ if.digit { numnames #1 + 'numnames := } { #0 'numnames := } if$ t #-1 #1 substring$ swap$ * t #-2 global.max$ substring$ 't := numnames #5 = { duplicate$ #1 #2 substring$ swap$ #3 global.max$ substring$ "\," swap$ * * } 'skip$ if$ } while$ } FUNCTION {n.dashify} { n.separate '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 {word.in} { bbl.in capitalize " " * } FUNCTION {format.date} { year "year" bibinfo.check duplicate$ empty$ { "empty year in " cite$ * "; set to ????" * warning$ pop$ "????" } 'skip$ if$ extra.label * before.all 'output.state := " (" swap$ * ")" * } FUNCTION {format.btitle} { title "title" bibinfo.check duplicate$ empty$ 'skip$ { emphasize select.language } if$ } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * * series "series" bibinfo.check duplicate$ empty$ 'pop$ { swap$ bbl.of space.word * swap$ 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 = { bbl.number } { bbl.number capitalize } if$ number tie.or.space.prefix "number" bibinfo.check * * series empty$ { "there's a number but no series in " cite$ * warning$ } { bbl.in space.word * series "series" bibinfo.check * } if$ } if$ } { "" } if$ } FUNCTION {is.num} { chr.to.int$ duplicate$ "0" chr.to.int$ < not swap$ "9" chr.to.int$ > not and } FUNCTION {extract.num} { duplicate$ 't := "" 's := { t empty$ not } { t #1 #1 substring$ t #2 global.max$ substring$ 't := duplicate$ is.num { s swap$ * 's := } { pop$ "" 't := } if$ } while$ s empty$ 'skip$ { pop$ s } if$ } FUNCTION {convert.edition} { extract.num "l" change.case$ 's := s "first" = s "1" = or { bbl.first 't := } { s "second" = s "2" = or { bbl.second 't := } { s "third" = s "3" = or { bbl.third 't := } { s "fourth" = s "4" = or { bbl.fourth 't := } { s "fifth" = s "5" = or { bbl.fifth 't := } { s #1 #1 substring$ is.num { s eng.ord 't := } { edition 't := } if$ } if$ } if$ } if$ } if$ } if$ t } FUNCTION {format.edition} { edition duplicate$ empty$ 'skip$ { convert.edition output.state mid.sentence = { "l" } { "t" } if$ change.case$ "edition" bibinfo.check " " * bbl.edition * } 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 duplicate$ empty$ 'skip$ { duplicate$ multi.page.check { n.dashify } { } if$ "pages" bibinfo.check } if$ } FUNCTION {format.journal.pages} { pages duplicate$ empty$ 'pop$ { swap$ duplicate$ empty$ { pop$ pop$ format.pages } { ", " * swap$ n.dashify "pages" bibinfo.check * } if$ } if$ } FUNCTION {format.journal.eid} { eid "eid" bibinfo.check duplicate$ empty$ 'pop$ { swap$ duplicate$ empty$ 'skip$ { ", " * } if$ swap$ * } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null duplicate$ empty$ 'skip$ { "volume" bibinfo.check } if$ bolden number "number" bibinfo.check duplicate$ empty$ 'skip$ { swap$ duplicate$ empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ swap$ "(" swap$ * ")" * } if$ * eid empty$ { format.journal.pages } { format.journal.eid } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { bbl.chapter } { type "l" change.case$ "type" bibinfo.check } if$ chapter tie.or.space.prefix "chapter" bibinfo.check * * pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.booktitle} { booktitle "booktitle" bibinfo.check emphasize } FUNCTION {format.in.ed.booktitle} { format.booktitle duplicate$ empty$ 'skip$ { editor "editor" format.names.ed duplicate$ empty$ 'pop$ { get.bbl.editor swap$ "," * " " * swap$ * swap$ "," * " " * swap$ * } if$ word.in swap$ * } if$ } FUNCTION {format.thesis.type} { type duplicate$ empty$ 'pop$ { swap$ pop$ "t" change.case$ "type" bibinfo.check } if$ } FUNCTION {format.tr.number} { number "number" bibinfo.check type duplicate$ empty$ { pop$ bbl.techrep } 'skip$ if$ "type" bibinfo.check swap$ duplicate$ empty$ { pop$ "t" change.case$ } { tie.or.space.prefix * * } if$ } FUNCTION {format.article.crossref} { word.in " \cite{" * crossref * "}" * } FUNCTION {format.book.crossref} { volume duplicate$ empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ pop$ word.in } { bbl.volume capitalize swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { word.in " \cite{" * crossref * "}" * } FUNCTION {format.org.or.pub} { 't := "" address empty$ t empty$ and 'skip$ { t empty$ { address "address" bibinfo.check * } { t * address empty$ 'skip$ { ", " * address "address" bibinfo.check * } if$ } if$ } if$ } FUNCTION {format.publisher.address} { publisher "publisher" bibinfo.warn format.org.or.pub } FUNCTION {format.organization.address} { organization "organization" bibinfo.check format.org.or.pub } FUNCTION {article} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.block format.title "title" output.check new.block crossref missing$ { journal "journal" bibinfo.check emphasize "journal" output.check add.blank format.vol.num.pages output } { format.article.crossref output.nonnull format.pages output } if$ format.issn output new.block format.url output new.block format.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$ format.date "year" output.check date.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence format.publisher.address output } { new.block format.book.crossref output.nonnull } if$ format.edition output format.isbn output format.book.pages output new.block format.url output new.block format.note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output format.date "year" output.check date.block format.title "title" output.check new.block howpublished "howpublished" bibinfo.check output address "address" bibinfo.check output format.isbn output format.book.pages output new.block format.url output new.block format.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$ format.date "year" output.check date.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 format.publisher.address output } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output crossref missing$ { format.isbn output } 'skip$ if$ new.block format.url output new.block format.note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.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 format.publisher.address output format.edition output format.isbn output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block format.url output new.block format.note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.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 new.sentence publisher empty$ { format.organization.address output } { organization "organization" bibinfo.check output format.publisher.address output } if$ format.isbn output format.issn output } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block format.url output new.block format.note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output format.date "year" output.check date.block format.btitle "title" output.check organization address new.block.checkb organization "organization" bibinfo.check output address "address" bibinfo.check output format.edition output new.block format.url output new.block format.note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.block format.btitle "title" output.check new.block bbl.mthesis format.thesis.type output.nonnull school "school" bibinfo.warn output address "address" bibinfo.check output new.block format.url output new.block format.note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output format.date "year" output.check date.block format.title output new.block howpublished "howpublished" bibinfo.check output new.block format.url output new.block format.note output fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.block format.btitle "title" output.check new.block bbl.phdthesis format.thesis.type output.nonnull school "school" bibinfo.warn output address "address" bibinfo.check output new.block format.url output new.block format.note output fin.entry } FUNCTION {proceedings} { output.bibitem format.editors output editor format.key output format.date "year" output.check date.block format.btitle "title" output.check format.bvolume output format.number.series output new.sentence publisher empty$ { format.organization.address output } { organization "organization" bibinfo.check output format.publisher.address output } if$ format.isbn output format.issn output new.block format.url output new.block format.note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" bibinfo.warn output address "address" bibinfo.check output new.block format.url output new.block format.note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check date.block format.title "title" output.check new.block format.url output new.block format.note "note" output.check fin.entry } FUNCTION {default.type} { misc } 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 := "" 't := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " " * bbl.etal emphasize * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " * bbl.etal emphasize * } { " \& " * 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 {calc.short.authors} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ 'short.list := } FUNCTION {calc.label} { calc.short.authors short.list "(" * year duplicate$ empty$ { pop$ "????" } 'skip$ if$ * 'label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := nameptr #1 > { " " * namesleft #1 = t "others" = and { "zzzzz" * } { t sortify * } if$ } { 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 number.label } FUNCTION {initialize.extra.label.stuff} { #0 int.to.chr$ 'last.label := "" 'next.extra := #0 'last.extra.num := #0 'number.label := } 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$ number.label #1 + 'number.label := } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ extra.label 'next.extra := extra.label duplicate$ empty$ 'skip$ { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := label extra.label * 'label := } 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}{" number.label int.to.str$ * "}" * write$ newline$ "\providecommand{\natexlab}[1]{#1}" write$ newline$ "\providecommand{\url}[1]{\texttt{#1}}" write$ newline$ "\providecommand{\urlprefix}{URL }" write$ newline$ "\providecommand{\selectlanguage}[1]{\relax}" 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 customized bst file %% %% End of file `cc2.bst'. \end{filecontents*}