\section{A\-I\-D\-A\-:\-:I\-Function\-R\-O\-O\-T Class Reference}
\label{classAIDA_1_1IFunctionROOT}\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
Inheritance diagram for A\-I\-D\-A\-:\-:I\-Function\-R\-O\-O\-T\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classAIDA_1_1IFunctionROOT}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual {\bf $\sim$\-I\-Function\-R\-O\-O\-T} ()\label{classAIDA_1_1IFunctionROOT_a8cb61120c44ba26dcb3d5f15358c1309}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual std\-::string {\bf title} () const 
\begin{DoxyCompactList}\small\item\em Get the Function's title. \end{DoxyCompactList}\item 
virtual bool {\bf set\-Title} (const std\-::string \&{\bf title})
\begin{DoxyCompactList}\small\item\em Set the histogram title. \end{DoxyCompactList}\item 
virtual double {\bf value} (const std\-::vector$<$ double $>$ \&x) const \label{classAIDA_1_1IFunctionROOT_aade08a3266c697e2f537ffdfec92e101}

\begin{DoxyCompactList}\small\item\em Scalar value of the function. \end{DoxyCompactList}\item 
virtual int {\bf dimension} () const \label{classAIDA_1_1IFunctionROOT_ac4062bb97091f7d63aa67df10d7241e5}

\begin{DoxyCompactList}\small\item\em Dimensionality of the domain space. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Equal} (const {\bf I\-Function} \&f) const 
\begin{DoxyCompactList}\small\item\em Compare if functions are the same. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf gradient} (const std\-::vector$<$ double $>$ \&x) const 
\begin{DoxyCompactList}\small\item\em Gradient of the function. \end{DoxyCompactList}\item 
virtual bool {\bf provides\-Gradient} () const \label{classAIDA_1_1IFunctionROOT_a78146ba2f37215f0bb90eddd833e099c}

\begin{DoxyCompactList}\small\item\em Determine whether function is able to compute gradient. \end{DoxyCompactList}\item 
virtual std\-::string {\bf variable\-Name} (int i) const \label{classAIDA_1_1IFunctionROOT_a40ec1ad065953cafd1d147e68bf386d3}

\begin{DoxyCompactList}\small\item\em Get the symbolic name of i-\/th variable. \end{DoxyCompactList}\item 
virtual std\-::vector$<$ std\-::string $>$ {\bf variable\-Names} () const \label{classAIDA_1_1IFunctionROOT_a2a1b115579b692c1fd90ab3d8d8278b4}

\begin{DoxyCompactList}\small\item\em Get all the names in a vector. \end{DoxyCompactList}\item 
virtual bool {\bf set\-Parameters} (const std\-::vector$<$ double $>$ \&params)\label{classAIDA_1_1IFunctionROOT_a42499bca5194e0f80e12c23c5791c020}

\begin{DoxyCompactList}\small\item\em Set new vector of parameters. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf parameters} () const \label{classAIDA_1_1IFunctionROOT_a7c10df7248e26666b4b5050076dc5fba}

\begin{DoxyCompactList}\small\item\em Retrieve current vector of parameters. \end{DoxyCompactList}\item 
virtual int {\bf number\-Of\-Parameters} () const \label{classAIDA_1_1IFunctionROOT_acd368834b515ca80cb8370d1327877be}

\begin{DoxyCompactList}\small\item\em Number of parameters. \end{DoxyCompactList}\item 
virtual std\-::vector$<$ std\-::string $>$ {\bf parameter\-Names} () const 
\begin{DoxyCompactList}\small\item\em Names of paramaters. \end{DoxyCompactList}\item 
virtual bool {\bf set\-Parameter} (const std\-::string \&name, double x)
\begin{DoxyCompactList}\small\item\em Set parameter's value by name. \end{DoxyCompactList}\item 
virtual double {\bfseries parameter} (const std\-::string \&name) const \label{classAIDA_1_1IFunctionROOT_a1e23be28a6aa4dc9c2313266b70c2821}

