3

Code:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic} 

\begin{document}

\begin{algorithm}[t]
    \caption{Dolphinn: Preprocessing (data structure)}
    \label{DolphinnPrep}
    \begin{algorithmic}
    \INPUT{Metric $(\MM, d_{\MM})$, radius $r>0$, approximation factor $c>1$, LSH family $F=F(c,r)$, data set $P \subset \MM$, parameter $d'$.}
    \STATE Initialize empty hashtable $T$.
    \FOR{$i = 1$ to $d'$}
        \STATE Sample $h_i \in F$ u.a.r.
        \FOR{each $x \in h_i(P)$}
            \STATE{Flip a fair coin and assign the result to $f_i(x)$.}
        \ENDFOR
    \ENDFOR
    \STATE{For all $p \in P$, $f(p)=(f_1(h_1(p)), \ldots, f_{d'}(h_{d'}(p)))$.}
    \STATE{For all $p \in P$, add $p$ to the bucket of $T$ with key $f(p)$.}
\end{algorithmic}
\end{algorithm}

\end{document}

Error:

./sample.tex:11: Undefined control sequence.
<recently read> \INPUT 

l.11     \INPUT
               {Metric $(\MM, d_{\MM})$, radius $r>0$, approximation factor ...

? 

How to fix this?

8
  • The documentation of algorithmic doesn't mention \INPUT. Why do you believe that it should work? Feb 22, 2017 at 11:14
  • I was given that code from an overleaf document of another student and he said it works fine @UlrikeFischer, damn! :/ Are you aware of any workaround? I mean by discarding that \INPUT!
    – gsamaras
    Feb 22, 2017 at 11:15
  • look in the document where it works, and copy the definition of \INPUT from there, otherwise hard to guess. defining \INPUT to anything would make the error go away, but wouldn't necessarily do what it does in the other document. Feb 22, 2017 at 11:25
  • Yes @DavidCarlisle, this is what I tried to do, but there no other mention of \INPUT, I wonder if I am missing something with that overleaf, never tried it...
    – gsamaras
    Feb 22, 2017 at 11:28
  • 1
    put \show\INPUT in the document where it works and TeX will stop and show its definition Feb 22, 2017 at 11:31

1 Answer 1

2

You maybe want \INPUTS:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}

\newcommand{\MM}{MM}% ???

\begin{document}

\begin{algorithm}[t]
\caption{Dolphinn: Preprocessing (data structure)}
\label{DolphinnPrep}

\begin{algorithmic}
\INPUTS
  \STATE Metric $(\MM, d_{\MM})$, radius $r>0$, approximation factor $c>1$,
         LSH family $F=F(c,r)$, data set $P \subset \MM$, parameter $d'$.
\ENDINPUTS
\STATE Initialize empty hashtable $T$.
\FOR{$i = 1$ to $d'$}
  \STATE Sample $h_i \in F$ u.a.r.
  \FOR{each $x \in h_i(P)$}
    \STATE Flip a fair coin and assign the result to $f_i(x)$.
  \ENDFOR
\ENDFOR
\STATE For all $p \in P$, $f(p)=(f_1(h_1(p)), \ldots, f_{d'}(h_{d'}(p)))$.
\STATE For all $p \in P$, add $p$ to the bucket of $T$ with key $f(p)$.
\end{algorithmic}

\end{algorithm}

\end{document}

enter image description here

2
  • Thanks egreg, I will accept your answer as a generic solution. But for my case, the student had forgotten to show me this: \newcommand{\INPUT}{\item[\algorithmicinput]}.
    – gsamaras
    Feb 22, 2017 at 11:41
  • @gsamaras It should be \algorithmicinputs anyway.
    – egreg
    Feb 22, 2017 at 11:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .