%% %% This is file `jmlr.cls', %% generated with the docstrip utility. %% %% The original source files were: %% %% jmlr.dtx (with options: `jmlr.cls,package') %% %% jmlr.dtx %% Copyright 2020 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% 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.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot. %% %% This work consists of the files jmlr.dtx and jmlr.ins and the derived files jmlrutils.sty, jmlr.cls, jmlrbook.cls. %% %% \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 \~} %% First editor: %% Second editor: \NeedsTeXFormat{LaTeX2e} \ProvidesClass{jmlr}[2020/09/21 v1.28 (NLCT) Journal of Machine Learning Research] \RequirePackage{xkeyval} \RequirePackage{calc} \RequirePackage{etoolbox} \providecommand*{\jmlrprehyperref}{} \newif\if@openright \newif\if@mainmatter \@mainmattertrue \@ifundefined{ifgrayscale}{ \newif\ifgrayscale \grayscalefalse }{} \DeclareOptionX{color}{\grayscalefalse \PassOptionsToPackage{color}{xcolor}} \DeclareOptionX{gray}{\grayscaletrue \PassOptionsToPackage{gray}{xcolor}} \DeclareOptionX{draft}{\setlength\overfullrule{5pt}} \DeclareOptionX{final}{\setlength\overfullrule{0pt}} \newif\iftablecaptiontop \tablecaptiontoptrue \newcommand{\tableconts}[3]{% \iftablecaptiontop #2\label{#1}\vskip\baselineskip {\centering #3\par}% \else {\centering #3\par}% \vskip\baselineskip #2\label{#1}% \fi } \DeclareOptionX{tablecaptiontop}{\tablecaptiontoptrue} \DeclareOptionX{tablecaptionbottom}{\tablecaptiontopfalse} \define@choicekey{jmlr.cls}{tablecaption}[\val\nr]{top,bottom}{% \ifcase\nr\relax \tablecaptiontoptrue \or \tablecaptiontopfalse \fi } \newif\ifjmlrhtml \jmlrhtmlfalse \DeclareOptionX{html}{% \ClassWarning{jmlr}{html option is now deprecated}% \jmlrhtmltrue} \DeclareOptionX{nohtml}{\jmlrhtmlfalse} \def\pt@size{11pt} \DeclareOptionX{10pt}{\renewcommand{\pt@size}{10pt}} \DeclareOptionX{11pt}{\renewcommand{\pt@size}{11pt}} \DeclareOptionX{12pt}{\renewcommand{\pt@size}{12pt}} \newcommand*{\@jmlrproceedings}{Journal of Machine Learning Research} \newcommand*{\@jmlrabbrvproceedings}{JMLR} \newcommand*{\jmlrproceedings}[2]{% \renewcommand*{\@jmlrabbrvproceedings}{#1}% \renewcommand*{\@jmlrproceedings}{#2}% } \newcommand*{\jmlrnowcp}{% \jmlrproceedings{JMLR}{Journal of Machine Learning Research}% } \newcommand*{\jmlrwcp}{% \jmlrproceedings{JMLR W\&CP}{JMLR: Workshop and Conference Proceedings}% } \newcommand*{\jmlrpmlr}{% \jmlrproceedings{PMLR}{Proceedings of Machine Learning Research}% } \DeclareOptionX{nowcp}{\jmlrnowcp} \DeclareOptionX{wcp}{\jmlrwcp} \DeclareOptionX{pmlr}{\jmlrpmlr} \DeclareOptionX{oneside}{\@twosidefalse \@mparswitchfalse} \DeclareOptionX{twoside}{\@twosidetrue \@mparswitchtrue} \@twosidetrue \newif\ifviiXx \viiXxfalse \DeclareOptionX{7x10}{\viiXxtrue} \DeclareOptionX{letterpaper}{\PassOptionsToPackage{letterpaper}{typearea}} \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{article}} \ExecuteOptions{letterpaper} \ProcessOptionsX \if@twoside \PassOptionsToClass{twoside}{article} \fi \LoadClass[\pt@size]{article} \ifviiXx \setlength{\paperwidth}{7in} \setlength{\paperheight}{10in} \setlength{\textwidth}{5.25in} \setlength{\textheight}{8.2in} \setlength{\topmargin}{0.4in} \setlength{\headheight}{0.2in} \setlength{\headsep}{0.2in} \setlength{\hoffset}{-1in} \setlength{\voffset}{-1in} \setlength{\evensidemargin}{0.75in} \setlength{\oddsidemargin}{1.0in} \else \setlength{\oddsidemargin}{0.25in} \setlength{\evensidemargin}{0.25in} \setlength{\marginparwidth}{0.07 true in} \setlength{\topmargin}{-0.5in} \addtolength{\headsep}{0.25in} \setlength{\textheight}{8.5 true in} \setlength{\textwidth}{6.0 true in} \fi \AtEndDocument{\@jmlrenddoc} \RequirePackage{amsmath} \RequirePackage{amssymb} \RequirePackage{natbib} \RequirePackage{graphicx} \RequirePackage{url} \PassOptionsToPackage{x11names}{xcolor} \RequirePackage{xcolor} \PassOptionsToPackage{algo2e,ruled}{algorithm2e} \RequirePackage{algorithm2e} \setlength\algomargin{0pt} \RequirePackage{jmlrutils} \jmlrprehyperref \@ifundefined{@pre@hyperref}{}{\@pre@hyperref} \RequirePackage{hyperref} \RequirePackage{nameref} \@ifundefined{@post@hyperref}{}{\@post@hyperref} \hypersetup{colorlinks, linkcolor=blue, citecolor=blue, urlcolor=magenta, linktocpage, plainpages=false} \ifgrayscale \hypersetup{draft} \fi \renewcommand{\topfraction}{0.95} % let figure take up nearly whole page \renewcommand{\textfraction}{0.05} % let figure take up nearly whole page \widowpenalty=10000\relax \clubpenalty=10000\relax \@mparswitchtrue \bibliographystyle{plainnat} \bibpunct{(}{)}{;}{a}{,}{,} \renewcommand{\section}{\@startsection{section}{1}{\z@}% {-0.24in \@plus -1ex \@minus -.2ex}% {0.10in \@plus.2ex}% {\normalfont\rmfamily\bfseries\large\raggedright}% } \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% {-0.20in \@plus -1ex \@minus -.2ex}% {0.08in \@plus .2ex}% {\normalfont\rmfamily\bfseries\normalsize\raggedright}% } \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-0.18in \@plus -1ex \@minus -.2ex}% {0.08in \@plus .2ex}% {\normalfont\normalsize\rmfamily\mdseries\scshape\raggedright}% } \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% {1.5ex plus 0.5ex minus .2ex}% {-1em}% {\normalfont\normalsize\rmfamily\bfseries}% } \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% {1.5ex plus 0.5ex minus .2ex}% {-1em}% {\normalfont\normalsize\rmfamily\bfseries\itshape}} \renewcommand*\@seccntformat[1]{% \csname pre#1num\endcsname \csname the#1\endcsname.\enskip } \renewcommand*{\@makefntext}[1]{% \@setpar {% \@@par \@tempdima\hsize \advance \@tempdima -15pt\relax \parshape \@ne 15pt \@tempdima }% \par \parindent 2em\noindent \hbox to \z@ {\hss {\@thefnmark }\footnoteseptext\hfil }#1% } \newcommand*{\footnoteseptext}{. } \renewcommand*{\thanks}[1]{% \refstepcounter{mpfootnote}% \footnotemark[\number\value{mpfootnote}]% \xappto\@thanks{\noexpand\footnotetext[\number\value{mpfootnote}]{#1}}% } \ifjmlrhtml \renewenvironment{abstract}{\HCode{

}Abstract\HCode{

}}{}% \else \renewenvironment{abstract} {{\centering\large\bfseries Abstract\par}\vspace{0.7ex}% \bgroup \leftskip 20pt\rightskip 20pt\small\noindent\ignorespaces}% {\par\egroup\vskip 0.25ex} \fi \newenvironment{keywords} {\bgroup\leftskip 20pt\rightskip 20pt \small\noindent{\bfseries Keywords:} \ignorespaces}% {\par\egroup\vskip 0.25ex} \newlength\aftertitskip \newlength\beforetitskip \newlength\interauthorskip \newlength\aftermaketitskip %% Changeable parameters. \setlength\aftertitskip{0.1in plus 0.2in minus 0.2in} \setlength\beforetitskip{0.05in plus 0.08in minus 0.08in} \setlength\interauthorskip{0.08in plus 0.1in minus 0.1in} \setlength\aftermaketitskip{0.3in plus 0.1in minus 0.1in} \newcommand*{\titlebreak}{\newline} \newcommand*{\titletag}[1]{} \renewcommand*{\title}[2][\@title]{% \def\@shorttitle{#1}% \def\@title{#2}% \protected@write\@auxout{}{\string\jmlr@title{#1}{#2}}% \jmlrtitlehook } \newcommand*{\@shorttitle}{\jobname} \newcommand*{\jmlrtitlehook}{} \newcommand*{\jmlr@title}[2]{} \renewcommand*{\author}[2][]{% \def\@author{#2}% \def\@sauthor{#1}% \def\@jmlr@aux@author{#2}\@onelevel@sanitize\@jmlr@aux@author \ifx\@sauthor\@empty \let\@jmlr@aux@sauthor\@jmlr@aux@author \else \let\@shortauthor\@sauthor \def\@jmlr@aux@sauthor{#1}\@onelevel@sanitize\@jmlr@aux@sauthor \fi \jmlrauthorhook \protected@write\@auxout {}{\string\jmlr@author{\@jmlr@aux@sauthor}{\@jmlr@aux@author}}% } \newcommand*{\jmlrauthorhook}{} \newcommand*{\jmlr@author}[2]{} \newcommand*{\@shortauthor}{} \newcommand*{\@firstauthor}{} \newcommand*{\@firstsurname}{} \newlength\jmlrlength \def\jmlrmaketitle{% \jmlrpremaketitlehook \def\@jmlr@authors@sep{, }% \par \begingroup \def\footnoteseptext{ }% \def\thempfn{\textsuperscript{\thefootnote}}% \def\thefootnote{\fnsymbol{footnote}}% \if@twocolumn \twocolumn[\@jmlrmaketitle]% \else \@jmlrmaketitle \fi \@thanks \endgroup \label{jmlrstart}% \ifx\@sauthor\@empty \settowidth{\jmlrlength}{\@evenhead}% \ifdim\jmlrlength>\textwidth \def\@shortauthor{\@firstsurname\space et al.}% \fi \fi \settowidth{\jmlrlength}{\@titlefoot}% \ifdim\jmlrlength>\textwidth \def\@jmlrauthors{\@firstauthor\space \emph{et al}}% \fi \jmlrmaketitlehook \thispagestyle{jmlrtps}% \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\let\thanks\@gobble \def\@jmlr@authors@sep{ \& }% } \newcommand*{\jmlrmaketitlehook}{} \newcommand*{\jmlrpremaketitlehook}{} \newcommand{\jmlrhtmlmaketitle}{% \ifx\@jmlr@authors\@empty \sbox\jmlrbox{\let\addr\relax\@author}% \fi \noindent\HCode{

}\@title\HCode{

} \noindent\@jmlr@authors } %%\begin{macro}{\jmlrbox} \newsavebox\jmlrbox \ifjmlrhtml \let\maketitle\jmlrhtmlmaketitle \else \let\maketitle\jmlrmaketitle \fi \def\@startauthor{\noindent \normalsize\bfseries} \def\@endauthor{} \def\@starteditor{\noindent \small {\bfseries \@edname:~}} \def\@endeditor{\normalsize} \def\jmlrpretitle{\vskip\beforetitskip\begin{center}\Large\bfseries} \def\jmlrposttitle{\par\end{center}\vskip\aftertitskip} \newcommand*{\nametag}[1]{} \def\jmlrpreauthor{% \bgroup \def\nametag##1{##1}% \def\and{\unskip\enspace{\normalfont and}\enspace}% \def\addr{\mdseries\small\itshape}% \def\name{\ClassError{jmlr}{Use \string\Name{Author's Name} not \string\name}{}}% \def\email{\ClassError{jmlr}{Use \string\Email{address} not \string\email}{}}% \def\AND{\@endauthor\normalfont\hss \vskip \interauthorskip \@startauthor}% \@startauthor } \newcommand{\addr}{} \def\@email{\hfill\small\mdseries\scshape}% \def\@name{\normalsize\upshape\bfseries}% \def\@parsename#1 #2\end@parsename{% \def\@tmp{#2}% \ifx\@tmp\@nnil \def\@surname{#1}% \let\@nextparsename\@parsenamenoop \else \@getinitial#1-\relax\relax\end@getinitial \ifx\@forenames\@empty \def\@forenames{#1}% \protected@edef\@initials{\@initial}% \else \expandafter\toks@\expandafter{\@forenames}% \edef\@forenames{\space\the\toks@}% \expandafter\toks@\expandafter{\@initials}% \protected@edef\@initials{\the\toks@\@initial}% \fi \let\@nextparsename\@parsename \fi \@nextparsename#2\end@parsename } \def\@parsenamenoop#1\end@parsename{} \def\@getinitial#1#2-#3#4\end@getinitial{% \def\@jmlr@tmp{#3}% \if\@jmlr@tmp\relax \def\@initial{#1.}% \else \def\@initial{#1.-#3.}% \fi } \newcommand*{\Name}[2][]{% \def\@authorlist{#1}% \def\@forenames{}% \def\@surname{}% \def\nametag##1{}% \@parsename#2 \@nil\end@parsename \ifx\@shortauthor\@empty \ifx\@sauthor\@empty \global\let\@shortauthor\@surname \global\let\@firstsurname\@surname \fi \ifx\@authorlist\@empty \protected@xdef\@jmlrauthors{\@initials\space\@surname}% \else \protected@xdef\@jmlrauthors{\@authorlist}% \fi \global\let\@firstauthor\@jmlrauthors \else \ifx\@sauthor\@empty \expandafter\toks@\expandafter{\@shortauthor}% \protected@xdef\@shortauthor{\the\toks@\space\@surname}% \fi \ifx\@authorlist\@empty \ifx\@jmlrauthors\@empty \protected@xdef\@jmlrauthors{\@initials\space\@surname}% \else \protected@xdef\@jmlrauthors{\@jmlrauthors \noexpand\@jmlr@authors@sep \@initials\space\@surname}% \fi \else \ifx\@jmlrauthors\@empty \protected@xdef\@jmlrauthors{\@authorlist}% \else \protected@xdef\@jmlrauthors{\@jmlrauthors \noexpand\@jmlr@authors@sep \@authorlist }% \fi \fi \fi \def\nametag##1{##1}% \@name #2% } \newcommand*{\jmlrabbrnamelist}[1]{% \def\nametag##1{}% \def\@jmlr@authors@sep{, }% \def\@jmlr@namelist{}% \@for\@thisname:=#1\do{% \expandafter\@jmlrabbrname\expandafter{\@thisname}% \ifx\@jmlr@namelist\@empty \protected@edef\@jmlr@namelist{% \@initials\space\@surname }% \else \protected@edef\@jmlr@namelist{% \@jmlr@namelist \noexpand\@jmlr@authors@sep \@initials\space\@surname }% \fi }% \def\@jmlr@authors@sep{ \& }% \@jmlr@namelist } \newcommand*{\@jmlrabbrname}[1]{% \def\@initials{}% \def\@surname{}% \def\@forenames{}% \@parsename#1 \@nil\end@parsename } \newcommand*{\Email}[1]{{\@email #1}} \def\jmlrpostauthor{\@endauthor\egroup \par \vskip \aftermaketitskip \noindent \ifx\@editor\@empty \else \@starteditor \@editor \@endeditor \fi \vskip \aftermaketitskip } \def\@jmlrmaketitle{% {% \jmlrpretitle {% \def\titletag##1{##1}% \@title }% \jmlrposttitle \jmlrpreauthor \ignorespaces\@author \jmlrpostauthor }% } \newcommand*\kernelmachines{(for {\textsc{http://www.kernel-machines.org}})} \newcommand*{\editorname}{Editor} \newcommand*{\editorsname}{Editors} \let\@edname\editorname \def\@editor{} \def\editor#1{% \global\let\@edname\editorname \gdef\@editor{#1}% } \def\editors#1{% \global\let\@edname\editorsname \gdef\@editor{#1}% } \def\firstpageno#1{\setcounter{page}{#1}} \@ifundefined{startpage}{}{\firstpageno{\startpage}} \newcommand*{\@jmlrenddoc}{% \phantomsection \protected@edef\@currentlabelname{end of \@shorttitle}% \label{jmlrend}\null \global\let\@reprint\@empty } \newcommand*{\@titlefoot}{\scriptsize\copyright\space\@jmlryear \space\@jmlr@authors.\hfill \@reprint } \let\@reprint\@empty \newcommand{\reprint}[1]{% \gdef\@reprint{Reprinted with permission for JMLR#1}} \newcommand\ps@jmlrtps{% \let\@mkboth\@gobbletwo \def\@oddhead{\scriptsize \@jmlrproceedings \ifx\@jmlrvolume\@empty \else \space\@jmlrvolume \ifx\@jmlrissue\@empty\else(\@jmlrissue)\fi \ifx\@jmlrpages\@empty \ifx\@jmlryear\@empty \else \if\@jmlrissue\@empty,\fi \fi \else :% \fi \fi \ifx\@jmlrpages\@empty \else \ifx\@jmlrvolume\@empty\space\fi \@jmlrpages \ifx\@jmlryear\@empty\else,\fi \fi \ifx\@jmlryear\@empty\else\space\@jmlryear\fi \hfill \ifx\@jmlrworkshop\@empty \ifx\@jmlrsubmitted\@empty \else Submitted \@jmlrsubmitted \ifx\@jmlrpublished\@empty\else;\fi \fi \ifx\@jmlrpublished\@empty \else \space Published \@jmlrpublished \fi \else \space\@jmlrworkshop \fi }% \let\@evenhead\@oddhead \def\@oddfoot{\@titlefoot}% \let\@evenfoot\@oddfoot } \def\ps@jmlrps{% \let\@mkboth\@gobbletwo \def\@oddhead{\hfill {\small\scshape \@shorttitle} \hfill}% \def\@oddfoot{\hfill \small\rmfamily \thepage \hfill}% \def\@evenhead{\hfill {\small\scshape \@shortauthor} \hfill}% \def\@evenfoot{\hfill \small\rmfamily \thepage \hfill}% }% \pagestyle{jmlrps} \providecommand*{\@jmlrvolume}{} \newcommand*{\jmlrvolume}[1]{\renewcommand*{\@jmlrvolume}{#1}} \providecommand*{\@jmlrissue}{} \newcommand*{\jmlrissue}[1]{\renewcommand*{\@jmlrissue}{#1}} \providecommand*{\@jmlryear}{} \newcommand*{\jmlryear}[1]{\renewcommand*{\@jmlryear}{#1}} \providecommand*\@jmlrpages{\pageref{jmlrstart}--\pageref{jmlrend}} \newcommand*{\jmlrpages}[1]{\renewcommand*{\@jmlrpages}{#1}} \providecommand*\@jmlrsubmitted{} \newcommand*{\jmlrsubmitted}[1]{\renewcommand*{\@jmlrsubmitted}{#1}} \providecommand*\@jmlrpublished{} \newcommand*{\jmlrpublished}[1]{\renewcommand*{\@jmlrpublished}{#1}} \providecommand*\@jmlrworkshop{} \newcommand*{\jmlrworkshop}[1]{% \renewcommand*{\@jmlrworkshop}{#1}% \protected@write\@auxout{}{\string\jmlr@workshop{#1}}% } \newcommand*{\jmlr@workshop}[1]{} \renewcommand*{\date}[1]{% \renewcommand*{\@date}{#1}% \protected@write\@auxout{}{\string\jmlr@date{#1}}% } \newcommand*{\jmlr@date}[1]{} \newcommand*{\@jmlrauthors}{} \newcommand*{\@jmlr@authors}{\@jmlrauthors} \newcommand*{\jmlrauthors}[1]{\global\def\@jmlr@authors{#1}} \def\figurecaption#1#2{\noindent\hangindent 40pt \hbox to 36pt {\small\slshape #1 \hfil} \ignorespaces {\small #2}} \def\figurecenter#1#2{\centerline{{\slshape #1} #2}} \def\figurecenter#1#2{\centerline{{\small\slshape #1} {\small #2}}} \long\def\@makecaption#1#2{% \vskip 10pt \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: \begin{list}{#1:}{% \settowidth{\labelwidth}{#1:} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} }\item #2 \end{list}\par % Output in quote mode \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} \def\abovestrut#1{\rule[0in]{0in}{#1}\ignorespaces} \def\belowstrut#1{\rule[-#1]{0in}{#1}\ignorespaces} \newcommand{\acks}[1]{\section*{Acknowledgments}#1} \newcommand{\researchnote}[1]{\noindent {\LARGE\itshape Research Note} #1} \providecommand{\ifprint}[2]{\ifgrayscale#1\else#2\fi} \ifjmlrhtml \else \let\@org@Ginclude@graphics\Ginclude@graphics \def\@jmlr@old@Ginclude@graphics#1{% \begingroup \let\input@path\Ginput@path \ifprint{\filename@parse{#1-gray}}{\filename@parse{#1}}% \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \else \ifprint{\filename@parse{#1}}{}% \Gin@getbase{\Gin@sepdefault\filename@ext}% \ifx\Gin@ext\relax \@warning{File `#1' not found}% \def\Gin@base{\filename@area\filename@base}% \edef\Gin@ext{\Gin@sepdefault\filename@ext}% \fi \fi \ifx\Gin@ext\relax \ifprint{\@org@Ginclude@graphics{#1}}% {% \@latex@error{File `#1' not found}% {I could not locate the file with any of these extensions:^^J% \Gin@extensions^^J\@ehc}% }% \else \@ifundefined{Gin@rule@\Gin@ext}% {\ifx\Gin@rule@*\@undefined \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc \else \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}% \fi}% {\expandafter\expandafter\expandafter\Gin@setfile \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}% \fi \endgroup} \def\@jmlr@new@Ginclude@graphics#1{% \ifx\detokenize\@undefined\else \edef\Gin@extensions{\detokenize\expandafter{\Gin@extensions}}% \fi \begingroup \let\input@path\Ginput@path \ifprint{\set@curr@file{#1-gray}}{\set@curr@file{#1}}% \expandafter\filename@parse\expandafter{\@curr@file}% \ifx\filename@ext\Gin@gzext \expandafter\filename@parse\expandafter{\filename@base}% \ifx\filename@ext\relax \let\filename@ext\Gin@gzext \else \edef\Gin@ext{\Gin@ext\Gin@sepdefault\Gin@gzext}% \fi \fi \let\@jmlr@filename@ext\filename@ext \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \ifprint {\ifx\Gin@ext\relax \set@curr@file{#1}% \expandafter\filename@parse\expandafter{\@curr@file}% \ifx\filename@ext\Gin@gzext \expandafter\filename@parse\expandafter{\filename@base}% \ifx\filename@ext\relax \let\filename@ext\Gin@gzext \else \edef\Gin@ext{\Gin@ext\Gin@sepdefault\Gin@gzext}% \fi \fi \let\@jmlr@filename@ext\filename@ext \ifx\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \fi \fi}{}% \fi \ifx\@jmlr@filename@ext\relax \else \Gin@getbase{\Gin@sepdefault\filename@ext}% \ifx\Gin@ext\relax \let\Gin@savedbase\filename@base \let\Gin@savedext\filename@ext \edef\filename@base{\filename@base\Gin@sepdefault\filename@ext}% \let\filename@ext\relax \@for\Gin@temp:=\Gin@extensions\do{% \ifx\Gin@ext\relax \Gin@getbase\Gin@temp \fi}% \ifx\Gin@ext\relax \let\filename@base\Gin@savedbase \let\filename@ext\Gin@savedext \fi \fi \ifx\Gin@ext\relax \@warning{File `#1' not found}% \def\Gin@base{\filename@area\filename@base}% \edef\Gin@ext{\Gin@sepdefault\filename@ext}% \fi \fi \ifx\Gin@ext\relax \@latex@error{File `#1' not found}% {I could not locate the file with any of these extensions:^^J% \Gin@extensions^^J\@ehc}% \else \@ifundefined{Gin@rule@\Gin@ext}% {\ifx\Gin@rule@*\@undefined \@latex@error{Unknown graphics extension: \Gin@ext}\@ehc \else \expandafter\Gin@setfile\Gin@rule@*{\Gin@base\Gin@ext}% \fi}% {\expandafter\expandafter\expandafter\Gin@setfile \csname Gin@rule@\Gin@ext\endcsname{\Gin@base\Gin@ext}}% \fi \endgroup } \@ifpackagelater{graphics}{2019/07/01} {\let\Ginclude@graphics\@jmlr@new@Ginclude@graphics}% {\let\Ginclude@graphics\@jmlr@old@Ginclude@graphics}% \fi \newcommand{\artappendix}{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}} \def\theHsection{\theHchapter.\Alph{section}} \def\presectionnum{Appendix~}% } \let\appendix\artappendix \newcommand{\booklinebreak}[1][]{} \newcounter{chapter} \renewcommand\thechapter{\@arabic\c@chapter} \newcommand\@chapapp{\chaptername} \@addtoreset{section}{chapter} \newcommand*\chaptermark[1]{} \newcommand\bookchapter{% \if@openright\cleardoublepage\else\clearpage\fi \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \newcommand\artchapter{% \ClassError{jmlr}{Chapters not permitted in articles}{}} \let\chapter\artchapter \def\@chaptoclabel{chapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \if@mainmatter \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{\@chaptoclabel}% {\protect\numberline{\thechapter}#1}% \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \else \addcontentsline{toc}{\@chaptoclabel}{#1}% \fi \chaptermark{#1}% \addtocontents{lof}{\protect\addvspace{10\p@}}% \addtocontents{lot}{\protect\addvspace{10\p@}}% \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \newcommand{\chaptertitleformat}[1]{% \Huge\bfseries#1% } \newcommand{\chapternumberformat}[1]{% \huge\bfseries \@chapapp\space#1\par\nobreak \vskip 20\p@ } \newcommand*{\chapterformat}{\raggedright} \newlength\postchapterskip \setlength\postchapterskip{40pt} \newlength\prechapterskip \setlength\prechapterskip{50pt} \def\@makechapterhead#1{% \null\vskip\prechapterskip {\parindent \z@ \normalfont\chapterformat \ifnum \c@secnumdepth >\m@ne \if@mainmatter \chapternumberformat{\thechapter}% \fi \fi \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading \fi} \def\@makeschapterhead#1{% \vspace*{\prechapterskip}% {\parindent \z@ \normalfont\chapterformat \interlinepenalty\@M \chaptertitleformat{#1}\par\nobreak \vskip \postchapterskip }} \newcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \vskip 1.0em \@plus\p@ \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \large\bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup \fi} \let\l@appendix\l@chapter \newcommand\chaptername{Chapter} \newcommand\frontmatter{% \cleardoublepage \@mainmatterfalse \renewcommand*{\theHchapter}{front-\thechapter}% \pagenumbering{roman}% \morefrontmatter } \newcommand\morefrontmatter{} \newcommand\mainmatter{% \cleardoublepage \@mainmattertrue \setcounter{chapter}{0}% \renewcommand*{\theHchapter}{\thechapter}% \pagenumbering{arabic}% \moremainmatter } \newcommand\moremainmatter{} \newcommand\backmatter{% \if@openright \cleardoublepage \else \clearpage \fi \@mainmatterfalse} \newcommand*{\booktocpreamble}{} \newcommand*{\booktocpostamble}{} \newcommand\booktableofcontents{% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \chapter*{\contentsname \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% \booktocpreamble \@starttoc{toc}% \booktocpostamble \if@restonecol \twocolumn \else \clearpage \fi \@mkboth{}{}% } \let\arttableofcontents\tableofcontents \newcommand{\artpart}{% \def\toclevel@part{0}% \if@noskipsec \leavevmode\fi \par \addvspace{4ex}% \@afterindentfalse \secdef\@artpart\@sartpart } \let\@artpart\@part \let\@sartpart\@spart \newcommand\bookpart{% \def\toclevel@part{-1}% \if@openright \cleardoublepage \else \clearpage \fi \thispagestyle{plain}% \if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \preparthook \secdef\@bookpart\@sbookpart} \newcommand{\parttitleformat}[1]{% \Huge\bfseries#1% } \newcommand*{\@parttoclabel}{part} \def\@partapp{\partname} \newcommand{\partnumberformat}[1]{% \Huge\bfseries \@partapp\nobreakspace#1\par\nobreak \vskip 20\p@ } \newcommand{\preparthook}{\null\vfil} \newcommand*{\partformat}{\centering} \def\@bookpart[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{\@parttoclabel}{\protect\numberline{\thepart}#1}% \else \addcontentsline{toc}{\@parttoclabel}{#1}% \fi \markboth{}{}% {\interlinepenalty \@M \normalfont\partformat \ifnum \c@secnumdepth >-2\relax \partnumberformat{\thepart}% \fi \parttitleformat{#2}\par}% \postparthook} \def\@sbookpart#1{% {\interlinepenalty \@M \normalfont\partformat \parttitleformat{#1}\par}% \postparthook} \def\postparthook{\vfil\newpage \if@twoside \if@openright \null \thispagestyle{empty}% \newpage \fi \fi \if@tempswa \twocolumn \fi} \newcommand\bookappendix{\par \setcounter{table}{0}% \setcounter{figure}{0}% \zeroextracounters \par \gdef\theHchapter{\Alph {chapter}}% \xdef\Hy@chapapp{\Hy@appendixstring}% \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@Alph\c@chapter}% \def\@write@jmlr@import{\@@write@jmlr@apdimport}% \csname appendixmore\endcsname } \newcommand*{\jmlrbookcommands}{% \let\part\bookpart \let\chapter\bookchapter \let\appendix\bookappendix \let\tableofcontents\booktableofcontents \def\thesection{\thechapter.\arabic{section}}% } \newcommand*{\jmlrarticlecommands}{% \let\part\artpart \let\chapter\artchapter \let\appendix\artappendix \let\tableofcontents\arttableofcontents \def\thesection{\arabic{section}}% } \newcommand*{\@jmlr@check@packages}{% \@ifpackageloaded{epsfig}{% \ClassError{jmlr}{Obsolete package `epsfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{psfig}{% \ClassError{jmlr}{Obsolete package `psfig' detected. \MessageBreak Please use \string\includegraphics\space to include images instead}{}}{}% \@ifpackageloaded{subfig}{% \ClassError{jmlr}{Package `subfig' detected.\MessageBreak This will cause a conflict if the article is incorporated \MessageBreak into a book using jmlbook.cls. \MessageBreak Please use \string\subfigure\space and \string\subtable\space instead}{}}{}% \@ifpackageloaded{theorem}{% \ClassError{jmlr}{Package `theorem' detected.\MessageBreak This can cause a conflict with other packages used by jmlr}{}}{}% \@ifpackageloaded{ntheorem}{% \ClassError{jmlr}{Package `ntheorem' detected.\MessageBreak This can cause a conflict with other packages used by jmlr}{}}{}% \@ifpackageloaded{amsthm}{% \ClassError{jmlr}{Package `amsthm' detected.\MessageBreak This package conflicts with the jmlr class}{}}{}% \@ifpackageloaded{pdfpages}{Package `pdfpages' detected.\MessageBreak This can cause a problem for jmlrbook}{}% \@ifpackageloaded{geometry}{Package `geometry' detected.\MessageBreak This can cause a problem for jmlrbook}{}% \@ifpackageloaded{tabularx}{% \ClassError{jmlr}{Package `tabularx' detected.\MessageBreak This will break footnote links}{}}{}% \@ifpackageloaded{jmlr2e}{% \ClassError{jmlr}{Package `jmlr2e' detected.\MessageBreak This can't be used with the jmlr class}{}}{}% } \AtBeginDocument{% \@jmlr@check@packages \let\@jmlr@check@packages\relax } \newcommand*{\jmlrSuppressPackageChecks}{% \let\@jmlr@check@packages\relax } \DeclareRobustCommand*{\obsoletefontcs}[1]{% \ClassWarning{jmlr}{Obsolete command \expandafter\string\csname#1\endcsname\space detected}% \csname #1 \endcsname } \renewcommand*{\bf}{% \obsoletefontcs{bf}% } \renewcommand*{\it}{% \obsoletefontcs{it}% } \renewcommand*{\sc}{% \obsoletefontcs{sc}% } \renewcommand*{\rm}{% \obsoletefontcs{rm}% } \renewcommand*{\sf}{% \obsoletefontcs{sf}% } \renewcommand*{\tt}{% \obsoletefontcs{tt}% } \providecommand*{\jmlrcheckforpseudocode}{% \@ifpackageloaded{pseudocode}% {% \let\pseudoRETURN\RETURN \let\pseudoTRUE\TRUE \let\pseudoFALSE\FALSE \let\pseudoAND\AND \let\pseudoOR\OR \let\pseudoNOT\NOT \let\pseudoTO\TO \let\pseudoCOMMENT\COMMENT \let\pseudoIF\IF \let\pseudoELSE\ELSE \let\pseudoFOR\FOR \let\pseudoFORALL\FORALL \let\pseudoWHILE\WHILE \let\pseudoREPEAT\REPEAT \let\pseudoUNTIL\UNTIL \let\pseudoENDFOR\ENDFOR \let\RETURN\undefined \let\TRUE\undefined \let\FALSE\undefined \let\AND\undefined \let\OR\undefined \let\NOT\undefined \let\TO\undefined \let\COMMENT\undefined \let\IF\undefined \let\ELSE\undefined \let\FOR\undefined \let\FORALL\undefined \let\WHILE\undefined \let\REPEAT\undefined \let\UNTIL\undefined \let\ENDFOR\undefined \preto\pseudocode{% \let\RETURN\pseudoRETURN \let\TRUE\pseudoTRUE \let\FALSE\pseudoFALSE \let\AND\pseudoAND \let\OR\pseudoOR \let\NOT\pseudoNOT \let\TO\pseudoTO \let\COMMENT\pseudoCOMMENT \let\IF\pseudoIF \let\ELSE\pseudoELSE \let\FOR\pseudoFOR \let\FORALL\pseudoFORALL \let\WHILE\pseudoWHILE \let\REPEAT\pseudoREPEAT \let\UNTIL\pseudoUNTIL \let\ENDFOR\pseudoENDFOR }% }% {}% } \jmlrcheckforpseudocode \endinput %% %% End of file `jmlr.cls'.