\section{Radical Class Reference}
\label{classmlpack_1_1radical_1_1Radical}\index{Radical@{Radical}}


An implementation of R\+A\+D\+I\+C\+AL, an algorithm for independent component analysis (I\+CA).  


\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ Radical} (const double noise\+Std\+Dev=0.\+175, const size\+\_\+t replicates=30, const size\+\_\+t angles=150, const size\+\_\+t sweeps=0, const size\+\_\+t m=0)
\begin{DoxyCompactList}\small\item\em Set the parameters to R\+A\+D\+I\+C\+AL. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ Angles} () const
\begin{DoxyCompactList}\small\item\em Get the number of angles considered during brute-\/force search. \end{DoxyCompactList}\item 
size\+\_\+t \& \textbf{ Angles} ()
\begin{DoxyCompactList}\small\item\em Modify the number of angles considered during brute-\/force search. \end{DoxyCompactList}\item 
void \textbf{ Copy\+And\+Perturb} (arma\+::mat \&x\+New, const arma\+::mat \&x) const
\begin{DoxyCompactList}\small\item\em Make replicates of each data point (the number of replicates is set in either the constructor or with \doxyref{Replicates()}{p.}{classmlpack_1_1radical_1_1Radical_a5b6329881e39be3d3902098a9572deb8}) and perturb data with Gaussian noise with standard deviation noise\+Std\+Dev. \end{DoxyCompactList}\item 
void \textbf{ Do\+Radical} (const arma\+::mat \&matX, arma\+::mat \&matY, arma\+::mat \&matW)
\begin{DoxyCompactList}\small\item\em Run R\+A\+D\+I\+C\+AL. \end{DoxyCompactList}\item 
double \textbf{ Do\+Radical2D} (const arma\+::mat \&matX)
\begin{DoxyCompactList}\small\item\em Two-\/dimensional version of R\+A\+D\+I\+C\+AL. \end{DoxyCompactList}\item 
double \textbf{ Noise\+Std\+Dev} () const
\begin{DoxyCompactList}\small\item\em Get the standard deviation of the additive Gaussian noise. \end{DoxyCompactList}\item 
double \& \textbf{ Noise\+Std\+Dev} ()
\begin{DoxyCompactList}\small\item\em Modify the standard deviation of the additive Gaussian noise. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ Replicates} () const
\begin{DoxyCompactList}\small\item\em Get the number of Gaussian-\/perturbed replicates used per point. \end{DoxyCompactList}\item 
size\+\_\+t \& \textbf{ Replicates} ()
\begin{DoxyCompactList}\small\item\em Modify the number of Gaussian-\/perturbed replicates used per point. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ Sweeps} () const
\begin{DoxyCompactList}\small\item\em Get the number of sweeps. \end{DoxyCompactList}\item 
size\+\_\+t \& \textbf{ Sweeps} ()
\begin{DoxyCompactList}\small\item\em Modify the number of sweeps. \end{DoxyCompactList}\item 
double \textbf{ Vasicek} (arma\+::vec \&x) const
\begin{DoxyCompactList}\small\item\em Vasicek\textquotesingle{}s m-\/spacing estimator of entropy, with overlap modification from (Learned-\/\+Miller and Fisher, 2003). \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
An implementation of R\+A\+D\+I\+C\+AL, an algorithm for independent component analysis (I\+CA). 

Let X be a matrix where each column is a point and each row a dimension. The goal is to find a square unmixing matrix W such that Y = W X and the rows of Y are independent components.

For more details, see the following paper\+:


\begin{DoxyCode}
@article\{learned2003ica,
  title = \{ICA Using Spacings Estimates of Entropy\},
  author = \{Learned-Miller, E.G. and Fisher III, J.W.\},
  journal = \{Journal of Machine Learning Research\},
  volume = \{4\},
  pages = \{1271--1295\},
  year = \{2003\}
\}
\end{DoxyCode}
 

Definition at line 43 of file radical.\+hpp.



\subsection{Constructor \& Destructor Documentation}
\mbox{\label{classmlpack_1_1radical_1_1Radical_a73314833d92799d972c9d4e4b8060c72}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Radical@{Radical}}
\index{Radical@{Radical}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Radical()}
{\footnotesize\ttfamily \textbf{ Radical} (\begin{DoxyParamCaption}\item[{const double}]{noise\+Std\+Dev = {\ttfamily 0.175},  }\item[{const size\+\_\+t}]{replicates = {\ttfamily 30},  }\item[{const size\+\_\+t}]{angles = {\ttfamily 150},  }\item[{const size\+\_\+t}]{sweeps = {\ttfamily 0},  }\item[{const size\+\_\+t}]{m = {\ttfamily 0} }\end{DoxyParamCaption})}



Set the parameters to R\+A\+D\+I\+C\+AL. 


\begin{DoxyParams}{Parameters}
{\em noise\+Std\+Dev} & Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D \\
\hline
{\em replicates} & Number of Gaussian-\/perturbed replicates to use (per point) in Radical2D \\
\hline
{\em angles} & Number of angles to consider in brute-\/force search during Radical2D \\
\hline
{\em sweeps} & Number of sweeps. Each sweep calls Radical2D once for each pair of dimensions \\
\hline
{\em m} & The variable m from Vasicek\textquotesingle{}s m-\/spacing estimator of entropy. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\mbox{\label{classmlpack_1_1radical_1_1Radical_a61d18904b3f7428d59df5a19828d98aa}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Angles@{Angles}}
\index{Angles@{Angles}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Angles()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily size\+\_\+t Angles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of angles considered during brute-\/force search. 



Definition at line 105 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_af3b681df04bc377802e85603be73f7ef}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Angles@{Angles}}
\index{Angles@{Angles}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Angles()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily size\+\_\+t\& Angles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify the number of angles considered during brute-\/force search. 



Definition at line 107 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_a7f2351a13fb0f79e6362096dd2adf52e}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Copy\+And\+Perturb@{Copy\+And\+Perturb}}
\index{Copy\+And\+Perturb@{Copy\+And\+Perturb}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Copy\+And\+Perturb()}
{\footnotesize\ttfamily void Copy\+And\+Perturb (\begin{DoxyParamCaption}\item[{arma\+::mat \&}]{x\+New,  }\item[{const arma\+::mat \&}]{x }\end{DoxyParamCaption}) const}



