\doxysection{gko::\+stop::\+Criterion::\+Updater Class Reference}
\hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater}{}\label{classgko_1_1stop_1_1Criterion_1_1Updater}\index{gko::stop::Criterion::Updater@{gko::stop::Criterion::Updater}}


The \doxylink{classgko_1_1stop_1_1Criterion_1_1Updater}{Updater} class serves for convenient argument passing to the \doxylink{classgko_1_1stop_1_1Criterion}{Criterion}\textquotesingle{}s check function.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+stop/\+criterion.\+hpp$>$}



Collaboration diagram for gko::\+stop::\+Criterion::\+Updater:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=240pt]{classgko_1_1stop_1_1Criterion_1_1Updater__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}\label{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd} 
{\bfseries Updater} (const Updater \&)=delete
\begin{DoxyCompactList}\small\item\em Prevent copying and moving the object This is to enforce the use of argument passing and calling check at the same time. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_acaf5e487db911d5d4375c2e802888cd5}\label{classgko_1_1stop_1_1Criterion_1_1Updater_acaf5e487db911d5d4375c2e802888cd5} 
{\bfseries Updater} (Updater \&\&)=delete
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a62b979080f0af5225c78ed5785a2a7eb}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a62b979080f0af5225c78ed5785a2a7eb} 
\doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries operator=} (const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \&)=delete
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a09d8c9822a2cf8f0c644b03eae4a7637}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a09d8c9822a2cf8f0c644b03eae4a7637} 
\doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries operator=} (\doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \&\&)=delete
\item 
bool \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_a048d209ce640e2b71fcafa8a056a58a4}{check}} (\doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}} stopping\+\_\+id, bool set\+\_\+finalized, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} $>$ \texorpdfstring{$\ast$}{*}stop\+\_\+status, bool \texorpdfstring{$\ast$}{*}one\+\_\+changed) const
\begin{DoxyCompactList}\small\item\em Calls the parent \doxylink{classgko_1_1stop_1_1Criterion}{Criterion} object\textquotesingle{}s check method. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a9964cbdef592b2dd3867485943545c63}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a9964cbdef592b2dd3867485943545c63} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries num\+\_\+iterations} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} const \&value) const
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a321c13f76d5ed9c4b0111a7949d25e1f}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a321c13f76d5ed9c4b0111a7949d25e1f} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries ignore\+\_\+residual\+\_\+check} (bool const \&value) const
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a56a554360a4184f5106a185641ae3f3c}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a56a554360a4184f5106a185641ae3f3c} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries residual} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ value) const
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_aa6368f784819f41b5d0dce155adaa74f}\label{classgko_1_1stop_1_1Criterion_1_1Updater_aa6368f784819f41b5d0dce155adaa74f} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries residual\+\_\+norm} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ value) const
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a868b8f64eca27522a3d8f0219d576d57}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a868b8f64eca27522a3d8f0219d576d57} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries implicit\+\_\+sq\+\_\+residual\+\_\+norm} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ value) const
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_acd88a0656a427863fbfd162a6ed9fc16}\label{classgko_1_1stop_1_1Criterion_1_1Updater_acd88a0656a427863fbfd162a6ed9fc16} 
const \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion_1_1Updater_aa8356e2fbfaf46cab62d8f8a905ab8bd}{Updater}} \& {\bfseries solution} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ value) const
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a818e1dfb95076eef64282feb8f9a016e}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a818e1dfb95076eef64282feb8f9a016e} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries num\+\_\+iterations\+\_\+} \{\}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_aca312ab75ae5367be87f222a9dcf6351}\label{classgko_1_1stop_1_1Criterion_1_1Updater_aca312ab75ae5367be87f222a9dcf6351} 
bool {\bfseries ignore\+\_\+residual\+\_\+check\+\_\+} \{\}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a64fa344e399f7892305445feb1fcc699}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a64fa344e399f7892305445feb1fcc699} 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} {\bfseries residual\+\_\+} \{\}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a0b47d6bdae5cbb0e76992048a7eee195}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a0b47d6bdae5cbb0e76992048a7eee195} 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} {\bfseries residual\+\_\+norm\+\_\+} \{\}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_ac1416c94ff677c04d498134d48fdef13}\label{classgko_1_1stop_1_1Criterion_1_1Updater_ac1416c94ff677c04d498134d48fdef13} 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} {\bfseries implicit\+\_\+sq\+\_\+residual\+\_\+norm\+\_\+} \{\}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a523b02358de3b09eaa618253ad6c6a05}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a523b02358de3b09eaa618253ad6c6a05} 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} {\bfseries solution\+\_\+} \{\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a2dbeac1289f0ae8fdee9cc7bad70e656}\label{classgko_1_1stop_1_1Criterion_1_1Updater_a2dbeac1289f0ae8fdee9cc7bad70e656} 
class {\bfseries Criterion}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \doxylink{classgko_1_1stop_1_1Criterion_1_1Updater}{Updater} class serves for convenient argument passing to the \doxylink{classgko_1_1stop_1_1Criterion}{Criterion}\textquotesingle{}s check function. 

The pattern used is a Builder, except \doxylink{classgko_1_1stop_1_1Criterion_1_1Updater}{Updater} builds a function\textquotesingle{}s arguments before calling the function itself, and does not build an object. This allows calling a \doxylink{classgko_1_1stop_1_1Criterion}{Criterion}\textquotesingle{}s check in the form of:\+ stop\+\_\+criterion-\/\texorpdfstring{$>$}{>}\doxylink{classgko_1_1stop_1_1Criterion_a47e22c46eaa742d709dcbf0d26d93e6c}{update()} .num\+\_\+iterations(num\+\_\+iterations) .ignore\+\_\+residual\+\_\+check(ignore\+\_\+residual\+\_\+check) .residual\+\_\+norm(residual\+\_\+norm) .implicit\+\_\+sq\+\_\+residual\+\_\+norm(implicit\+\_\+sq\+\_\+residual\+\_\+norm) .residual(residual) .solution(solution) .check(converged);

If there is a need for a new form of data to pass to the \doxylink{classgko_1_1stop_1_1Criterion}{Criterion}, it should be added here. 

\label{doc-func-members}
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1stop_1_1Criterion_1_1Updater_a048d209ce640e2b71fcafa8a056a58a4}\index{gko::stop::Criterion::Updater@{gko::stop::Criterion::Updater}!check@{check}}
\index{check@{check}!gko::stop::Criterion::Updater@{gko::stop::Criterion::Updater}}
\doxysubsubsection{\texorpdfstring{check()}{check()}}
{\footnotesize\ttfamily \label{classgko_1_1stop_1_1Criterion_1_1Updater_a048d209ce640e2b71fcafa8a056a58a4} 
bool gko::\+stop::\+\+Criterion::\+\+Updater::\+check (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}}]{stopping\+\_\+id}{, }\item[{bool}]{set\+\_\+finalized}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{classgko_1_1stopping__status}{stopping\+\_\+status}} $>$ \texorpdfstring{$\ast$}{*}}]{stop\+\_\+status}{, }\item[{bool \texorpdfstring{$\ast$}{*}}]{one\+\_\+changed}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Calls the parent \doxylink{classgko_1_1stop_1_1Criterion}{Criterion} object\textquotesingle{}s check method. 



The documentation for this class was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+stop/\+criterion.\+hpp\end{DoxyCompactItemize}
