\section{/var/www/mlpack.ratml.\+org/mlpack.org/\+\_\+src/mlpack-\/3.3.2/src/mlpack/core/util/param.hpp File Reference}
\label{param_8hpp}\index{/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+2/src/mlpack/core/util/param.\+hpp@{/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+2/src/mlpack/core/util/param.\+hpp}}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \textbf{ Dataset\+Mapper$<$ Policy\+Type, Input\+Type $>$}
\begin{DoxyCompactList}\small\item\em Auxiliary information for a dataset, including mappings to/from strings (or other types) and the datatype of each dimension. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \textbf{ mlpack}
\begin{DoxyCompactList}\small\item\em Linear algebra utility functions, generally performed on matrices or vectors. \end{DoxyCompactList}\item 
 \textbf{ mlpack\+::data}
\begin{DoxyCompactList}\small\item\em Functions to load and save matrices and models. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define a vector input parameter (type arma\+::vec). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)
\begin{DoxyCompactList}\small\item\em Define a required vector input parameter (type arma\+::vec). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define a vector output parameter (type arma\+::vec). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS,  D\+EF)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(double, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)
\begin{DoxyCompactList}\small\item\em Define a double input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(double, ID, D\+E\+SC, A\+L\+I\+AS, 0.\+0, true)
\begin{DoxyCompactList}\small\item\em Define a required double parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT}(ID,  D\+E\+SC)~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(double, ID, D\+E\+SC, \char`\"{}\char`\"{}, 0.\+0, false)
\begin{DoxyCompactList}\small\item\em Define a double output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+F\+L\+AG}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(bool, ID, D\+E\+SC, A\+L\+I\+AS, false, false);
\begin{DoxyCompactList}\small\item\em Define a flag parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(T,  ID,  D\+E\+SC,  A\+L\+I\+AS,  D\+EF,  R\+EQ)
\begin{DoxyCompactList}\small\item\em Define an input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS,  D\+EF)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(int, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)
\begin{DoxyCompactList}\small\item\em Define an integer input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(int, ID, D\+E\+SC, A\+L\+I\+AS, 0, true)
\begin{DoxyCompactList}\small\item\em Define a required integer input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT}(ID,  D\+E\+SC)~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(int, ID, D\+E\+SC, \char`\"{}\char`\"{}, 0, false)
\begin{DoxyCompactList}\small\item\em Define an integer output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(\textbf{ T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}, ID, D\+E\+SC, A\+L\+I\+AS, \textbf{ T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}(), false)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define a matrix input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)
\begin{DoxyCompactList}\small\item\em Define a required matrix input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define a matrix output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE,  ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN}(T\+Y\+PE,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, false, true)
\begin{DoxyCompactList}\small\item\em Define an input model. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}(T\+Y\+PE,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, true, true)
\begin{DoxyCompactList}\small\item\em Define a required input model. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT}(T\+Y\+PE,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, false, false)
\begin{DoxyCompactList}\small\item\em Define an output model. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(T,  ID,  D\+E\+SC,  A\+L\+I\+AS,  D\+EF,  R\+EQ)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+R\+OW}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define a row vector input parameter (type arma\+::rowvec). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define a row vector output parameter (type arma\+::rowvec). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS,  D\+EF)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)
\begin{DoxyCompactList}\small\item\em Define a string input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, \char`\"{}\char`\"{}, true)
\begin{DoxyCompactList}\small\item\em Define a required string parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, \char`\"{}\char`\"{}, false)
\begin{DoxyCompactList}\small\item\em Define a string output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, false, true)
\begin{DoxyCompactList}\small\item\em Define a transposed matrix input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, false, true)
\begin{DoxyCompactList}\small\item\em Define a required transposed matrix input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, false, false)
\begin{DoxyCompactList}\small\item\em Define a transposed matrix output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define an unsigned vector input parameter (type arma\+::\+Col$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define an unsigned vector output parameter (type arma\+::\+Col$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define an unsigned matrix input parameter (arma\+::\+Mat$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)
\begin{DoxyCompactList}\small\item\em Define a required unsigned matrix input parameter (arma\+::\+Mat$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define an unsigned matrix output parameter (arma\+::\+Mat$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}(ID,  D\+E\+SC,  A\+L\+I\+AS,  R\+EQ,  T\+R\+A\+NS,  IN)
\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)
\begin{DoxyCompactList}\small\item\em Define an unsigned row vector input parameter (type arma\+::\+Row$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT}(ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)
\begin{DoxyCompactList}\small\item\em Define an unsigned row vector output parameter (type arma\+::\+Row$<$size\+\_\+t$>$). \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN}(T,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), false)
\begin{DoxyCompactList}\small\item\em Define a std\+::vector input parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ}(T,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), true);
\begin{DoxyCompactList}\small\item\em Define a required vector parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT}(T,  ID,  D\+E\+SC,  A\+L\+I\+AS)~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), false)
\begin{DoxyCompactList}\small\item\em Define a vector output parameter. \end{DoxyCompactList}\item 
\#define \textbf{ P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO}(N\+A\+ME,  S\+H\+O\+R\+T\+\_\+\+D\+E\+SC,  D\+E\+SC, ...)
\begin{DoxyCompactList}\small\item\em Document an executable. \end{DoxyCompactList}\item 
\#define \textbf{ S\+E\+E\+\_\+\+A\+L\+SO}(D\+E\+S\+C\+R\+I\+P\+T\+I\+ON,  L\+I\+NK)~\{D\+E\+S\+C\+R\+I\+P\+T\+I\+ON, L\+I\+NK\}
\begin{DoxyCompactList}\small\item\em Provide a link for a binding\textquotesingle{}s \char`\"{}see also\char`\"{} documentation section, which is primarily (but not necessarily exclusively) used by the Markdown bindings This link can be specified by calling S\+E\+E\+\_\+\+A\+L\+SO(\char`\"{}description\char`\"{}, \char`\"{}link\char`\"{}), where \char`\"{}description\char`\"{} is the description of the link and \char`\"{}link\char`\"{} may be one of the following\+: \end{DoxyCompactList}\item 
\#define \textbf{ T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}~std\+::tuple$<$\textbf{ mlpack\+::data\+::\+Dataset\+Info}, arma\+::mat$>$
\begin{DoxyCompactList}\small\item\em Define an input Dataset\+Info/matrix parameter. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\begin{DoxyAuthor}{Author}
Matthew Amidon 

