\doxysection{gko::\+stop Namespace Reference}
\hypertarget{namespacegko_1_1stop}{}\label{namespacegko_1_1stop}\index{gko::stop@{gko::stop}}


The Stopping criterion namespace.  


\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1Combined}{Combined}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1Combined}{Combined} class is used to combine multiple criterions together through an OR operation. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{Criterion}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1Criterion}{Criterion} class is a base class for all stopping criteria. \end{DoxyCompactList}\item 
struct \doxymbox{\hyperlink{structgko_1_1stop_1_1CriterionArgs}{Criterion\+Args}}
\begin{DoxyCompactList}\small\item\em This struct is used to pass parameters to the Enable\+Default\+Criterion\+Factory\+Criterion\+Factory::\+generate() method. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1Iteration}{Iteration}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1Iteration}{Iteration} class is a stopping criterion which stops the iteration process after a preset number of iterations. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1ResidualNormBase}{Residual\+Norm\+Base}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1ResidualNormBase}{Residual\+Norm\+Base} class provides a framework for stopping criteria related to the residual norm. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1ResidualNorm}{Residual\+Norm}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1ResidualNorm}{Residual\+Norm} class is a stopping criterion which stops the iteration process when the actual residual norm is below a certain threshold relative to. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1ImplicitResidualNorm}{Implicit\+Residual\+Norm}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1ImplicitResidualNorm}{Implicit\+Residual\+Norm} class is a stopping criterion which stops the iteration process when the implicit residual norm is below a certain threshold relative to. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1ResidualNormReduction}{Residual\+Norm\+Reduction}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1ResidualNormReduction}{Residual\+Norm\+Reduction} class is a stopping criterion which stops the iteration process when the residual norm is below a certain threshold relative to the norm of the initial residual, i.\+e. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1RelativeResidualNorm}{Relative\+Residual\+Norm}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1RelativeResidualNorm}{Relative\+Residual\+Norm} class is a stopping criterion which stops the iteration process when the residual norm is below a certain threshold relative to the norm of the right-\/hand side, i.\+e. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1AbsoluteResidualNorm}{Absolute\+Residual\+Norm}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1AbsoluteResidualNorm}{Absolute\+Residual\+Norm} class is a stopping criterion which stops the iteration process when the residual norm is below a certain threshold, i.\+e. \end{DoxyCompactList}\item 
class \doxymbox{\hyperlink{classgko_1_1stop_1_1Time}{Time}}
\begin{DoxyCompactList}\small\item\em The \doxylink{classgko_1_1stop_1_1Time}{Time} class is a stopping criterion which stops the iteration process after a certain amount of time has passed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}\label{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499} 
using {\bfseries Criterion\+Factory} = \doxymbox{\hyperlink{classgko_1_1AbstractFactory}{Abstract\+Factory}}$<$\doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{Criterion}}, \doxymbox{\hyperlink{structgko_1_1stop_1_1CriterionArgs}{Criterion\+Args}}$>$
\begin{DoxyCompactList}\small\item\em Declares an Abstract Factory specialized for Criterions. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Concrete\+Factory, typename Concrete\+Criterion, typename Parameters\+Type, typename Polymorphic\+Base = Criterion\+Factory$>$ }\\using \doxymbox{\hyperlink{namespacegko_1_1stop_a86d2ea982984856278df61b608cd6328}{Enable\+Default\+Criterion\+Factory}}
\begin{DoxyCompactList}\small\item\em This is an alias for the \doxylink{classgko_1_1EnableDefaultFactory}{Enable\+Default\+Factory} mixin, which correctly sets the template parameters to enable a subclass of \doxylink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{Criterion\+Factory}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum class \doxymbox{\hyperlink{group__stop_ga5fe97c4263e876f68b5d4a21f0e615b9}{mode}} \{ {\bfseries absolute}
, {\bfseries initial\+\_\+resnorm}
, {\bfseries rhs\+\_\+norm}
 \}
\begin{DoxyCompactList}\small\item\em The mode for the residual norm criterion. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Factory\+Container$>$ }\\std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{Criterion\+Factory}} $>$ \doxymbox{\hyperlink{group__stop_ga934dd0c4603a3e815c767f7628163d7e}{combine}} (Factory\+Container \&\&factories)
\begin{DoxyCompactList}\small\item\em Combines multiple criterion factories into a single combined criterion factory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The Stopping criterion namespace. 

\doxylink{group__stop}{Stopping criteria} 

\label{doc-typedef-members}
\Hypertarget{namespacegko_1_1stop_doc-typedef-members}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespacegko_1_1stop_a86d2ea982984856278df61b608cd6328}\index{gko::stop@{gko::stop}!EnableDefaultCriterionFactory@{EnableDefaultCriterionFactory}}
\index{EnableDefaultCriterionFactory@{EnableDefaultCriterionFactory}!gko::stop@{gko::stop}}
\doxysubsubsection{\texorpdfstring{EnableDefaultCriterionFactory}{EnableDefaultCriterionFactory}}
{\footnotesize\ttfamily \label{namespacegko_1_1stop_a86d2ea982984856278df61b608cd6328} 
template$<$typename Concrete\+Factory, typename Concrete\+Criterion, typename Parameters\+Type, typename Polymorphic\+Base = Criterion\+Factory$>$ \\
using \doxymbox{\hyperlink{namespacegko_1_1stop_a86d2ea982984856278df61b608cd6328}{gko::\+stop::\+\+Enable\+Default\+Criterion\+Factory}}}

{\bfseries Initial value:\+}
\begin{DoxyCode}{0}
\DoxyCodeLine{}
\DoxyCodeLine{\doxymbox{\hyperlink{classgko_1_1EnableDefaultFactory}{EnableDefaultFactory}}<ConcreteFactory,\ ConcreteCriterion,\ ParametersType,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PolymorphicBase>}

\end{DoxyCode}


This is an alias for the \doxylink{classgko_1_1EnableDefaultFactory}{Enable\+Default\+Factory} mixin, which correctly sets the template parameters to enable a subclass of \doxylink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{Criterion\+Factory}. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Concrete\+Factory} & the concrete factory which is being implemented \+[CRTP parameter]\+ \\
\hline
{\em Concrete\+Criterion} & the concrete \doxylink{classgko_1_1stop_1_1Criterion}{Criterion} type which this factory produces, needs to have a constructor which takes a const Concrete\+Factory \texorpdfstring{$\ast$}{*}, and a const \doxylink{structgko_1_1stop_1_1CriterionArgs}{Criterion\+Args} \texorpdfstring{$\ast$}{*} as parameters. \\
\hline
{\em Parameters\+Type} & a subclass of \doxylink{classgko_1_1enable__parameters__type}{enable\+\_\+parameters\+\_\+type} template which defines all of the parameters of the factory \\
\hline
{\em Polymorphic\+Base} & parent of Concrete\+Factory in the polymorphic hierarchy, has to be a subclass of \doxylink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{Criterion\+Factory} \\
\hline
\end{DoxyTemplParams}
