\section{Complete\+Incremental\+Termination$<$ Termination\+Policy $>$ Class Template Reference}
\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination}\index{Complete\+Incremental\+Termination$<$ Termination\+Policy $>$@{Complete\+Incremental\+Termination$<$ Termination\+Policy $>$}}


This class acts as a wrapper for basic termination policies to be used by \doxyref{S\+V\+D\+Complete\+Incremental\+Learning}{p.}{classmlpack_1_1amf_1_1SVDCompleteIncrementalLearning}.  


\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ Complete\+Incremental\+Termination} (Termination\+Policy t\+Policy=Termination\+Policy())
\begin{DoxyCompactList}\small\item\em Empty constructor. \end{DoxyCompactList}\item 
const double \& \textbf{ Index} () const
\begin{DoxyCompactList}\small\item\em Get current value of residue. \end{DoxyCompactList}\item 
{\footnotesize template$<$class Mat\+Type $>$ }\\void \textbf{ Initialize} (const Mat\+Type \&V)
\begin{DoxyCompactList}\small\item\em Initializes the termination policy before stating the factorization. \end{DoxyCompactList}\item 
void \textbf{ Initialize} (const arma\+::sp\+\_\+mat \&V)
\begin{DoxyCompactList}\small\item\em Initializes the termination policy before stating the factorization. \end{DoxyCompactList}\item 
bool \textbf{ Is\+Converged} (arma\+::mat \&W, arma\+::mat \&H)
\begin{DoxyCompactList}\small\item\em Check if termination criterion is met, if the current iteration means that each point has been visited. \end{DoxyCompactList}\item 
const size\+\_\+t \& \textbf{ Iteration} () const
\begin{DoxyCompactList}\small\item\em Get current iteration count. \end{DoxyCompactList}\item 
const size\+\_\+t \& \textbf{ Max\+Iterations} () const
\begin{DoxyCompactList}\small\item\em Access upper limit of iteration count. \end{DoxyCompactList}\item 
size\+\_\+t \& \textbf{ Max\+Iterations} ()
\begin{DoxyCompactList}\small\item\em Modify maximum number of iterations. \end{DoxyCompactList}\item 
const Termination\+Policy \& \textbf{ T\+Policy} () const
\begin{DoxyCompactList}\small\item\em Access the wrapped termination policy. \end{DoxyCompactList}\item 
Termination\+Policy \& \textbf{ T\+Policy} ()
\begin{DoxyCompactList}\small\item\em Modify the wrapped termination policy. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Termination\+Policy$>$\newline
class mlpack\+::amf\+::\+Complete\+Incremental\+Termination$<$ Termination\+Policy $>$}

This class acts as a wrapper for basic termination policies to be used by \doxyref{S\+V\+D\+Complete\+Incremental\+Learning}{p.}{classmlpack_1_1amf_1_1SVDCompleteIncrementalLearning}. 

This class calls the wrapped class functions after every n calls to main class functions where n is the number of non-\/zero entries in the matrix being factorized. This is necessary for \doxyref{S\+V\+D\+Complete\+Incremental\+Learning}{p.}{classmlpack_1_1amf_1_1SVDCompleteIncrementalLearning}, because otherwise \doxyref{Is\+Converged()}{p.}{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a21aa00d1db37e94076e46c66313514df} is called after every point, which is very slow.

\begin{DoxySeeAlso}{See also}
\doxyref{A\+MF}{p.}{classmlpack_1_1amf_1_1AMF}, \doxyref{S\+V\+D\+Complete\+Incremental\+Learning}{p.}{classmlpack_1_1amf_1_1SVDCompleteIncrementalLearning} 
\end{DoxySeeAlso}


Definition at line 29 of file complete\+\_\+incremental\+\_\+termination.\+hpp.