Ryan Curtin
\end{DoxyAuthor}
Definition of P\+A\+R\+A\+M\+\_\+$\ast$\+\_\+\+IN() and P\+A\+R\+A\+M\+\_\+$\ast$\+\_\+\+O\+UT() macros, as well as the \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86} macro, which are used to define input and output parameters of command-\/line programs and bindings to other languages.

mlpack is free software; you may redistribute it and/or modify it under the terms of the 3-\/clause B\+SD license. You should have received a copy of the 3-\/clause B\+SD license along with mlpack. If not, see {\tt http\+://www.\+opensource.\+org/licenses/\+B\+S\+D-\/3-\/\+Clause} for more information. 

\subsection{Macro Definition Documentation}
\mbox{\label{param_8hpp_afef4dcbf5fa0b81c4daf50f77b4391af}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+C\+OL@{P\+A\+R\+A\+M\+\_\+\+C\+OL}}
\index{P\+A\+R\+A\+M\+\_\+\+C\+OL@{P\+A\+R\+A\+M\+\_\+\+C\+OL}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+C\+OL}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+C\+OL(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::vec> \(\backslash\)
      JOIN(cli\_option\_dummy\_object\_col\_, \_\_LINE\_\_) \(\backslash\)
      (arma::vec(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::vec"}, REQ, IN, !TRANS, \(\backslash\)
      testName);
\end{DoxyCode}


Definition at line 1209 of file param.\+hpp.

\mbox{\label{param_8hpp_a36713e2f7157727157af4a92f1c2ad5d}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define a vector input parameter (type arma\+::vec). 

From the command line, the user can specify the file that holds the vector, using the name of the vector parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector was held in vec.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 569 of file param.\+hpp.

\mbox{\label{param_8hpp_ad390258cf9c175da3c77ac7e63359417}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)}



Define a required vector input parameter (type arma\+::vec). 

From the command line, the user can specify the file that holds the vector, using the name of the vector parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector was held in vec.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 597 of file param.\+hpp.

\mbox{\label{param_8hpp_a07120f558c6c681b2a27a719a7c39bd2}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+C\+O\+L\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define a vector output parameter (type arma\+::vec). 

When the program terminates, the vector will be saved to whatever it was set to during the program. From the command-\/line, the user may specify the file in which to save the output vector using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector should be saved in vector.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}


The output vector will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 715 of file param.\+hpp.

\mbox{\label{param_8hpp_a14e7059294c684b01128819daea241d4}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{D\+EF }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(double, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)}



Define a double input parameter. 

The parameter can then be specified on the command line with --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
{\em D\+EF} & Default value of the parameter.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 178 of file param.\+hpp.

\mbox{\label{param_8hpp_a1236858e19f2e8be7da663d4aecfac9f}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(double, ID, D\+E\+SC, A\+L\+I\+AS, 0.\+0, true)}



Define a required double parameter. 

The parameter must then be specified on the command line with --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 1048 of file param.\+hpp.

\mbox{\label{param_8hpp_aa39a5fa65308f2d5581c01cfae5f9203}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(double, ID, D\+E\+SC, \char`\"{}\char`\"{}, 0.\+0, false)}



Define a double output parameter. 

This parameter will be printed on stdout at the end of the program; for instance, if the parameter name is \char`\"{}number\char`\"{} and the value is 5.\+012, the output on stdout would be of the following form\+:


\begin{DoxyCode}
number: 5.012
\end{DoxyCode}


If the parameter is not set by the end of the program, a fatal runtime error will be issued.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 208 of file param.\+hpp.

\mbox{\label{param_8hpp_a59a38dfe16c56a278bd89817216a3739}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+F\+L\+AG@{P\+A\+R\+A\+M\+\_\+\+F\+L\+AG}}
\index{P\+A\+R\+A\+M\+\_\+\+F\+L\+AG@{P\+A\+R\+A\+M\+\_\+\+F\+L\+AG}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+F\+L\+AG}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+F\+L\+AG(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(bool, ID, D\+E\+SC, A\+L\+I\+AS, false, false);}



Define a flag parameter. 


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 95 of file param.\+hpp.

\mbox{\label{param_8hpp_a71739f2cfc051c5575d2080203025631}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{T,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{D\+EF,  }\item[{}]{R\+EQ }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<T> \(\backslash\)
      JOIN(JOIN(cli\_option\_dummy\_object\_in\_, \_\_LINE\_\_), opt) \(\backslash\)
      (DEF, ID, DESC, ALIAS, #T, REQ, \textcolor{keyword}{true}, \textcolor{keyword}{false}, testName);
\end{DoxyCode}


Define an input parameter. 

Don\textquotesingle{}t use this function; use the other ones above that call it. Note that we are using the {\bfseries L\+I\+NE} macro for naming these actual parameters when {\bfseries C\+O\+U\+N\+T\+ER} does not exist, which is a bit of an ugly hack... but this is the preprocessor, after all. We don\textquotesingle{}t have much choice other than ugliness.


\begin{DoxyParams}{Parameters}
{\em T} & Type of the parameter. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & Alias for this parameter (one letter). \\
\hline
{\em D\+EF} & Default value of the parameter. \\
\hline
{\em R\+EQ} & Whether or not parameter is required (boolean value). \\
\hline
\end{DoxyParams}


Definition at line 1187 of file param.\+hpp.

\mbox{\label{param_8hpp_a627025f18abd2735345f03fd733ccd9b}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{D\+EF }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(int, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)}



Define an integer input parameter. 

The parameter can then be specified on the command line with --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
{\em D\+EF} & Default value of the parameter.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]Use a forward declaration of the class. The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 122 of file param.\+hpp.

\mbox{\label{param_8hpp_a59102e55c5d69d23909a75bd6093f816}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(int, ID, D\+E\+SC, A\+L\+I\+AS, 0, true)}



Define a required integer input parameter. 

The parameter must then be specified on the command line with --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 1024 of file param.\+hpp.

\mbox{\label{param_8hpp_a50b8bfabec3f0b64fb6e15837da50aa0}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(int, ID, D\+E\+SC, \char`\"{}\char`\"{}, 0, false)}



Define an integer output parameter. 

This parameter will be printed on stdout at the end of the program; for instance, if the parameter name is \char`\"{}number\char`\"{} and the value is 5, the output on stdout would be of the following form\+:


\begin{DoxyCode}
number: 5
\end{DoxyCode}


If the parameter is not set by the end of the program, a fatal runtime error will be issued.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 152 of file param.\+hpp.

\mbox{\label{param_8hpp_a4ce453a83dd3e3efc08a335b0e2775ea}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::mat> \(\backslash\)
      JOIN(JOIN(cli\_option\_dummy\_object\_matrix\_, \_\_LINE\_\_), opt) \(\backslash\)
      (arma::mat(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::mat"}, REQ, IN, !TRANS, \(\backslash\)
      testName);
\end{DoxyCode}


Definition at line 1197 of file param.\+hpp.

\mbox{\label{param_8hpp_a444c996b7e4b9dadaa5e43a7d7798f71}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+A\+N\+D\+\_\+\+I\+N\+F\+O\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(\textbf{ T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}, ID, D\+E\+SC, A\+L\+I\+AS, \textbf{ T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}(), false)}



Definition at line 913 of file param.\+hpp.

\mbox{\label{param_8hpp_a49e6517671e6c8173dd3570de950363b}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define a matrix input parameter. 

From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 294 of file param.\+hpp.

\mbox{\label{param_8hpp_a20dc72054c6568f040bdc8a5512acacb}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)}



Define a required matrix input parameter. 

From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 322 of file param.\+hpp.

\mbox{\label{param_8hpp_a20f436f371a7613b532ae3a4c0416b30}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define a matrix output parameter. 

When the program terminates, the matrix will be saved to whatever it was set to by C\+L\+I\+::\+Get\+Param$<$arma\+::mat$>$(\+I\+D) during the program. From the command-\/line, the user may specify the file in which to save the output matrix using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output matrix parameter was \char`\"{}mat\char`\"{}, the user could speicfy that the \char`\"{}mat\char`\"{} matrix should be saved in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}


The output matrix will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 355 of file param.\+hpp.

\mbox{\label{param_8hpp_a1e4f86c8f4de8e3f932c4cedbe4d8157}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL(\begin{DoxyParamCaption}\item[{}]{T\+Y\+PE,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<TYPE*> \(\backslash\)
      JOIN(JOIN(cli\_option\_dummy\_object\_model\_, \_\_LINE\_\_), opt) \(\backslash\)
      (\textcolor{keyword}{nullptr}, ID, DESC, ALIAS, #TYPE, REQ, IN, \textcolor{keyword}{false}, \(\backslash\)
      testName);
\end{DoxyCode}


Definition at line 1233 of file param.\+hpp.

\mbox{\label{param_8hpp_a663f71826f69f70d119b5f577d20721e}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{T\+Y\+PE,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, false, true)}



Define an input model. 

From the command line, the user can specify the file that holds the model, using the name of the model parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the model parameter was \char`\"{}model\char`\"{}, the user could specify that the \char`\"{}model\char`\"{} model was held in model.\+bin by giving the parameter


\begin{DoxyCode}
--model\_file model.bin
\end{DoxyCode}


Note that the first parameter of this model is the type (the class name) of the model to be loaded. This model type must have a serialize() function; a compilation error (a very long and complex one) will result if the model type does not have the following function\+:


\begin{DoxyCode}
\textcolor{keyword}{template}<\textcolor{keyword}{typename} Archive>
\textcolor{keywordtype}{void} serialize(Archive& ar, \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} version);
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em T\+Y\+PE} & Type of the model to be loaded. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter. Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
\end{DoxyParams}


Definition at line 944 of file param.\+hpp.

\mbox{\label{param_8hpp_a42961ca5512a6e6ab58cdcd15e374fca}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{T\+Y\+PE,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, true, true)}



Define a required input model. 

From the command line, the user can specify the file that holds the model, using the name of the model parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the model parameter was \char`\"{}model\char`\"{}, the user could specify that the \char`\"{}model\char`\"{} model was held in model.\+bin by giving the parameter


\begin{DoxyCode}
--model\_file model.bin
\end{DoxyCode}


Note that the first parameter of this model is the type (the class name) of the model to be loaded. This model type must have a serialize() function; a compilation error (a very long and complex one) will result if the model type does not have the following function\+:


\begin{DoxyCode}
\textcolor{keyword}{template}<\textcolor{keyword}{typename} Archive>
\textcolor{keywordtype}{void} serialize(Archive& ar, \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} version);
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em T\+Y\+PE} & Type of the model to be loaded. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter. Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
\end{DoxyParams}


Definition at line 975 of file param.\+hpp.

\mbox{\label{param_8hpp_a303372e5feffaee9bd0a4bb50f3011b1}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+E\+L\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{T\+Y\+PE,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+O\+D\+EL}(T\+Y\+PE, ID, D\+E\+SC, A\+L\+I\+AS, false, false)}



Define an output model. 

From the command line, the user can specify the file that should hold the model, using the name of the model parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the user desires to save the model to model.\+bin and the parameter name is \char`\"{}model\char`\"{}, they could specify


\begin{DoxyCode}
--model\_file model.bin
\end{DoxyCode}


The model will be saved at the termination of the program. If you use a parameter of this type, you must call C\+L\+I\+::\+Destroy() at the end of your program.


\begin{DoxyParams}{Parameters}
{\em T\+Y\+PE} & Type of the model to be saved. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter. Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
\end{DoxyParams}


Definition at line 1000 of file param.\+hpp.

\mbox{\label{param_8hpp_afe71e03991bbb1721872dbf20620b37a}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{T,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{D\+EF,  }\item[{}]{R\+EQ }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<T> \(\backslash\)
      JOIN(JOIN(cli\_option\_dummy\_object\_out\_, \_\_LINE\_\_), opt) \(\backslash\)
      (DEF, ID, DESC, ALIAS, #T, REQ, \textcolor{keyword}{false}, \textcolor{keyword}{false}, testName);
\end{DoxyCode}


Definition at line 1192 of file param.\+hpp.

\mbox{\label{param_8hpp_ac3efb084f2c69acdb9368f4fb9db654f}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+R\+OW@{P\+A\+R\+A\+M\+\_\+\+R\+OW}}
\index{P\+A\+R\+A\+M\+\_\+\+R\+OW@{P\+A\+R\+A\+M\+\_\+\+R\+OW}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+R\+OW}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+R\+OW(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::rowvec> \(\backslash\)
      JOIN(cli\_option\_dummy\_object\_row\_, \_\_LINE\_\_) \(\backslash\)
      (arma::rowvec(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::rowvec"}, REQ, IN, !TRANS, \(\backslash\)
      testName);
\end{DoxyCode}


Definition at line 1221 of file param.\+hpp.

\mbox{\label{param_8hpp_a503427b6b8cca3f0948487006e7f11b4}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define a row vector input parameter (type arma\+::rowvec). 

From the command line, the user can specify the file that holds the vector, using the name of the vector parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector was held in vec.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 625 of file param.\+hpp.

\mbox{\label{param_8hpp_a9beb54447b7992ecff903397abb60f73}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+R\+O\+W\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define a row vector output parameter (type arma\+::rowvec). 

When the program terminates, the vector will be saved to whatever it was set to during the program. From the command-\/line, the user may specify the file in which to save the output vector using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector should be saved in vector.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}


The output vector will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 748 of file param.\+hpp.

\mbox{\label{param_8hpp_a9514ae93b51ba592bc3299da8326bb80}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{D\+EF }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, D\+EF, false)}



Define a string input parameter. 

The parameter can then be specified on the command line with --ID=value. If A\+L\+I\+AS is equal to D\+E\+F\+\_\+\+M\+OD (which is set using the \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86} macro), the parameter can be specified with just --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter). \\
\hline
{\em D\+EF} & Default value of the parameter.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 235 of file param.\+hpp.

\mbox{\label{param_8hpp_a39f209691f1ca8c649a40cb22cea5408}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, \char`\"{}\char`\"{}, true)}



Define a required string parameter. 

The parameter must then be specified on the command line with --ID=value.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 1072 of file param.\+hpp.

\mbox{\label{param_8hpp_a94d8f8edc103da0e05f04fce245e8a93}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(std\+::string, ID, D\+E\+SC, A\+L\+I\+AS, \char`\"{}\char`\"{}, false)}



Define a string output parameter. 

The string will be printed to stdout at the end of the program. For instance, if there was a string output parameter called \char`\"{}something\char`\"{} with value \char`\"{}hello\char`\"{}, at the end of the program the output would be of the following form\+:


\begin{DoxyCode}
something: \textcolor{stringliteral}{"hello"}
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 266 of file param.\+hpp.

\mbox{\label{param_8hpp_a237697d0b35e7e6484e8ce52c0ed00c9}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, false, true)}



Define a transposed matrix input parameter. 

This is useful when data is desired in row-\/major form instead of the usual column-\/major form. From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 384 of file param.\+hpp.

\mbox{\label{param_8hpp_a580cb0e5b1c587a4bc5b7211aa2c414b}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, false, true)}



Define a required transposed matrix input parameter. 

This is useful when data is desired in row-\/major form instead of the usual column-\/major form. From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 414 of file param.\+hpp.

\mbox{\label{param_8hpp_a76754d246b86d1b159270e4794c25019}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+T\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, false, false)}



Define a transposed matrix output parameter. 

This is useful when data is stored in a row-\/major form instead of the usual column-\/major form. When the program terminates, the matrix will be saved to whatever it was set to by C\+L\+I\+::\+Get\+Param$<$arma\+::mat$>$(\+I\+D) during the program. From the command-\/line, the user may specify the file in which to save the output matrix using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output matrix parameter was \char`\"{}mat\char`\"{}, the user could speicfy that the \char`\"{}mat\char`\"{} matrix should be saved in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}


The output matrix will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 449 of file param.\+hpp.

\mbox{\label{param_8hpp_ad293cdde75e8b7986b01b50fc05e0186}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+C\+OL@{P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+C\+OL@{P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+C\+OL(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::Col<size\_t>> \(\backslash\)
      JOIN(cli\_option\_dummy\_object\_ucol\_, \_\_LINE\_\_) \(\backslash\)
      (arma::Col<size\_t>(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::Col<size\_t>"}, REQ, IN, \(\backslash\)
      !TRANS, testName);
\end{DoxyCode}


Definition at line 1215 of file param.\+hpp.

\mbox{\label{param_8hpp_a55c356a0f2cc3df7122b3f033033538e}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define an unsigned vector input parameter (type arma\+::\+Col$<$size\+\_\+t$>$). 

From the command line, the user can specify the file that holds the vector, using the name of the vector parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector was held in vec.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 653 of file param.\+hpp.

\mbox{\label{param_8hpp_ac8b7f343ae79cb1ec43a0d2eb791090d}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+C\+O\+L\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+C\+OL}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define an unsigned vector output parameter (type arma\+::\+Col$<$size\+\_\+t$>$). 

When the program terminates, the vector will be saved to whatever it was set to during the program. From the command-\/line, the user may specify the file in which to save the output vector using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector should be saved in vector.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}


The output vector will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 781 of file param.\+hpp.

\mbox{\label{param_8hpp_a6bcf880c112f92361cdb4a3536fba0ca}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::Mat<size\_t>> \(\backslash\)
      JOIN(JOIN(cli\_option\_dummy\_object\_umatrix\_, \_\_LINE\_\_), opt) \(\backslash\)
      (arma::Mat<size\_t>(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::Mat<size\_t>"}, REQ, IN, \(\backslash\)
      !TRANS, testName);
\end{DoxyCode}


Definition at line 1203 of file param.\+hpp.

\mbox{\label{param_8hpp_a0db58e2b5c75754d200638093b9cc40f}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define an unsigned matrix input parameter (arma\+::\+Mat$<$size\+\_\+t$>$). 

From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 477 of file param.\+hpp.

\mbox{\label{param_8hpp_aaf334355d68e6667f4e50e071eee4d63}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, true, true, true)}



Define a required unsigned matrix input parameter (arma\+::\+Mat$<$size\+\_\+t$>$). 

From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}mat\char`\"{}, the user could specify that the \char`\"{}mat\char`\"{} matrix was held in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 506 of file param.\+hpp.

\mbox{\label{param_8hpp_a145abfa58262c15f01139092ececc571}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+I\+X\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+M\+A\+T\+R\+IX}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define an unsigned matrix output parameter (arma\+::\+Mat$<$size\+\_\+t$>$). 

When the program terminates, the matrix will be saved to whatever it was set to by C\+L\+I\+::\+Get\+Param$<$arma\+::\+Mat$<$size\+\_\+t$>$$>$(ID) during the program. From the command-\/line, the user may specify the file in which to save the output matrix using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output matrix parameter was \char`\"{}mat\char`\"{}, the user could speicfy that the \char`\"{}mat\char`\"{} matrix should be saved in matrix.\+csv by giving the parameter


\begin{DoxyCode}
--mat\_file matrix.csv
\end{DoxyCode}


The output matrix will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 540 of file param.\+hpp.

\mbox{\label{param_8hpp_a79385d438fe2c4f19f6d563d26592aea}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+R\+OW@{P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+R\+OW@{P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+R\+OW(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS,  }\item[{}]{R\+EQ,  }\item[{}]{T\+R\+A\+NS,  }\item[{}]{IN }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::Option<arma::Row<size\_t>> \(\backslash\)
      JOIN(cli\_option\_dummy\_object\_urow\_, \_\_LINE\_\_) \(\backslash\)
      (arma::Row<size\_t>(), ID, DESC, ALIAS, \textcolor{stringliteral}{"arma::Row<size\_t>"}, REQ, IN, \(\backslash\)
      !TRANS, testName);
\end{DoxyCode}


Definition at line 1227 of file param.\+hpp.

\mbox{\label{param_8hpp_a311a7e2ebd5c3c73bb58206337e1da5d}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, true)}



Define an unsigned row vector input parameter (type arma\+::\+Row$<$size\+\_\+t$>$). 

From the command line, the user can specify the file that holds the vector, using the name of the vector parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector was held in vec.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 682 of file param.\+hpp.

\mbox{\label{param_8hpp_a0027b7ba5f161851bf91b167c8891058}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+U\+R\+O\+W\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+U\+R\+OW}(ID, D\+E\+SC, A\+L\+I\+AS, false, true, false)}



Define an unsigned row vector output parameter (type arma\+::\+Row$<$size\+\_\+t$>$). 

When the program terminates, the vector will be saved to whatever it was set to during the program. From the command-\/line, the user may specify the file in which to save the output vector using a string option that is the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended. So, for instance, if the name of the output vector parameter was \char`\"{}vec\char`\"{}, the user could specify that the \char`\"{}vec\char`\"{} vector should be saved in vector.\+csv by giving the parameter\+:


\begin{DoxyCode}
--vec\_file vector.csv
\end{DoxyCode}


The output vector will not be printed on stdout, like the other output option types.


\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 814 of file param.\+hpp.

\mbox{\label{param_8hpp_a8431e7deab47987cfdb2ae3f242c72bc}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN}}
\index{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+IN(\begin{DoxyParamCaption}\item[{}]{T,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), false)}



Define a std\+::vector input parameter. 

The parameter can then be specified on the command line with --ID=value1,value2,value3.


\begin{DoxyParams}{Parameters}
{\em T} & Type of the parameter. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 840 of file param.\+hpp.

\mbox{\label{param_8hpp_a83c3be131e322e0a661c8ddf9c3c7df6}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ}}
\index{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+EQ(\begin{DoxyParamCaption}\item[{}]{T,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+IN}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), true);}



Define a required vector parameter. 

The parameter must then be specified on the command line with --ID=value1,value2,value3.


\begin{DoxyParams}{Parameters}
{\em T} & Type of the parameter. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 1098 of file param.\+hpp.

\mbox{\label{param_8hpp_ac24919def62bd93f462cc3ff9d555cbc}} 
\index{param.\+hpp@{param.\+hpp}!P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT}}
\index{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT@{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT}
{\footnotesize\ttfamily \#define P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+UT(\begin{DoxyParamCaption}\item[{}]{T,  }\item[{}]{ID,  }\item[{}]{D\+E\+SC,  }\item[{}]{A\+L\+I\+AS }\end{DoxyParamCaption})~\textbf{ P\+A\+R\+A\+M\+\_\+\+O\+UT}(std\+::vector$<$T$>$, ID, D\+E\+SC, A\+L\+I\+AS, std\+::vector$<$T$>$(), false)}



Define a vector output parameter. 

This vector will be printed on stdout at the end of the program; for instance, if the parameter name is \char`\"{}vector\char`\"{} and the vector holds the array \{ 1, 2, 3, 4 \}, the output on stdout would be of the following form\+:


\begin{DoxyCode}
vector: 1, 2, 3, 4
\end{DoxyCode}


If the parameter is not set by the end of the program, a fatal runtime error will be issued.


\begin{DoxyParams}{Parameters}
{\em T} & Type of the parameter. \\
\hline
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & An alias for the parameter (one letter).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 873 of file param.\+hpp.

\mbox{\label{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}} 
\index{param.\+hpp@{param.\+hpp}!P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO@{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO}}
\index{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO@{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO}!param.\+hpp@{param.\+hpp}}
\subsubsection{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO}
{\footnotesize\ttfamily \#define P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+FO(\begin{DoxyParamCaption}\item[{}]{N\+A\+ME,  }\item[{}]{S\+H\+O\+R\+T\+\_\+\+D\+E\+SC,  }\item[{}]{D\+E\+SC,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} mlpack::util::ProgramDoc \(\backslash\)
    cli\_programdoc\_dummy\_object = mlpack::util::ProgramDoc(NAME, SHORT\_DESC, \(\backslash\)
    []() \{ \textcolor{keywordflow}{return} DESC; \}, \{ \_\_VA\_ARGS\_\_ \} )
\end{DoxyCode}


Document an executable. 

Only one instance of this macro should be present in your program! Therefore, use it in the main.\+cpp (or corresponding executable) in your program.

\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+A\+R\+A\+M\+\_\+\+F\+L\+A\+G()}{p.}{param_8hpp_a59a38dfe16c56a278bd89817216a3739}, \doxyref{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N()}{p.}{param_8hpp_a627025f18abd2735345f03fd733ccd9b}, \doxyref{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N()}{p.}{param_8hpp_a14e7059294c684b01128819daea241d4}, \doxyref{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N()}{p.}{param_8hpp_a9514ae93b51ba592bc3299da8326bb80}, \doxyref{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N()}{p.}{param_8hpp_a8431e7deab47987cfdb2ae3f242c72bc}, \doxyref{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+U\+T()}{p.}{param_8hpp_a50b8bfabec3f0b64fb6e15837da50aa0}, \doxyref{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+U\+T()}{p.}{param_8hpp_aa39a5fa65308f2d5581c01cfae5f9203}, \doxyref{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+U\+T()}{p.}{param_8hpp_ac24919def62bd93f462cc3ff9d555cbc}, \doxyref{P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+I\+N\+\_\+\+R\+E\+Q()}{p.}{param_8hpp_a59102e55c5d69d23909a75bd6093f816}, \doxyref{P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+I\+N\+\_\+\+R\+E\+Q()}{p.}{param_8hpp_a1236858e19f2e8be7da663d4aecfac9f}, \doxyref{P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+I\+N\+\_\+\+R\+E\+Q()}{p.}{param_8hpp_a39f209691f1ca8c649a40cb22cea5408}, \doxyref{P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+I\+N\+\_\+\+R\+E\+Q()}{p.}{param_8hpp_a83c3be131e322e0a661c8ddf9c3c7df6}, P\+A\+R\+A\+M\+\_\+\+I\+N\+T\+\_\+\+O\+U\+T\+\_\+\+R\+E\+Q(), P\+A\+R\+A\+M\+\_\+\+D\+O\+U\+B\+L\+E\+\_\+\+O\+U\+T\+\_\+\+R\+E\+Q(), P\+A\+R\+A\+M\+\_\+\+V\+E\+C\+T\+O\+R\+\_\+\+O\+U\+T\+\_\+\+R\+E\+Q(), P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G\+\_\+\+O\+U\+T\+\_\+\+R\+E\+Q().
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em N\+A\+ME} & Short string representing the name of the program. \\
\hline
{\em S\+H\+O\+R\+T\+\_\+\+D\+E\+SC} & Short two-\/sentence description of the program; it should describe what the program implements and does, and a quick overview of how it can be used and what it should be used for. \\
\hline
{\em D\+E\+SC} & Long string describing what the program does and possibly a simple usage example. Newlines should not be used here; this is taken care of by C\+LI (however, you can explicitly specify newlines to denote new paragraphs). You can also use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G(), P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T(), and others. \\
\hline
{\em ...} & A set of \doxyref{S\+E\+E\+\_\+\+A\+L\+S\+O()}{p.}{param_8hpp_ab206487480eb967b4faf0bec78b5e097} macros that are used for generating documentation. See the \doxyref{S\+E\+E\+\_\+\+A\+L\+S\+O()}{p.}{param_8hpp_ab206487480eb967b4faf0bec78b5e097} macro. This is a varargs argument, so you can add as many \doxyref{S\+E\+E\+\_\+\+A\+L\+S\+O()}{p.}{param_8hpp_ab206487480eb967b4faf0bec78b5e097}s as you like. \\
\hline
\end{DoxyParams}


Definition at line 71 of file param.\+hpp.

\mbox{\label{param_8hpp_ab206487480eb967b4faf0bec78b5e097}} 
\index{param.\+hpp@{param.\+hpp}!S\+E\+E\+\_\+\+A\+L\+SO@{S\+E\+E\+\_\+\+A\+L\+SO}}
\index{S\+E\+E\+\_\+\+A\+L\+SO@{S\+E\+E\+\_\+\+A\+L\+SO}!param.\+hpp@{param.\+hpp}}
\subsubsection{S\+E\+E\+\_\+\+A\+L\+SO}
{\footnotesize\ttfamily \#define S\+E\+E\+\_\+\+A\+L\+SO(\begin{DoxyParamCaption}\item[{}]{D\+E\+S\+C\+R\+I\+P\+T\+I\+ON,  }\item[{}]{L\+I\+NK }\end{DoxyParamCaption})~\{D\+E\+S\+C\+R\+I\+P\+T\+I\+ON, L\+I\+NK\}}



Provide a link for a binding\textquotesingle{}s \char`\"{}see also\char`\"{} documentation section, which is primarily (but not necessarily exclusively) used by the Markdown bindings This link can be specified by calling S\+E\+E\+\_\+\+A\+L\+SO(\char`\"{}description\char`\"{}, \char`\"{}link\char`\"{}), where \char`\"{}description\char`\"{} is the description of the link and \char`\"{}link\char`\"{} may be one of the following\+: 


\begin{DoxyItemize}
\item A direct U\+RL, starting with {\tt http\+://} or {\tt https\+://}.
\item A page anchor for documentation, referencing another binding by its C\+Make binding name, i.\+e. \char`\"{}\#knn\char`\"{}.
\item A link to a Doxygen page, using the mangled Doxygen name after a \textquotesingle{}@doxygen/\textquotesingle{}, i.\+e., \char`\"{}@doxygen/mlpack1\+\_\+1\+\_\+adaboost1\+\_\+1\+\_\+\+Ada\+Boost\char`\"{}. 
\end{DoxyItemize}

Definition at line 45 of file param.\+hpp.

\mbox{\label{param_8hpp_a56a316ac6f3ea218df55afae8376ce4e}} 
\index{param.\+hpp@{param.\+hpp}!T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE@{T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}}
\index{T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE@{T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}!param.\+hpp@{param.\+hpp}}
\subsubsection{T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE}
{\footnotesize\ttfamily \#define T\+U\+P\+L\+E\+\_\+\+T\+Y\+PE~std\+::tuple$<$\textbf{ mlpack\+::data\+::\+Dataset\+Info}, arma\+::mat$>$}



Define an input Dataset\+Info/matrix parameter. 

From the command line, the user can specify the file that holds the matrix, using the name of the matrix parameter with \char`\"{}\+\_\+file\char`\"{} appended (and the same alias). So for instance, if the name of the matrix parameter was \char`\"{}matrix\char`\"{}, the user could specify that the \char`\"{}matrix\char`\"{} matrix was held in file.\+csv by giving the parameter


\begin{DoxyCode}
--matrix\_file file.csv
\end{DoxyCode}


Then the Dataset\+Info and matrix type could be accessed with


\begin{DoxyCode}
DatasetInfo d = std::move(
    CLI::GetParam<std::tuple<DatasetInfo, arma::mat>>(\textcolor{stringliteral}{"matrix"}).get<0>());
arma::mat m = std::move(
    CLI::GetParam<std::tuple<DatasetInfo, arma::mat>>(\textcolor{stringliteral}{"matrix"}).get<1>());
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em ID} & Name of the parameter. \\
\hline
{\em D\+E\+SC} & Quick description of the parameter (1-\/2 sentences). Don\textquotesingle{}t use printing macros like P\+R\+I\+N\+T\+\_\+\+P\+A\+R\+A\+M\+\_\+\+S\+T\+R\+I\+N\+G() or P\+R\+I\+N\+T\+\_\+\+D\+A\+T\+A\+S\+E\+T() or others here---it will cause problems. \\
\hline
{\em A\+L\+I\+AS} & One-\/character string representing the alias of the parameter.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxyref{mlpack\+::\+C\+LI}{p.}{classmlpack_1_1CLI}, \doxyref{P\+R\+O\+G\+R\+A\+M\+\_\+\+I\+N\+F\+O()}{p.}{param_8hpp_a855115a809785b9d23c6fad3d3d75a86}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Bug}
\item[\textbf{ Bug}]The {\bfseries C\+O\+U\+N\+T\+ER} variable is used in most cases to guarantee a unique global identifier for options declared using the P\+A\+R\+A\+M\+\_\+$\ast$() macros. However, not all compilers have this support--most notably, gcc $<$ 4.\+3. In that case, the {\bfseries L\+I\+NE} macro is used as an attempt to get a unique global identifier, but collisions are still possible, and they produce bizarre error messages. See {\tt https\+://github.\+com/mlpack/mlpack/issues/100} for more information. \end{DoxyRefDesc}


Definition at line 912 of file param.\+hpp.

