templates/icml2026/algorithmic.sty
templates/icml2026/algorithmic.styBrowse 56 files
2,752 tokens
7,414 bytes
Token encoding: o200k_base
Snapshot 24fd22b
← Back to SKILL.md
1% ALGORITHMIC STYLE -- Released 8 APRIL 19962% for LaTeX version 2e3% Copyright -- 1994 Peter Williams4% E-mail PeterWilliams@dsto.defence.gov.au5%6% Modified by Alex Smola (08/2000)7% E-mail Alex.Smola@anu.edu.au8%9\NeedsTeXFormat{LaTeX2e}10\ProvidesPackage{algorithmic}11\typeout{Document Style `algorithmic' - environment}12%13\RequirePackage{ifthen}14\RequirePackage{calc}15\newboolean{ALC@noend}16\setboolean{ALC@noend}{false}17\newcounter{ALC@line}18\newcounter{ALC@rem}19\newlength{\ALC@tlm}20%21\DeclareOption{noend}{\setboolean{ALC@noend}{true}}22%23\ProcessOptions24%25% ALGORITHMIC26\newcommand{\algorithmicrequire}{\textbf{Require:}}27\newcommand{\algorithmicensure}{\textbf{Ensure:}}28\newcommand{\algorithmiccomment}[1]{\{#1\}}29\newcommand{\algorithmicend}{\textbf{end}}30\newcommand{\algorithmicif}{\textbf{if}}31\newcommand{\algorithmicthen}{\textbf{then}}32\newcommand{\algorithmicelse}{\textbf{else}}33\newcommand{\algorithmicelsif}{\algorithmicelse\ \algorithmicif}34\newcommand{\algorithmicendif}{\algorithmicend\ \algorithmicif}35\newcommand{\algorithmicfor}{\textbf{for}}36\newcommand{\algorithmicforall}{\textbf{for all}}37\newcommand{\algorithmicdo}{\textbf{do}}38\newcommand{\algorithmicendfor}{\algorithmicend\ \algorithmicfor}39\newcommand{\algorithmicwhile}{\textbf{while}}40\newcommand{\algorithmicendwhile}{\algorithmicend\ \algorithmicwhile}41\newcommand{\algorithmicloop}{\textbf{loop}}42\newcommand{\algorithmicendloop}{\algorithmicend\ \algorithmicloop}43\newcommand{\algorithmicrepeat}{\textbf{repeat}}44\newcommand{\algorithmicuntil}{\textbf{until}}45 46%changed by alex smola47\newcommand{\algorithmicinput}{\textbf{input}}48\newcommand{\algorithmicoutput}{\textbf{output}}49\newcommand{\algorithmicset}{\textbf{set}}50\newcommand{\algorithmictrue}{\textbf{true}}51\newcommand{\algorithmicfalse}{\textbf{false}}52\newcommand{\algorithmicand}{\textbf{and\ }}53\newcommand{\algorithmicor}{\textbf{or\ }}54\newcommand{\algorithmicfunction}{\textbf{function}}55\newcommand{\algorithmicendfunction}{\algorithmicend\ \algorithmicfunction}56\newcommand{\algorithmicmain}{\textbf{main}}57\newcommand{\algorithmicendmain}{\algorithmicend\ \algorithmicmain}58%end changed by alex smola59 60\def\ALC@item[#1]{%61\if@noparitem \@donoparitem62 \else \if@inlabel \indent \par \fi63 \ifhmode \unskip\unskip \par \fi64 \if@newlist \if@nobreak \@nbitem \else65 \addpenalty\@beginparpenalty66 \addvspace\@topsep \addvspace{-\parskip}\fi67 \else \addpenalty\@itempenalty \addvspace\itemsep68 \fi69 \global\@inlabeltrue70\fi71\everypar{\global\@minipagefalse\global\@newlistfalse72 \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels73 \penalty\z@ \fi74 \everypar{}}\global\@nobreakfalse75\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi76\sbox\@tempboxa{\makelabel{#1}}%77\global\setbox\@labels78 \hbox{\unhbox\@labels \hskip \itemindent79 \hskip -\labelwidth \hskip -\ALC@tlm80 \ifdim \wd\@tempboxa >\labelwidth81 \box\@tempboxa82 \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi83 \hskip \ALC@tlm}\ignorespaces}84%85\newenvironment{algorithmic}[1][0]{86\let\@item\ALC@item87 \newcommand{\ALC@lno}{%88\ifthenelse{\equal{\arabic{ALC@rem}}{0}}89{{\footnotesize \arabic{ALC@line}:}}{}%90}91\let\@listii\@listi92\let\@listiii\@listi93\let\@listiv\@listi94\let\@listv\@listi95\let\@listvi\@listi96\let\@listvii\@listi97 \newenvironment{ALC@g}{98 \begin{list}{\ALC@lno}{ \itemsep\z@ \itemindent\z@99 \listparindent\z@ \rightmargin\z@ 100 \topsep\z@ \partopsep\z@ \parskip\z@\parsep\z@101 \leftmargin 1em102 \addtolength{\ALC@tlm}{\leftmargin}103 }104 }105 {\end{list}}106 \newcommand{\ALC@it}{\addtocounter{ALC@line}{1}\addtocounter{ALC@rem}{1}\ifthenelse{\equal{\arabic{ALC@rem}}{#1}}{\setcounter{ALC@rem}{0}}{}\item}107 \newcommand{\ALC@com}[1]{\ifthenelse{\equal{##1}{default}}%108{}{\ \algorithmiccomment{##1}}}109 \newcommand{\REQUIRE}{\item[\algorithmicrequire]}110 \newcommand{\ENSURE}{\item[\algorithmicensure]}111 \newcommand{\STATE}{\ALC@it}112 \newcommand{\COMMENT}[1]{\algorithmiccomment{##1}}113%changes by alex smola114 \newcommand{\INPUT}{\item[\algorithmicinput]}115 \newcommand{\OUTPUT}{\item[\algorithmicoutput]}116 \newcommand{\SET}{\item[\algorithmicset]}117% \newcommand{\TRUE}{\algorithmictrue}118% \newcommand{\FALSE}{\algorithmicfalse}119 \newcommand{\AND}{\algorithmicand}120 \newcommand{\OR}{\algorithmicor}121 \newenvironment{ALC@func}{\begin{ALC@g}}{\end{ALC@g}}122 \newenvironment{ALC@main}{\begin{ALC@g}}{\end{ALC@g}}123%end changes by alex smola124 \newenvironment{ALC@if}{\begin{ALC@g}}{\end{ALC@g}}125 \newenvironment{ALC@for}{\begin{ALC@g}}{\end{ALC@g}}126 \newenvironment{ALC@whl}{\begin{ALC@g}}{\end{ALC@g}}127 \newenvironment{ALC@loop}{\begin{ALC@g}}{\end{ALC@g}}128 \newenvironment{ALC@rpt}{\begin{ALC@g}}{\end{ALC@g}}129 \renewcommand{\\}{\@centercr}130 \newcommand{\IF}[2][default]{\ALC@it\algorithmicif\ ##2\ \algorithmicthen%131\ALC@com{##1}\begin{ALC@if}}132 \newcommand{\SHORTIF}[2]{\ALC@it\algorithmicif\ ##1\133 \algorithmicthen\ {##2}}134 \newcommand{\ELSE}[1][default]{\end{ALC@if}\ALC@it\algorithmicelse%135\ALC@com{##1}\begin{ALC@if}}136 \newcommand{\ELSIF}[2][default]%137{\end{ALC@if}\ALC@it\algorithmicelsif\ ##2\ \algorithmicthen%138\ALC@com{##1}\begin{ALC@if}}139 \newcommand{\FOR}[2][default]{\ALC@it\algorithmicfor\ ##2\ \algorithmicdo%140\ALC@com{##1}\begin{ALC@for}}141 \newcommand{\FORALL}[2][default]{\ALC@it\algorithmicforall\ ##2\ %142\algorithmicdo%143\ALC@com{##1}\begin{ALC@for}}144 \newcommand{\SHORTFORALL}[2]{\ALC@it\algorithmicforall\ ##1\ %145 \algorithmicdo\ {##2}}146 \newcommand{\WHILE}[2][default]{\ALC@it\algorithmicwhile\ ##2\ %147\algorithmicdo%148\ALC@com{##1}\begin{ALC@whl}}149 \newcommand{\LOOP}[1][default]{\ALC@it\algorithmicloop%150\ALC@com{##1}\begin{ALC@loop}}151%changed by alex smola152 \newcommand{\FUNCTION}[2][default]{\ALC@it\algorithmicfunction\ ##2\ %153 \ALC@com{##1}\begin{ALC@func}}154 \newcommand{\MAIN}[2][default]{\ALC@it\algorithmicmain\ ##2\ %155 \ALC@com{##1}\begin{ALC@main}}156%end changed by alex smola157 \newcommand{\REPEAT}[1][default]{\ALC@it\algorithmicrepeat%158 \ALC@com{##1}\begin{ALC@rpt}}159 \newcommand{\UNTIL}[1]{\end{ALC@rpt}\ALC@it\algorithmicuntil\ ##1}160 \ifthenelse{\boolean{ALC@noend}}{161 \newcommand{\ENDIF}{\end{ALC@if}}162 \newcommand{\ENDFOR}{\end{ALC@for}}163 \newcommand{\ENDWHILE}{\end{ALC@whl}}164 \newcommand{\ENDLOOP}{\end{ALC@loop}}165 \newcommand{\ENDFUNCTION}{\end{ALC@func}}166 \newcommand{\ENDMAIN}{\end{ALC@main}}167 }{168 \newcommand{\ENDIF}{\end{ALC@if}\ALC@it\algorithmicendif}169 \newcommand{\ENDFOR}{\end{ALC@for}\ALC@it\algorithmicendfor}170 \newcommand{\ENDWHILE}{\end{ALC@whl}\ALC@it\algorithmicendwhile}171 \newcommand{\ENDLOOP}{\end{ALC@loop}\ALC@it\algorithmicendloop}172 \newcommand{\ENDFUNCTION}{\end{ALC@func}\ALC@it\algorithmicendfunction}173 \newcommand{\ENDMAIN}{\end{ALC@main}\ALC@it\algorithmicendmain}174 } 175 \renewcommand{\@toodeep}{}176 \begin{list}{\ALC@lno}{\setcounter{ALC@line}{0}\setcounter{ALC@rem}{0}%177 \itemsep\z@ \itemindent\z@ \listparindent\z@%178 \partopsep\z@ \parskip\z@ \parsep\z@%179 \labelsep 0.5em \topsep 0.2em%180 \ifthenelse{\equal{#1}{0}}181 {\labelwidth 0.5em }182 {\labelwidth 1.2em }183 \leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep}184 \ALC@tlm\labelsep185 }186 }187 {\end{list}}188 189 190 191 192 193 194 195 196 197 198 199 200 201 202