Make replicates of each data point (the number of replicates is set in either the constructor or with \doxyref{Replicates()}{p.}{classmlpack_1_1radical_1_1Radical_a5b6329881e39be3d3902098a9572deb8}) and perturb data with Gaussian noise with standard deviation noise\+Std\+Dev. 

\mbox{\label{classmlpack_1_1radical_1_1Radical_a41cca4ead245c15bad562202c8e451ed}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Do\+Radical@{Do\+Radical}}
\index{Do\+Radical@{Do\+Radical}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Do\+Radical()}
{\footnotesize\ttfamily void Do\+Radical (\begin{DoxyParamCaption}\item[{const arma\+::mat \&}]{matX,  }\item[{arma\+::mat \&}]{matY,  }\item[{arma\+::mat \&}]{matW }\end{DoxyParamCaption})}



Run R\+A\+D\+I\+C\+AL. 


\begin{DoxyParams}{Parameters}
{\em matX} & Input data into the algorithm -\/ a matrix where each column is a point and each row is a dimension. \\
\hline
{\em matY} & Estimated independent components -\/ a matrix where each column is a point and each row is an estimated independent component. \\
\hline
{\em matW} & Estimated unmixing matrix, where matY = matW $\ast$ matX. \\
\hline
\end{DoxyParams}
\mbox{\label{classmlpack_1_1radical_1_1Radical_a504d54d5d7cfc34b8e8aa767d235a4f1}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Do\+Radical2D@{Do\+Radical2D}}
\index{Do\+Radical2D@{Do\+Radical2D}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Do\+Radical2\+D()}
{\footnotesize\ttfamily double Do\+Radical2D (\begin{DoxyParamCaption}\item[{const arma\+::mat \&}]{matX }\end{DoxyParamCaption})}



Two-\/dimensional version of R\+A\+D\+I\+C\+AL. 

\mbox{\label{classmlpack_1_1radical_1_1Radical_aa8f8c7112304789e7bcc9742ebe4525e}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Noise\+Std\+Dev@{Noise\+Std\+Dev}}
\index{Noise\+Std\+Dev@{Noise\+Std\+Dev}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Noise\+Std\+Dev()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily double Noise\+Std\+Dev (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the standard deviation of the additive Gaussian noise. 



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

\mbox{\label{classmlpack_1_1radical_1_1Radical_add6b0213843af262328d1c0f848d89f3}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Noise\+Std\+Dev@{Noise\+Std\+Dev}}
\index{Noise\+Std\+Dev@{Noise\+Std\+Dev}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Noise\+Std\+Dev()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily double\& Noise\+Std\+Dev (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify the standard deviation of the additive Gaussian noise. 



Definition at line 97 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_ad4f53c19fa4b6763aa0f920a18fb1f34}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Replicates@{Replicates}}
\index{Replicates@{Replicates}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Replicates()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily size\+\_\+t Replicates (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of Gaussian-\/perturbed replicates used per point. 



Definition at line 100 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_a5b6329881e39be3d3902098a9572deb8}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Replicates@{Replicates}}
\index{Replicates@{Replicates}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Replicates()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily size\+\_\+t\& Replicates (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify the number of Gaussian-\/perturbed replicates used per point. 



Definition at line 102 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_ae5e316ddee04b98e1bb8b8782e97d3fa}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Sweeps@{Sweeps}}
\index{Sweeps@{Sweeps}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Sweeps()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily size\+\_\+t Sweeps (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the number of sweeps. 



Definition at line 110 of file radical.\+hpp.

\mbox{\label{classmlpack_1_1radical_1_1Radical_aa40e2b2449cfd865e3e30a41ce78ea4f}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Sweeps@{Sweeps}}
\index{Sweeps@{Sweeps}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Sweeps()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily size\+\_\+t\& Sweeps (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify the number of sweeps. 



Definition at line 112 of file radical.\+hpp.



References mlpack\+::radical\+::\+Whiten\+Feature\+Major\+Matrix().

\mbox{\label{classmlpack_1_1radical_1_1Radical_a5ab92b41fcbca46d43c3ba20e5a67fe8}} 
\index{mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}!Vasicek@{Vasicek}}
\index{Vasicek@{Vasicek}!mlpack\+::radical\+::\+Radical@{mlpack\+::radical\+::\+Radical}}
\subsubsection{Vasicek()}
{\footnotesize\ttfamily double Vasicek (\begin{DoxyParamCaption}\item[{arma\+::vec \&}]{x }\end{DoxyParamCaption}) const}



Vasicek\textquotesingle{}s m-\/spacing estimator of entropy, with overlap modification from (Learned-\/\+Miller and Fisher, 2003). 


\begin{DoxyParams}{Parameters}
{\em x} & Empirical sample (one-\/dimensional) over which to estimate entropy. \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/3.\+3.\+2/src/mlpack/methods/radical/\textbf{ radical.\+hpp}\end{DoxyCompactItemize}