\subsection{Constructor \& Destructor Documentation}
\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a486f3682a0aab4d83c75ee2e41fb3146}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Complete\+Incremental\+Termination@{Complete\+Incremental\+Termination}}
\index{Complete\+Incremental\+Termination@{Complete\+Incremental\+Termination}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Complete\+Incremental\+Termination()}
{\footnotesize\ttfamily \textbf{ Complete\+Incremental\+Termination} (\begin{DoxyParamCaption}\item[{Termination\+Policy}]{t\+Policy = {\ttfamily TerminationPolicy()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Empty constructor. 


\begin{DoxyParams}{Parameters}
{\em t\+Policy} & object of wrapped class. \\
\hline
\end{DoxyParams}


Definition at line 37 of file complete\+\_\+incremental\+\_\+termination.\+hpp.



\subsection{Member Function Documentation}
\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a866b70f9202a81d2bdbb116bc2683eb2}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Index@{Index}}
\index{Index@{Index}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Index()}
{\footnotesize\ttfamily const double\& Index (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get current value of residue. 



Definition at line 92 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a7cd2df552c1f471b3248ac66291133f3}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Initialize()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Initialize (\begin{DoxyParamCaption}\item[{const Mat\+Type \&}]{V }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Initializes the termination policy before stating the factorization. 


\begin{DoxyParams}{Parameters}
{\em V} & Input matrix to be factorized. \\
\hline
\end{DoxyParams}


Definition at line 47 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a6f327319464cc81255ae95e73682c391}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Initialize()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Initialize (\begin{DoxyParamCaption}\item[{const arma\+::sp\+\_\+mat \&}]{V }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Initializes the termination policy before stating the factorization. 

This is a specialization for sparse matrices.


\begin{DoxyParams}{Parameters}
{\em V} & Input matrix to be factorized. \\
\hline
\end{DoxyParams}


Definition at line 62 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a21aa00d1db37e94076e46c66313514df}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Is\+Converged@{Is\+Converged}}
\index{Is\+Converged@{Is\+Converged}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Is\+Converged()}
{\footnotesize\ttfamily bool Is\+Converged (\begin{DoxyParamCaption}\item[{arma\+::mat \&}]{W,  }\item[{arma\+::mat \&}]{H }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Check if termination criterion is met, if the current iteration means that each point has been visited. 


\begin{DoxyParams}{Parameters}
{\em W} & Basis matrix of output. \\
\hline
{\em H} & Encoding matrix of output. \\
\hline
\end{DoxyParams}


Definition at line 78 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a5226c80136390904f5893e72749211e6}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Iteration@{Iteration}}
\index{Iteration@{Iteration}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Iteration()}
{\footnotesize\ttfamily const size\+\_\+t\& Iteration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get current iteration count. 



Definition at line 95 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a26b939a18b15788ad266b8eda3f301e6}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Max\+Iterations@{Max\+Iterations}}
\index{Max\+Iterations@{Max\+Iterations}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Max\+Iterations()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const size\+\_\+t\& Max\+Iterations (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Access upper limit of iteration count. 



Definition at line 98 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_acda675ab4ab86b95c92bc33bc391a61b}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!Max\+Iterations@{Max\+Iterations}}
\index{Max\+Iterations@{Max\+Iterations}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{Max\+Iterations()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily size\+\_\+t\& Max\+Iterations (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify maximum number of iterations. 



Definition at line 100 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_a523fe69db072d54bbb214e80d28db0d1}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!T\+Policy@{T\+Policy}}
\index{T\+Policy@{T\+Policy}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{T\+Policy()\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const Termination\+Policy\& T\+Policy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Access the wrapped termination policy. 



Definition at line 103 of file complete\+\_\+incremental\+\_\+termination.\+hpp.

\mbox{\label{classmlpack_1_1amf_1_1CompleteIncrementalTermination_ab45272397c548991adca60a51a1e00dc}} 
\index{mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}!T\+Policy@{T\+Policy}}
\index{T\+Policy@{T\+Policy}!mlpack\+::amf\+::\+Complete\+Incremental\+Termination@{mlpack\+::amf\+::\+Complete\+Incremental\+Termination}}
\subsubsection{T\+Policy()\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Termination\+Policy\& T\+Policy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Modify the wrapped termination policy. 



Definition at line 105 of file complete\+\_\+incremental\+\_\+termination.\+hpp.



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/amf/termination\+\_\+policies/\textbf{ complete\+\_\+incremental\+\_\+termination.\+hpp}\end{DoxyCompactItemize}