\item 
virtual int {\bf index\-Of\-Parameter} (const std\-::string \&name) const 
\begin{DoxyCompactList}\small\item\em Return -\/1 if parameter not found (name undefined). \end{DoxyCompactList}\item 
virtual {\bf I\-Annotation} \& {\bfseries annotation} ()\label{classAIDA_1_1IFunctionROOT_a4b0870e7307d2b74251212c279b821af}

\item 
virtual const {\bf I\-Annotation} \& {\bfseries annotation} () const \label{classAIDA_1_1IFunctionROOT_ab6828d84c3a41353d9e1263e1634a303}

\item 
virtual std\-::string {\bf codelet\-String} () const 
\begin{DoxyCompactList}\small\item\em String describing the metatype and implementation of the function. \end{DoxyCompactList}\item 
virtual void $\ast$ {\bf cast} (const std\-::string \&class\-Name) const 
\begin{DoxyCompactList}\small\item\em See \doxyref{I\-Managed\-Object}{p.}{classAIDA_1_1IManagedObject} for a description. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!cast@{cast}}
\index{cast@{cast}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{cast}]{\setlength{\rightskip}{0pt plus 5cm}void $\ast$ I\-Function\-R\-O\-O\-T\-::cast (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{class\-Name}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_a2e641bf8b164af88eed2bcacff89861f}


See \doxyref{I\-Managed\-Object}{p.}{classAIDA_1_1IManagedObject} for a description. 


\begin{DoxyParams}{Parameters}
{\em class\-Name} & The name of the class to cast on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The right pointer. Return 0 if failure. 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_a2b5310454bee22b36bd85e975ce0dd02}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!codelet\-String@{codelet\-String}}
\index{codelet\-String@{codelet\-String}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{codelet\-String}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string I\-Function\-R\-O\-O\-T\-::codelet\-String (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_ad11c3d693ee01f9025bcda0fb614a20e}


String describing the metatype and implementation of the function. 

Generic format of the string\-:

codelet\-:\-T\-Y\-P\-E\-:L\-O\-C\-A\-T\-I\-O\-N

T\-Y\-P\-E part contains only a 'typename' string which is a metatype identifier (used in plugins and catalogues)

L\-O\-C\-A\-T\-I\-O\-N may be\-: 'file', 'verbatim', or 'catalogue'

Detailed description\-:

codelet\-:typename -\/ no location specified (using 'catalogue')

codelet\-:typename\-:file\-:/filename.cpp -\/ a c++ source file codelet\-:typename\-:file\-:/filename.py -\/ a python source file codelet\-:typename\-:file\-:/filename.so -\/ a shared library

codelet\-:typename\-:catalogue -\/ entry in a catalogue repository

codelet\-:typename\-:verbatim\-:cpp \par
 -\/ c++ source file included verbatim after \par
 codelet\-:typename\-:verbatim\-:py \par
 -\/ python source file included verbatim aftern \par


Comments\-:

{\tt file\-:/filename} is a relative path to \$\-A\-I\-D\-A\-\_\-\-F\-U\-N\-C\-T\-I\-O\-N\-\_\-\-D\-E\-F\-A\-U\-L\-T\-\_\-\-D\-I\-R {\tt file\-://filename} is an absolute path

Examples\-:

codelet\-:\-G\-:catalogue codelet\-:user\-Sinus\-:verbatim\-:cpp \par
 \{ return sin(x); \} 

Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_aa89694ba46649893afa0bac3ad75a25f}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!gradient@{gradient}}
\index{gradient@{gradient}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{gradient}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::vector$<$ double $>$ \& I\-Function\-R\-O\-O\-T\-::gradient (
\begin{DoxyParamCaption}
\item[{const std\-::vector$<$ double $>$ \&}]{x}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_abc31a264ba9402492872bcc386e38d44}


Gradient of the function. 

The result is valid only if \doxyref{provides\-Gradient()}{p.}{classAIDA_1_1IFunctionROOT_a78146ba2f37215f0bb90eddd833e099c}==true. Otherwise the result is some default (empty) vector. 

Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_a3eb346bcbc5f5d6f468f19a0496e0bae}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!index\-Of\-Parameter@{index\-Of\-Parameter}}
\index{index\-Of\-Parameter@{index\-Of\-Parameter}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{index\-Of\-Parameter}]{\setlength{\rightskip}{0pt plus 5cm}int I\-Function\-R\-O\-O\-T\-::index\-Of\-Parameter (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{name}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_ab71b568ed0e4e280ea4229a89e44fad9}


Return -\/1 if parameter not found (name undefined). 

Leave it because there are use cases -\/ some users prefer to use numbers. 

Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_addaccfc86dd736ff363405f233019f2e}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!is\-Equal@{is\-Equal}}
\index{is\-Equal@{is\-Equal}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{is\-Equal}]{\setlength{\rightskip}{0pt plus 5cm}bool I\-Function\-R\-O\-O\-T\-::is\-Equal (
\begin{DoxyParamCaption}
\item[{const {\bf I\-Function} \&}]{f}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_acd718706f4de12a07ca8449480411011}


Compare if functions are the same. 

P\-E\-N\-D\-I\-N\-G\-: define exactly what it means ;) 

Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_a5a4e5e53fc4229b7f99aaed5a3bf1679}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!parameter\-Names@{parameter\-Names}}
\index{parameter\-Names@{parameter\-Names}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{parameter\-Names}]{\setlength{\rightskip}{0pt plus 5cm}std\-::vector$<$ std\-::string $>$ I\-Function\-R\-O\-O\-T\-::parameter\-Names (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_a699b320a6b3dd6ccaa6a51a422170b46}


Names of paramaters. 

Names should be unique. Case-\/insensitive for comparison. Case-\/sensitive for storage and output. All or several names may be left blank \char`\"{}\char`\"{} if the implementation does not want to provide them. 

Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_a6e0b5eb321a85bcebba450c6deb593fd}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!set\-Parameter@{set\-Parameter}}
\index{set\-Parameter@{set\-Parameter}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{set\-Parameter}]{\setlength{\rightskip}{0pt plus 5cm}bool I\-Function\-R\-O\-O\-T\-::set\-Parameter (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{name, }
\item[{double}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_ac592aa384e22a01f24bdb9681bbb802e}


Set parameter's value by name. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the parameter. \\
\hline
{\em x} & The new value of the parameter. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
false If name does not correspond to a parameter. 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_aa57ced60c7761a9e0dc7911fed0c8314}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!set\-Title@{set\-Title}}
\index{set\-Title@{set\-Title}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{set\-Title}]{\setlength{\rightskip}{0pt plus 5cm}bool I\-Function\-R\-O\-O\-T\-::set\-Title (
\begin{DoxyParamCaption}
\item[{const std\-::string \&}]{title}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_ab58ae905a7176392883aa02c90616724}


Set the histogram title. 


\begin{DoxyParams}{Parameters}
{\em title} & The title. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
false If title cannot be changed. 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_ae111038429daa751bea0542d86af89f0}.

\index{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}!title@{title}}
\index{title@{title}!AIDA::IFunctionROOT@{A\-I\-D\-A\-::\-I\-Function\-R\-O\-O\-T}}
\subsubsection[{title}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string I\-Function\-R\-O\-O\-T\-::title (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classAIDA_1_1IFunctionROOT_a976e59da3e135459dd4fec46a0cd6272}


Get the Function's title. 

\begin{DoxyReturn}{Returns}
The Function's title. 
\end{DoxyReturn}


Implements {\bf A\-I\-D\-A\-::\-I\-Function} \doxyref{}{p.}{classAIDA_1_1IFunction_af12c15a86ab1848aa13a68b86d5a814e}.



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
I\-Function\-R\-O\-O\-T.\-h\item 
I\-Function\-R\-O\-O\-T.\-cc\end{DoxyCompactItemize}
