From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/complexity/complexity.sty | 757 +++++++++++++++++++++++++ 1 file changed, 757 insertions(+) create mode 100644 macros/latex/contrib/complexity/complexity.sty (limited to 'macros/latex/contrib/complexity/complexity.sty') diff --git a/macros/latex/contrib/complexity/complexity.sty b/macros/latex/contrib/complexity/complexity.sty new file mode 100644 index 0000000000..8acec3ac4d --- /dev/null +++ b/macros/latex/contrib/complexity/complexity.sty @@ -0,0 +1,757 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% complexity - a LaTeX package that defines commands to typeset +% Computational Complexity Classes such as $\P$ and $\NP$ (as well +% as hundreds of others). It also offers several options including +% which font classes are typeset in and how many are defined (all +% of them or just the basic, most commonly used ones). +% +% Written by Chris Bourke +% +% No dependencies other than the standard ifthen package. +% See complexity.pdf for full documentation +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright and license +% ===================== +% +% Copyright (C) 2017 Chris Bourke +% +% This file may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, either version 1.3c of this license +% or (at your option) any later version. The latest version of this +% license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008/05/04 or later. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Changes made (.81 -> .81a, 2017/09/16) +% -Updated copyright, added LPPL 1.3c +% Changes made (.80 -> .81, 2017/09/15) +% -Removed \typeout message +% -Cleaned up comments +% -Added package option (disableredefinitions) to disable redefinitions +% of \L, \P, \S for authors that need the originals but cannot use the +% replacements. For backwards compatibility, the they are still redefined +% by default. Thanks to Enrico Gregorio for the fix. +% Changes made (.76 -> .80) +% -Added a cool message using \typeout! +% -Added \newclass, \newlang, \newfunc commands +% -Added \renewclass, \renewlang, \renewfunc +% -Added \class that acts like \lang and \func +% Changes made (.75 -> .76) +% -Fixed a spacing bug that may cause extra spaces when not in math +% mode. Thanks to Nicolas Markey +% Changes made (.50 -> .75) +% -Fixed a few misc. bugs +% -Added negative kerning for \BPPpath, \FPTnu, \FPTsu, \QMIPle, \QMIPne, \XPuniform +% -Added more {} brackets to all commands using sub/super scripts to ensure +% proper behavior when they are used as super/subscripts themselves. +% -Raised the hyphen and added kerning for all classes with hyphens adjoining capital +% letters +% -Made a few new internal commands (\complexity@possiblymakesmaller and +% \complexity@fontcommand) to support a new option: small which typesets +% classes in inline and display modes a point smaller than the default text +% size. Special thanks to Till Tantau for the suggestions and code +% -Defined separate commands \lang and \func for languages and function classes with +% full options. +% -Updated Documentation +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} % +\ProvidesPackage{complexity}[09/16/17 \space v0.81a] + +% Require Packages +\RequirePackage{ifthen} + +% Declare internal commands +\newcommand\complexity@possiblymakesmaller[1]{#1} % default: do nothing +\newcommand\complexity@fontcommand{\mathsf} % default: do noting +\newcommand{\ComplexityFont}[1]{% +{\ensuremath{\complexity@possiblymakesmaller{\complexity@fontcommand{#1}}}}%extra {} makes everyone happy. +} + +\newcommand{\lang}[1]{{\ensuremath{\mathsf{#1}}}} +\newcommand{\func}[1]{{\ensuremath{\mathsf{#1}}}} +\newcommand{\class}[1]{\ComplexityFont{#1}} + +\newcommand{\newclass}[2]{\newcommand{#1}{\ComplexityFont{#2}}} +\newcommand{\newlang}[2]{\newcommand{#1}{\lang{#2}}} +\newcommand{\newfunc}[2]{\newcommand{#1}{\func{#2}}} + +\newcommand{\renewclass}[2]{\renewcommand{#1}{\ComplexityFont{#2}}} +\newcommand{\renewlang}[2]{\renewcommand{#1}{\lang{#2}}} +\newcommand{\renewfunc}[2]{\renewcommand{#1}{\func{#2}}} + +\newboolean{complexity@fullmode} % +\setboolean{complexity@fullmode}{true} +\DeclareOption{full}{% + \setboolean{complexity@fullmode}{true}% +} % +\DeclareOption{basic}{% + \setboolean{complexity@fullmode}{false}% +} % + +\newif\ifcomplexity@noredef +\DeclareOption{disableredefinitions}{\complexity@noredeftrue} + +\DeclareOption{sanserif}{ + \renewcommand{\complexity@fontcommand}{\mathsf} + \renewcommand{\lang}[1]{{\ensuremath{\mathsf{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\mathsf{#1}}}} +} + +\DeclareOption{roman}{ + \renewcommand{\complexity@fontcommand}{\mathrm} + \renewcommand{\lang}[1]{{\ensuremath{\mathrm{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\mathrm{#1}}}} +} + +\DeclareOption{bold}{ + \renewcommand{\complexity@fontcommand}{\mathbf} + \renewcommand{\lang}[1]{{\ensuremath{\mathbf{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\mathbf{#1}}}} +} + +\DeclareOption{typewriter}{ + \renewcommand{\complexity@fontcommand}{\mathtt} + \renewcommand{\lang}[1]{{\ensuremath{\mathtt{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\mathtt{#1}}}} +} + +\DeclareOption{italic}{ + \renewcommand{\complexity@fontcommand}{\mathit} + \renewcommand{\lang}[1]{{\ensuremath{\mathit{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\mathit{#1}}}} +} + +\DeclareOption{caps}{ + \renewcommand{\complexity@fontcommand}{\textsc} + \renewcommand{\lang}[1]{{\ensuremath{\textsc{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\textsc{#1}}}} +} + +\DeclareOption{slant}{ + \renewcommand{\complexity@fontcommand}{\textsl} + \renewcommand{\lang}[1]{{\ensuremath{\textsl{#1}}}} + \renewcommand{\func}[1]{{\ensuremath{\textsl{#1}}}} +} + +% Independent classfonts: +\DeclareOption{classfont=sanserif}{ + \renewcommand{\complexity@fontcommand}{\mathsf} +} +\DeclareOption{classfont=roman}{ + \renewcommand{\complexity@fontcommand}{\mathrm} +} +\DeclareOption{classfont=bold}{ + \renewcommand{\complexity@fontcommand}{\mathbf} +} +\DeclareOption{classfont=typewriter}{ + \renewcommand{\complexity@fontcommand}{\mathtt} +} +\DeclareOption{classfont=italic}{ + \renewcommand{\complexity@fontcommand}{\mathit} +} +\DeclareOption{classfont=caps}{ + \renewcommand{\complexity@fontcommand}{\textsc} +} +\DeclareOption{classfont=slant}{ + \renewcommand{\complexity@fontcommand}{\textsl} +} + +% Independent langfonts: +\DeclareOption{langfont=sanserif}{ + \renewcommand{\lang}[1]{{\ensuremath{\mathsf{#1}}}} +} +\DeclareOption{langfont=roman}{ + \renewcommand{\lang}[1]{{\ensuremath{\mathrm{#1}}}} +} +\DeclareOption{langfont=bold}{ + \renewcommand{\lang}[1]{{\ensuremath{\mathbf{#1}}}} +} +\DeclareOption{langfont=typewriter}{ + \renewcommand{\lang}[1]{{\ensuremath{\mathtt{#1}}}} +} +\DeclareOption{langfont=italic}{ + \renewcommand{\lang}[1]{{\ensuremath{\mathit{#1}}}} +} +\DeclareOption{langfont=caps}{ + \renewcommand{\lang}[1]{{\ensuremath{\textsc{#1}}}} +} +\DeclareOption{langfont=slant}{ + \renewcommand{\lang}[1]{{\ensuremath{\textsl{#1}}}} +} + +% Independent funcfonts: +\DeclareOption{funcfont=sanserif}{ + \renewcommand{\func}[1]{{\ensuremath{\mathsf{#1}}}} +} +\DeclareOption{funcfont=roman}{ + \renewcommand{\func}[1]{{\ensuremath{\mathrm{#1}}}} +} +\DeclareOption{funcfont=bold}{ + \renewcommand{\func}[1]{{\ensuremath{\mathbf{#1}}}} +} +\DeclareOption{funcfont=typewriter}{ + \renewcommand{\func}[1]{{\ensuremath{\mathtt{#1}}}} +} +\DeclareOption{funcfont=italic}{ + \renewcommand{\func}[1]{{\ensuremath{\mathit{#1}}}} +} +\DeclareOption{funcfont=caps}{ + \renewcommand{\func}[1]{{\ensuremath{\textsc{#1}}}} +} +\DeclareOption{funcfont=slant}{ + \renewcommand{\func}[1]{{\ensuremath{\textsl{#1}}}} +} + +% Till Tantau's Code for the small option: +\DeclareOption{small}{ + +\newcommand\complexity@reducesize{% + \ifx\@currsize\normalsize% + \small% + \else\ifx\@currsize\small% + \footnotesize% + \else\ifx\@currsize\large% + \normalsize% + \fi\fi\fi% +} + +\renewcommand\complexity@possiblymakesmaller[1]{% + \mathchoice% + {\hbox{\complexity@reducesize$#1$}}% display + {\hbox{\complexity@reducesize$#1$}}% normal + {#1}%subscript + {#1}%subsubscript (I think) +} + +} + + +\DeclareOption*{ +\PackageWarning{complexity}{Unknown option `\CurrentOption'. Using default `sanserif', and `full'} % +\renewcommand{\ComplexityFont}[1]{{\ensuremath{\mathsf{#1}}}} +\renewcommand{\lang}[1]{{\ensuremath{\mathsf{#1}}}} +\setboolean{complexity@fullmode}{true} +} + +\ProcessOptions + +% Define some internal commands +% such as a standard kerning value for several commands +\newcommand{\complexity@kern}{{\kern-.10em}} +\newcommand{\complexity@hyphen}{ % +\lower-.12em\hbox{\textrm{-}} % +} + +\newcommand{\complexity@hyphenleft}{\kern-.075em\textrm{-}} +\newcommand{\complexity@hyphenright}{\textrm{-}\kern-.05em} + +% Define some useful commands to append to other classes + +\newcommand{\co}[1]{\ComplexityFont{co}#1} +\newcommand{\parity}{\oplus} + +% Define some general functions +\newcommand{\llog}{\func{log}} +\newcommand{\poly}{\func{poly}} +\newcommand{\polylog}{\func{polylog}} +\newcommand{\qpoly}{\func{qpoly}} +\newcommand{\qlog}{\func{qlog}} +\newcommand{\MOD}{\func{MOD}} +\newcommand{\Mod}{\func{Mod}} + +% Define Common Sets/Languages +\newcommand{\CVP}{\lang{CVP}} +\newcommand{\SAT}{\lang{SAT}} +\newcommand{\MaxSAT}{\lang{MaxSAT}} + + +% Alternatives for \L, \P, \S if disabled +\newcommand{\cL}{\ComplexityFont{L}} +\newcommand{\cP}{\ComplexityFont{P}} +\newcommand{\cS}{\ComplexityFont{S}} + +% We redefine 3 commands, but preserve them for usage +\let\defaultL\L % for back compatibility +\let\defaultP\P % for back compatibility +\let\defaultS\S % for back compatibility +% Only redefine if not disabled +\ifcomplexity@noredef\else +\renewcommand{\L}{\ComplexityFont{L}} +\renewcommand{\P}{\ComplexityFont{P}} +\renewcommand{\S}{\ComplexityFont{S}} +\fi + + +% Major Classes listed in Alphabetical order + +%%%%%%% Standard Classes + +% A +\newcommand{\AC}{\ComplexityFont{AC}} +\newcommand{\ACC}{\ComplexityFont{ACC}} +\newcommand{\AH}{\ComplexityFont{AH}} +\newcommand{\AL}{\ComplexityFont{AL}} +\newcommand{\coAM}{\ComplexityFont{coAM}} +\newcommand{\AM}{\ComplexityFont{AM}} +\newcommand{\AMEXP}{\ComplexityFont{AM\complexity@hyphen EXP}} +\newcommand{\AP}{\ComplexityFont{AP}} + +% B +\newcommand{\BH}{\ComplexityFont{BH}} +\newcommand{\BPE}{\ComplexityFont{BPE}} +\newcommand{\BPEE}{\ComplexityFont{BPEE}} +\newcommand{\BPP}{\ComplexityFont{BPP}} +\newcommand{\coBPP}{\ComplexityFont{coBPP}} +\newcommand{\BPSPACE}{\ComplexityFont{BPSPACE}} +\newcommand{\BPTIME}{\ComplexityFont{BPTIME}} +\newcommand{\BQP}{\ComplexityFont{BQP}} +\newcommand{\BQTIME}{\ComplexityFont{BQTIME}} + +% C +\newcommand{\cc}{\ComplexityFont{cc}} +\newcommand{\C}{\ComplexityFont{C}} %This isn't a class, but used for \C_{=}\AnotherClass +\newcommand{\CeL}{\ComplexityFont{C}_{=}\ComplexityFont{L}} %C_=L +\newcommand{\CeP}{\ComplexityFont{C}_{=}\ComplexityFont{P}} %C_=P +\newcommand{\coCeP}{\ComplexityFont{coC}_{=}\ComplexityFont{P}} %C_=P +\newcommand{\CFL}{\ComplexityFont{CFL}} +\newcommand{\CH}{\ComplexityFont{CH}} +\newcommand{\CkP}{\ComplexityFont{C}_{\ComplexityFont{k}}\ComplexityFont{P}} %C_kP +\newcommand{\CSIZE}{\ComplexityFont{CSIZE}} + +% D +\newcommand{\DET}{\ComplexityFont{DET}} +\newcommand{\DSPACE}{\ComplexityFont{DSPACE}} +\newcommand{\DTIME}{\ComplexityFont{DTIME}} +\newcommand{\DTISP}{\ComplexityFont{DTISP}} + +% E +\newcommand{\E}{\ComplexityFont{E}} +\newcommand{\EE}{\ComplexityFont{EE}} +\newcommand{\EESPACE}{\ComplexityFont{EESPACE}} +\newcommand{\EEXP}{\ComplexityFont{EEXP}} +\newcommand{\EH}{\ComplexityFont{EH}} +\newcommand{\EEE}{\ComplexityFont{EEE}} +\newcommand{\EPTAS}{\ComplexityFont{EPTAS}} +\newcommand{\ESPACE}{\ComplexityFont{ESPACE}} +\newcommand{\EXP}{\ComplexityFont{EXP}} +\newcommand{\EXPSPACE}{\ComplexityFont{EXPSPACE}} + +% F +\newcommand{\FNL}{\ComplexityFont{FNL}} +\newcommand{\FNP}{\ComplexityFont{FNP}} +\newcommand{\FP}{\ComplexityFont{FP}} +\newcommand{\FPRAS}{\ComplexityFont{FPRAS}} +\newcommand{\FQMA}{\ComplexityFont{FQMA}} + +% G +\newcommand{\GA}{\ComplexityFont{GA}} +\newcommand{\Gap}{\ComplexityFont{Gap}} +\newcommand{\GapAC}{\ComplexityFont{GapAC}} +\newcommand{\GapL}{\ComplexityFont{GapL}} +\newcommand{\GapP}{\ComplexityFont{GapP}} +\newcommand{\GI}{\ComplexityFont{GI}} + +% H +\newcommand{\Heur}{\ComplexityFont{Heur}} +\newcommand{\HSPACE}{\ComplexityFont{HSPACE}} +\newcommand{\HeurBPP}{\ComplexityFont{HeurBPP}} +\newcommand{\HeurBPTIME}{\ComplexityFont{HeurBPTIME}} + +% I +\newcommand{\IP}{\ComplexityFont{IP}} + +% J + +% K +\newcommand{\K}{\ComplexityFont{K}} +\newcommand{\KT}{\ComplexityFont{KT}} + +% L +\newcommand{\LIN}{\ComplexityFont{LIN}} +\newcommand{\LogFew}{\ComplexityFont{LogFew}} +\newcommand{\LogFewNL}{\ComplexityFont{LogFewNL}} + +% M +\newcommand{\MA}{\ComplexityFont{MA}} +\newcommand{\coMA}{\ComplexityFont{coMA}} +\newcommand{\MAC}{\ComplexityFont{MAC}} +\newcommand{\MAE}{\ComplexityFont{MA\complexity@hyphen E}} +\newcommand{\MAEXP}{\ComplexityFont{MA\complexity@hyphen EXP}} +\newcommand{\mAL}{\ComplexityFont{mAL}} +\newcommand{\MaxNP}{\ComplexityFont{MaxNP}} +\newcommand{\MaxPB}{\ComplexityFont{MaxPB}} +\newcommand{\MaxSNP}{\ComplexityFont{MaxSNP}} +\newcommand{\MinPB}{\ComplexityFont{MinPB}} +\newcommand{\MIP}{\ComplexityFont{MIP}} +\newcommand{\mL}{\ComplexityFont{mL}} +\newcommand{\mNC}{\ComplexityFont{mNC}} +\newcommand{\mcoNL}{\ComplexityFont{comNL}} +\newcommand{\mNL}{\ComplexityFont{mNL}} +\newcommand{\mNP}{\ComplexityFont{mNP}} +\newcommand{\ModkL}{{\ComplexityFont{Mod}_k\ComplexityFont{L}}} +\newcommand{\ModkP}{{\ComplexityFont{Mod}_k\ComplexityFont{P}}} +\newcommand{\ModP}{\ComplexityFont{ModP}} +\newcommand{\mP}{\ComplexityFont{mP}} +\newcommand{\MP}{\ComplexityFont{MP}} +\newcommand{\MPC}{\ComplexityFont{MPC}} +\newcommand{\mTC}{\ComplexityFont{mTC}} + +% N +\newcommand{\NC}{\ComplexityFont{NC}} +\newcommand{\coNE}{\ComplexityFont{coNE}} +\newcommand{\NE}{\ComplexityFont{NE}} +\newcommand{\NEE}{\ComplexityFont{NEE}} +\newcommand{\NEEE}{\ComplexityFont{NEEE}} +\newcommand{\NEEXP}{\ComplexityFont{NEEXP}} +\newcommand{\coNEXP}{\ComplexityFont{coNEXP}} +\newcommand{\NEXP}{\ComplexityFont{NEXP}} +\newcommand{\coNL}{\ComplexityFont{coNL}} +\newcommand{\NL}{\ComplexityFont{NL}} +\newcommand{\NLIN}{\ComplexityFont{NLIN}} +\newcommand{\coNP}{\ComplexityFont{coNP}} +\newcommand{\NP}{\ComplexityFont{NP}} +\newcommand{\NPC}{\ComplexityFont{NPC}} +\newcommand{\NPI}{\ComplexityFont{NPI}} +\newcommand{\NPSPACE}{\ComplexityFont{NPSPACE}} +\newcommand{\coNQP}{\ComplexityFont{coNQP}} +\newcommand{\NQP}{\ComplexityFont{NQP}} +\newcommand{\NSPACE}{\ComplexityFont{NSPACE}} +\newcommand{\NTIME}{\ComplexityFont{NTIME}} + +% O +\newcommand{\Opt}{\ComplexityFont{Opt}} +\newcommand{\OptP}{\Opt\P} + +% P +\newcommand{\PAC}{\ComplexityFont{PAC}} +\newcommand{\PCD}{\ComplexityFont{PCD}} +\newcommand{\PCP}{\ComplexityFont{PCP}} +\newcommand{\Ppoly}{\P/\poly} +\newcommand{\PH}{\ComplexityFont{PH}} +\newcommand{\PEXP}{\ComplexityFont{PEXP}} +\newcommand{\PL}{\ComplexityFont{PL}} +\newcommand{\PP}{\ComplexityFont{PP}} +\newcommand{\PPSPACE}{\ComplexityFont{PPSPACE}} +\newcommand{\p}{\ComplexityFont{p}} +\newcommand{\Promise}{\ComplexityFont{Promise}} +\newcommand{\PromiseBPP}{\ComplexityFont{PromiseBPP}} +\newcommand{\PromiseBQP}{\ComplexityFont{PromiseBQP}} +\newcommand{\PromiseP}{\ComplexityFont{PromiseP}} +\newcommand{\PromiseRP}{\ComplexityFont{PromiseRP}} +\newcommand{\PrSPACE}{\ComplexityFont{PrSPACE}} +\newcommand{\PSPACE}{\ComplexityFont{PSPACE}} +\newcommand{\PT}{\ComplexityFont{PT}} +\newcommand{\PTAS}{\ComplexityFont{PTAS}} +\newcommand{\PTWK}{\ComplexityFont{PT/WK}} + +% Q +\newcommand{\QAC}{\ComplexityFont{QAC}} +\newcommand{\QACC}{\ComplexityFont{QACC}} +\newcommand{\QAM}{\ComplexityFont{QAM}} +\newcommand{\QCFL}{\ComplexityFont{QCFL}} +\newcommand{\QCMA}{\ComplexityFont{QCMA}} +\newcommand{\QH}{\ComplexityFont{QH}} +\newcommand{\QIP}{\ComplexityFont{QIP}} +\newcommand{\QMA}{\ComplexityFont{QMA}} +\newcommand{\QMAM}{\ComplexityFont{QMAM}} +\newcommand{\QMIP}{\ComplexityFont{QMIP}} +\newcommand{\QNC}{\ComplexityFont{QNC}} +\newcommand{\QP}{\ComplexityFont{QP}} +\newcommand{\QPSPACE}{\ComplexityFont{QPSPACE}} + +% R +\newcommand{\R}{\ComplexityFont{R}} +\newcommand{\coRE}{\ComplexityFont{coRE}} +\newcommand{\RE}{\ComplexityFont{RE}} +\newcommand{\REG}{\ComplexityFont{REG}} +\newcommand{\RL}{\ComplexityFont{RL}} +\newcommand{\coRNC}{\ComplexityFont{coRNC}} +\newcommand{\RNC}{\ComplexityFont{RNC}} +\newcommand{\coRP}{\ComplexityFont{coRP}} +\newcommand{\RP}{\ComplexityFont{RP}} +\newcommand{\RSPACE}{\ComplexityFont{RSPACE}} + +% S +\newcommand{\SAC}{\ComplexityFont{SAC}} +\newcommand{\SC}{\ComplexityFont{SC}} +\newcommand{\SE}{\ComplexityFont{SE}} +\newcommand{\SEH}{\ComplexityFont{SEH}} +\newcommand{\SKC}{\ComplexityFont{SKC}} +\newcommand{\SIZE}{\ComplexityFont{SIZE}} +\newcommand{\SPACE}{\ComplexityFont{SPACE}} +\newcommand{\SL}{\ComplexityFont{SL}} +\newcommand{\coSL}{\ComplexityFont{coSL}} +\newcommand{\SPARSE}{\ComplexityFont{SPARSE}} +\newcommand{\SPL}{\ComplexityFont{SPL}} +\newcommand{\SPP}{\ComplexityFont{SPP}} +\newcommand{\SUBEXP}{\ComplexityFont{SUBEXP}} +\newcommand{\SZK}{\ComplexityFont{SZK}} + +% T +\newcommand{\TC}{\ComplexityFont{TC}} + +% U +\newcommand{\coUP}{\ComplexityFont{coUP}} +\newcommand{\UP}{\ComplexityFont{UP}} + +% V + +% W +\newcommand{\W}{\ComplexityFont{W}} + +% X +\newcommand{\ZPE}{\ComplexityFont{ZPE}} +\newcommand{\ZPP}{\ComplexityFont{ZPP}} +\newcommand{\ZPTIME}{\ComplexityFont{ZPTIME}} + +%%%%%%% Extended Classes +\ifthenelse{\boolean{complexity@fullmode}}{ %THEN we do ALL the classes + +% A +\newcommand{\A}{\ComplexityFont{A}} +\newcommand{\AlgP}{\ComplexityFont{AlgP}} +\newcommand{\Amp}{\ComplexityFont{Amp}} +\newcommand{\AmpMP}{\ComplexityFont{AmpMP}} +\newcommand{\AmpPBQP}{\ComplexityFont{AmpPBQP}} +\newcommand{\APP}{\ComplexityFont{APP}} +\newcommand{\APX}{\ComplexityFont{APX}} +\newcommand{\AUCSPACE}{\ComplexityFont{AUC\complexity@hyphen SPACE}} +\newcommand{\AuxPDA}{\ComplexityFont{AuxPDA}} +\newcommand{\AVBPP}{\ComplexityFont{AVBPP}} +\newcommand{\AvE}{\ComplexityFont{AvE}} +\newcommand{\AvP}{\ComplexityFont{AvP}} +\newcommand{\AW}{\ComplexityFont{AW}} +\newcommand{\AWPP}{\ComplexityFont{AWPP}} + +% B +\newcommand{\betaP}{\beta\ComplexityFont{P}} +\newcommand{\BP}{\ComplexityFont{BP}} + +\newcommand{\BPPpath}{{\ComplexityFont{BPP}_{\complexity@kern\ComplexityFont{path}}}} + +\newcommand{\BPHSPACE}{{\ComplexityFont{BP_{H}SPACE}}} +\newcommand{\BPL}{\ComplexityFont{BPL}} +\newcommand{\BPPOBDD}{\ComplexityFont{BPP\complexity@hyphen OBDD}} +\newcommand{\BPQP}{\ComplexityFont{BPQP}} +\newcommand{\kBQBP}{k\complexity@hyphenright\ComplexityFont{BQBP}} +\newcommand{\BQNC}{\ComplexityFont{BQNC}} +\newcommand{\BQNP}{\ComplexityFont{BQNP}} +\newcommand{\BQPOBDD}{\ComplexityFont{BQP\complexity@hyphen OBDD}} +\newcommand{\kBWBP}{k\complexity@hyphenright\ComplexityFont{BWBP}} + +% C +%\newcommand{\Check}{\ComplexityFont{Check}} this has conflicts with amsmath +\newcommand{\CLOG}{\ComplexityFont{CLOG}} +\newcommand{\CNP}{\ComplexityFont{CNP}} +\newcommand{\cofrIP}{\ComplexityFont{cofrIP}} +\newcommand{\Coh}{\ComplexityFont{Coh}} +\newcommand{\compIP}{\ComplexityFont{compIP}} +\newcommand{\compNP}{\ComplexityFont{compNP}} +\newcommand{\coUCC}{\ComplexityFont{coUCC}} +\newcommand{\CP}{\ComplexityFont{CP}} +\newcommand{\CSL}{\ComplexityFont{CSL}} +\newcommand{\CZK}{\ComplexityFont{CZK}} + +% D +\newcommand{\D}{\ComplexityFont{D}} +\newcommand{\DCFL}{\ComplexityFont{DCFL}} +\newcommand{\DiffAC}{\ComplexityFont{DiffAC}} +\newcommand{\DisNP}{\ComplexityFont{DisNP}} +\newcommand{\DistNP}{\ComplexityFont{DistNP}} +\newcommand{\DP}{\ComplexityFont{DP}} +\newcommand{\DQP}{\ComplexityFont{DQP}} +\newcommand{\Dyn}{\ComplexityFont{Dyn}} +\newcommand{\DynFO}{\ComplexityFont{Dyn\complexity@hyphenright FO}} + +% E +\newcommand{\EL}{\ComplexityFont{EL}} +\newcommand{\ELEMENTARY}{\ComplexityFont{ELEMENTARY}} +\newcommand{\ELkP}{{\ComplexityFont{EL}_{k}\ComplexityFont{P}}} +\newcommand{\kEQBP}{k\complexity@hyphenright\ComplexityFont{EQBP}} +\newcommand{\EQP}{\ComplexityFont{EQP}} +\newcommand{\EQTIME}{\ComplexityFont{EQTIME}} +\newcommand{\EQBP}{\ComplexityFont{EQBP}} +\newcommand{\ExistsBPP}{\ComplexityFont{ExistsBPP}} +\newcommand{\ExistsNISZK}{\ComplexityFont{ExistsNISZK}} + + +% F +\newcommand{\FBQP}{\ComplexityFont{FBQP}} +\newcommand{\Few}{\ComplexityFont{Few}} +\newcommand{\FewP}{\ComplexityFont{FewP}} +\newcommand{\FH}{\ComplexityFont{FH}} +\newcommand{\FO}{\ComplexityFont{FO}} +\newcommand{\FOLL}{\ComplexityFont{FOLL}} +\newcommand{\FPR}{\ComplexityFont{FPR}} +\newcommand{\FPT}{\ComplexityFont{FPT}} +\newcommand{\FPTAS}{\ComplexityFont{FPTAS}} +\newcommand{\FPTnu}{{\ComplexityFont{FPT}_{\complexity@kern\ComplexityFont{nu}}}} +\newcommand{\FPTsu}{{\ComplexityFont{FPT}_{\complexity@kern\ComplexityFont{su}}}} +\newcommand{\frIP}{\ComplexityFont{frIP}} +\newcommand{\FTAPE}{\ComplexityFont{F\complexity@hyphen TAPE}} +\newcommand{\FTIME}{\ComplexityFont{F\complexity@hyphen TIME}} + +%G +\newcommand{\G}{\ComplexityFont{G}} +\newcommand{\GANSPACE}{\ComplexityFont{GAN\complexity@hyphen SPACE}} +\newcommand{\GC}{\ComplexityFont{GC}} +\newcommand{\GCSL}{\ComplexityFont{GCSL}} +\newcommand{\GPCD}{\ComplexityFont{GPCD}} + +% H +\newcommand{\HkP}{{\ComplexityFont{H}_k\ComplexityFont{P}}} +\newcommand{\HVSZK}{\ComplexityFont{HVSZK}} + +% I +\newcommand{\IC}{\ComplexityFont{IC}} +\newcommand{\IPP}{\ComplexityFont{IPP}} + +% J +% What? No "J" classes? + +% K + +% L +\newcommand{\LkP}{{\ComplexityFont{L}_k\ComplexityFont{P}}} +\newcommand{\LOGCFL}{\ComplexityFont{LOGCFL}} +\newcommand{\LOGNP}{\ComplexityFont{LOGNP}} +\newcommand{\LOGSNP}{\ComplexityFont{LOGSNP}} +\newcommand{\LWPP}{\ComplexityFont{LWPP}} + +% M +\newcommand{\M}{\ComplexityFont{M}} +\newcommand{\ModZkL}{{\ComplexityFont{ModZ}_k\ComplexityFont{L}}} +\newcommand{\MkP}{{\ComplexityFont{(M}_k\ComplexityFont{)P}}} + +% N +\newcommand{\NAuxPDA}{\ComplexityFont{NAuxPDA}} +\newcommand{\NIPZK}{\ComplexityFont{NIPZK}} +\newcommand{\NIQPZK}{\ComplexityFont{NIQPZK}} +\newcommand{\NIQSZK}{\ComplexityFont{NIQSZK}} +\newcommand{\NISZK}{\ComplexityFont{NISZK}} +\newcommand{\NLOG}{\ComplexityFont{NLOG}} +\newcommand{\NPMV}{\ComplexityFont{NPMV}} +\newcommand{\NPMVsel}{\ComplexityFont{NPMV\complexity@hyphenleft sel}} +\newcommand{\NPO}{\ComplexityFont{NPO}} +\newcommand{\NPOPB}{\ComplexityFont{NPOPB}} +\newcommand{\NPSV}{\ComplexityFont{NPSV}} +\newcommand{\NPSVsel}{\ComplexityFont{NPSV\complexity@hyphenleft sel}} %don't use a \complexity@hyphen here, it looks bad +\newcommand{\NT}{\ComplexityFont{NT}} + +% O +\newcommand{\OBDD}{\ComplexityFont{OBDD}} +\newcommand{\OCQ}{\ComplexityFont{OCQ}} + +% P +\newcommand{\PBP}{\ComplexityFont{PBP}} +\newcommand{\kPBP}{k\complexity@hyphenright\ComplexityFont{PBP}} %don't use a \complexity@hyphen here, it looks bad +\newcommand{\Pclose}{\ComplexityFont{P\complexity@hyphenleft close}} +\newcommand{\PermUP}{\ComplexityFont{PermUP}} +\newcommand{\PF}{\ComplexityFont{PF}} +\newcommand{\PFCHK}{\ComplexityFont{PFCHK}} +\newcommand{\PhP}{\ComplexityFont{PhP}} +\newcommand{\PINC}{\ComplexityFont{PINC}} +\newcommand{\PIO}{\ComplexityFont{PIO}} +\newcommand{\PKC}{\ComplexityFont{PKC}} +\newcommand{\PLF}{\ComplexityFont{PL}} +\newcommand{\PLL}{\ComplexityFont{PLL}} +\newcommand{\PLS}{\ComplexityFont{PLS}} +\newcommand{\POBDD}{\ComplexityFont{P\complexity@hyphen OBDD}} +\newcommand{\PODN}{\ComplexityFont{PODN}} +\newcommand{\polyL}{\ComplexityFont{polyL}} +\newcommand{\PostBQP}{\ComplexityFont{PostBQP}} +\newcommand{\PPA}{\ComplexityFont{PPA}} +\newcommand{\PPAD}{\ComplexityFont{PPAD}} +\newcommand{\PPADS}{\ComplexityFont{PPADS}} +\newcommand{\PPP}{\ComplexityFont{PPP}} +\newcommand{\PQUERY}{\ComplexityFont{PQUERY}} +\newcommand{\PR}{\ComplexityFont{PR}} +\newcommand{\PrHSPACE}{{\ComplexityFont{Pr}_{\ComplexityFont{H}}\ComplexityFont{SPACE}}} +\newcommand{\promiseBPP}{\ComplexityFont{promiseBPP}} +\newcommand{\promiseBQP}{\ComplexityFont{promiseBQP}} +\newcommand{\promiseP}{\ComplexityFont{promiseP}} +\newcommand{\promiseRP}{\ComplexityFont{promiseRP}} +\newcommand{\PSel}{\ComplexityFont{P\complexity@hyphen Sel}} +\newcommand{\PSK}{\ComplexityFont{PSK}} +\newcommand{\PTAPE}{\ComplexityFont{PTAPE}} +\newcommand{\PZK}{\ComplexityFont{PZK}} + +% Q +\newcommand{\QPLIN}{\ComplexityFont{QPLIN}} +\newcommand{\Qpoly}{\ComplexityFont{Qpoly}} +\newcommand{\QMIPle}{{\ComplexityFont{QMIP}_{\complexity@kern\ComplexityFont{le}}}} +\newcommand{\QMIPne}{{\ComplexityFont{QMIP}_{\complexity@kern\ComplexityFont{ne}}}} +\newcommand{\QSZK}{\ComplexityFont{QSZK}} + +% R +\newcommand{\RevSPACE}{\ComplexityFont{RevSPACE}} +\newcommand{\RHL}{{\ComplexityFont{R}_{\ComplexityFont{H}}\ComplexityFont{L}}} +\newcommand{\RHSPACE}{{\ComplexityFont{R}_{\ComplexityFont{H}}\ComplexityFont{SPACE}}} +\newcommand{\RNP}{\ComplexityFont{RNP}} +\newcommand{\RPP}{\ComplexityFont{RPP}} + +% S +\newcommand{\SAPTIME}{\ComplexityFont{SAPTIME}} +\newcommand{\SBP}{\ComplexityFont{SBP}} +\newcommand{\Sel}{\ComplexityFont{Sel}} +\newcommand{\SelfNP}{\ComplexityFont{SelfNP}} +\newcommand{\SF}{\ComplexityFont{SF}} +\newcommand{\SLICEWISEPSPACE}{\ComplexityFont{SLICEWISEPSPACE}} +\newcommand{\SNP}{\ComplexityFont{SNP}} +\newcommand{\SOE}{\ComplexityFont{SO\complexity@hyphen E}} +\newcommand{\SP}{\ComplexityFont{SP}} +\newcommand{\spanP}{\ComplexityFont{span}\complexity@hyphenright\ComplexityFont{P}} +\newcommand{\symP}{\ComplexityFont{symP}} + +% T +\newcommand{\TALLY}{\ComplexityFont{TALLY}} +\newcommand{\TFNP}{\ComplexityFont{TFNP}} +\newcommand{\ThC}{\ComplexityFont{ThC}} +\newcommand{\TreeBQP}{\ComplexityFont{TreeBQP}} +\newcommand{\TREEREGULAR}{\ComplexityFont{TREE\complexity@hyphen REGULAR}} + +%U +\newcommand{\UAP}{\ComplexityFont{UAP}} +\newcommand{\UCC}{\ComplexityFont{UCC}} +\newcommand{\UL}{\ComplexityFont{UL}} +\newcommand{\UE}{\ComplexityFont{UE}} +\newcommand{\US}{\ComplexityFont{US}} + +% V +\newcommand{\VNC}{\ComplexityFont{VNC}} +\newcommand{\VNP}{\ComplexityFont{VNP}} +\newcommand{\VP}{\ComplexityFont{VP}} +\newcommand{\VQP}{\ComplexityFont{VQP}} + +% W +\newcommand{\WAPP}{\ComplexityFont{WAPP}} +\newcommand{\WPP}{\ComplexityFont{WPP}} + +% X +\newcommand{\XORMIP}{{\ComplexityFont{XOR\complexity@hyphen MIP}^*[2,1]}} +\newcommand{\XP}{\ComplexityFont{XP}} +\newcommand{\XPuniform}{{\ComplexityFont{XP}_{\complexity@kern\ComplexityFont{uniform}}}} + +% Y +\newcommand{\YACC}{\ComplexityFont{YACC}} + +% Z + +% We now include the user defined commands which must be in a file named +% mycomplexity +% We use this convention because the primitive \input may load packages +% more than once, leading to unnecessary redefinitions and strange results + +}{} + +\InputIfFileExists{mycomplexity.sty}{}{\PackageWarning{complexity}{User Defined Commands file `mycomplexity.sty' not found, it will not be loaded.}} -- cgit v1.2.3