\doxysection{gko::\+log::\+Solver\+Progress Class Reference}
\hypertarget{classgko_1_1log_1_1SolverProgress}{}\label{classgko_1_1log_1_1SolverProgress}\index{gko::log::SolverProgress@{gko::log::SolverProgress}}


This \doxylink{classgko_1_1log_1_1Logger}{Logger} outputs the value of all scalar values (and potentially vectors) stored internally by the solver after each iteration.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+log/\+solver\+\_\+progress.\+hpp$>$}



Inheritance diagram for gko::\+log::\+Solver\+Progress:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=202pt]{classgko_1_1log_1_1SolverProgress__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+log::\+Solver\+Progress:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=202pt]{classgko_1_1log_1_1SolverProgress__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress_a18c8f3aa21ab8239b8555a8d5568ee70}{create\+\_\+scalar\+\_\+table\+\_\+writer}} (std::\+ostream \&output, int precision=6, int column\+\_\+width=12)
\begin{DoxyCompactList}\small\item\em Creates a logger printing the value for all scalar values in the solver after each iteration in an ASCII table. \end{DoxyCompactList}\item 
static std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress_a523955a6fa1edee06834a193d56faa32}{create\+\_\+scalar\+\_\+csv\+\_\+writer}} (std::\+ostream \&output, int precision=6, char separator=\textquotesingle{},\textquotesingle{})
\begin{DoxyCompactList}\small\item\em Creates a logger printing the value for all scalar values in the solver after each iteration in a CSV table. \end{DoxyCompactList}\item 
static std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress_aebe36508d79ace336d403fca3b85630b}{create\+\_\+vector\+\_\+storage}} (std::\+string output\+\_\+file\+\_\+prefix="{}solver\+\_\+"{}, bool binary=false)
\begin{DoxyCompactList}\small\item\em Creates a logger storing all vectors and scalar values in the solver after each iteration on disk. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Additional Inherited Members}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{gko::\+log::\+\+Logger}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries mask\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a09ee89da532d8b1fa6fdecec2d20b9bf}{gko::\+uint64}}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{gko::\+log::\+\+Logger}}}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==0 \&\&(0$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==1 \&\&(1$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==2 \&\&(2$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==3 \&\&(3$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==4 \&\&(4$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==5 \&\&(5$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==6 \&\&(6$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==7 \&\&(7$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==8 \&\&(8$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==9 \&\&(9$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==10 \&\&(10$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==11 \&\&(11$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==12 \&\&(12$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==13 \&\&(13$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==14 \&\&(14$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==15 \&\&(15$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==16 \&\&(16$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==17 \&\&(17$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==18 \&\&(18$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==19 \&\&(19$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==20 \&\&(20$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==21 \&\&(21$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==22 \&\&(22$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==23 \&\&(23$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==24 \&\&(24$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==25 \&\&(25$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
{\footnotesize template$<$\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} Event, typename... Params$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$ Event==26 \&\&(26$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a8794cd4bf2fd4d24ba9879bdca884dab}{event\+\_\+count\+\_\+max}})$>$ {\bfseries on} (Params \&\&... params) const
\item 
virtual bool \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a6f60c7a79a4716836d232558c58777d0}{needs\+\_\+propagation}} () const
\begin{DoxyCompactList}\small\item\em Returns true if this logger, when attached to an \doxylink{classgko_1_1Executor}{Executor}, needs to be forwarded all events from objects on this executor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes inherited from \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{gko::\+log::\+\+Logger}}}
\begin{DoxyCompactItemize}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries event\+\_\+count\+\_\+max} = sizeof(mask\+\_\+type) \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{namespacegko_acae2e648052ec788bd8ba9e0192652a6}{byte\+\_\+size}}
\begin{DoxyCompactList}\small\item\em Maximum amount of events (bits) with the current implementation. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type {\bfseries all\+\_\+events\+\_\+mask} = \texorpdfstring{$\sim$}{\string~}mask\+\_\+type\{0\}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all events. \end{DoxyCompactList}\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries allocation\+\_\+started} \{0\}
\item 
static constexpr mask\+\_\+type {\bfseries allocation\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 0\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries allocation\+\_\+completed} \{1\}
\item 
static constexpr mask\+\_\+type {\bfseries allocation\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 1\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries free\+\_\+started} \{2\}
\item 
static constexpr mask\+\_\+type {\bfseries free\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 2\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries free\+\_\+completed} \{3\}
\item 
static constexpr mask\+\_\+type {\bfseries free\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 3\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries copy\+\_\+started} \{4\}
\item 
static constexpr mask\+\_\+type {\bfseries copy\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 4\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries copy\+\_\+completed} \{5\}
\item 
static constexpr mask\+\_\+type {\bfseries copy\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 5\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries operation\+\_\+launched} \{6\}
\item 
static constexpr mask\+\_\+type {\bfseries operation\+\_\+launched\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 6\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries operation\+\_\+completed} \{7\}
\item 
static constexpr mask\+\_\+type {\bfseries operation\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 7\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+create\+\_\+started} \{8\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+create\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 8\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+create\+\_\+completed} \{9\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+create\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 9\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+copy\+\_\+started} \{10\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+copy\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 10\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+copy\+\_\+completed} \{11\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+copy\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 11\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+deleted} \{12\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+deleted\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 12\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+apply\+\_\+started} \{13\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+apply\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 13\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+apply\+\_\+completed} \{14\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+apply\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 14\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+advanced\+\_\+apply\+\_\+started} \{15\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+advanced\+\_\+apply\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 15\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+advanced\+\_\+apply\+\_\+completed} \{16\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+advanced\+\_\+apply\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 16\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+factory\+\_\+generate\+\_\+started} \{17\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+factory\+\_\+generate\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 17\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries linop\+\_\+factory\+\_\+generate\+\_\+completed} \{18\}
\item 
static constexpr mask\+\_\+type {\bfseries linop\+\_\+factory\+\_\+generate\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 18\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries criterion\+\_\+check\+\_\+started} \{19\}
\item 
static constexpr mask\+\_\+type {\bfseries criterion\+\_\+check\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 19\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries criterion\+\_\+check\+\_\+completed} \{20\}
\item 
static constexpr mask\+\_\+type {\bfseries criterion\+\_\+check\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 20\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries iteration\+\_\+complete} \{21\}
\item 
static constexpr mask\+\_\+type {\bfseries iteration\+\_\+complete\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 21\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+move\+\_\+started} \{22\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+move\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 22\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries polymorphic\+\_\+object\+\_\+move\+\_\+completed} \{23\}
\item 
static constexpr mask\+\_\+type {\bfseries polymorphic\+\_\+object\+\_\+move\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 23\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries batch\+\_\+linop\+\_\+factory\+\_\+generate\+\_\+started} \{24\}
\item 
static constexpr mask\+\_\+type {\bfseries batch\+\_\+linop\+\_\+factory\+\_\+generate\+\_\+started\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 24\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries batch\+\_\+linop\+\_\+factory\+\_\+generate\+\_\+completed} \{25\}
\item 
static constexpr mask\+\_\+type {\bfseries batch\+\_\+linop\+\_\+factory\+\_\+generate\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 25\}
\item 
static constexpr \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries batch\+\_\+solver\+\_\+completed} \{26\}
\item 
static constexpr mask\+\_\+type {\bfseries batch\+\_\+solver\+\_\+completed\+\_\+mask} \{mask\+\_\+type\{1\} $<$$<$ 26\}
\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_af263708ebb15007bc0086e7c438c190c}{executor\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all executor events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a179f3d3ac86782922cbc63e33272840a}{operation\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all operation events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a5fb997f1c06c0602103d8dab616a96bc}{polymorphic\+\_\+object\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all polymorphic object events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a3e75086ec35aea9d9c0ade7774bfc1ba}{linop\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all linop events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_ad6fb77d4d5610bc7299087f7149a7f16}{linop\+\_\+factory\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all linop factory events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a3a6ea4ed2e7b25cd1ca869e4d3bdb07a}{batch\+\_\+linop\+\_\+factory\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all batch linop factory events. \end{DoxyCompactList}\item 
static constexpr mask\+\_\+type \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a7f4ac79625bd3f0287230236013f6048}{criterion\+\_\+events\+\_\+mask}}
\begin{DoxyCompactList}\small\item\em Bitset Mask which activates all criterion events. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This \doxylink{classgko_1_1log_1_1Logger}{Logger} outputs the value of all scalar values (and potentially vectors) stored internally by the solver after each iteration. 

It needs to be attached to the solver being inspected. 

\label{doc-func-members}
\Hypertarget{classgko_1_1log_1_1SolverProgress_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1log_1_1SolverProgress_a523955a6fa1edee06834a193d56faa32}\index{gko::log::SolverProgress@{gko::log::SolverProgress}!create\_scalar\_csv\_writer@{create\_scalar\_csv\_writer}}
\index{create\_scalar\_csv\_writer@{create\_scalar\_csv\_writer}!gko::log::SolverProgress@{gko::log::SolverProgress}}
\doxysubsubsection{\texorpdfstring{create\_scalar\_csv\_writer()}{create\_scalar\_csv\_writer()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1SolverProgress_a523955a6fa1edee06834a193d56faa32} 
std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ gko::\+log::\+\+Solver\+Progress::\+create\+\_\+scalar\+\_\+csv\+\_\+writer (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{output}{, }\item[{int}]{precision}{ = {\ttfamily 6}, }\item[{char}]{separator}{ = {\ttfamily \textquotesingle{},\textquotesingle{}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a logger printing the value for all scalar values in the solver after each iteration in a CSV table. 

If the solver is applied to multiple right-\/hand sides, only the first right-\/hand side gets printed.


\begin{DoxyParams}{Parameters}
{\em output} & the stream to write the output to. \\
\hline
{\em precision} & the number of digits of precision to print \\
\hline
{\em separator} & the character separating columns from each other \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1log_1_1SolverProgress_a18c8f3aa21ab8239b8555a8d5568ee70}\index{gko::log::SolverProgress@{gko::log::SolverProgress}!create\_scalar\_table\_writer@{create\_scalar\_table\_writer}}
\index{create\_scalar\_table\_writer@{create\_scalar\_table\_writer}!gko::log::SolverProgress@{gko::log::SolverProgress}}
\doxysubsubsection{\texorpdfstring{create\_scalar\_table\_writer()}{create\_scalar\_table\_writer()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1SolverProgress_a18c8f3aa21ab8239b8555a8d5568ee70} 
std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ gko::\+log::\+\+Solver\+Progress::\+create\+\_\+scalar\+\_\+table\+\_\+writer (\begin{DoxyParamCaption}\item[{std::\+ostream \&}]{output}{, }\item[{int}]{precision}{ = {\ttfamily 6}, }\item[{int}]{column\+\_\+width}{ = {\ttfamily 12}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a logger printing the value for all scalar values in the solver after each iteration in an ASCII table. 

If the solver is applied to multiple right-\/hand sides, only the first right-\/hand side gets printed.


\begin{DoxyParams}{Parameters}
{\em output} & the stream to write the output to. \\
\hline
{\em precision} & the number of digits of precision to print \\
\hline
{\em column\+\_\+width} & the number of characters an output column is wide \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1log_1_1SolverProgress_aebe36508d79ace336d403fca3b85630b}\index{gko::log::SolverProgress@{gko::log::SolverProgress}!create\_vector\_storage@{create\_vector\_storage}}
\index{create\_vector\_storage@{create\_vector\_storage}!gko::log::SolverProgress@{gko::log::SolverProgress}}
\doxysubsubsection{\texorpdfstring{create\_vector\_storage()}{create\_vector\_storage()}}
{\footnotesize\ttfamily \label{classgko_1_1log_1_1SolverProgress_aebe36508d79ace336d403fca3b85630b} 
std::\+shared\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1log_1_1SolverProgress}{Solver\+Progress}} $>$ gko::\+log::\+\+Solver\+Progress::\+create\+\_\+vector\+\_\+storage (\begin{DoxyParamCaption}\item[{std::\+string}]{output\+\_\+file\+\_\+prefix}{ = {\ttfamily "{}solver\+\_\+"{}}, }\item[{bool}]{binary}{ = {\ttfamily false}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a logger storing all vectors and scalar values in the solver after each iteration on disk. 

This logger can handle multiple right-\/hand sides, in contrast to create\+\_\+scalar\+\_\+table\+\_\+writer or create\+\_\+scalar\+\_\+csv\+\_\+writer.


\begin{DoxyParams}{Parameters}
{\em output} & the path and file name prefix used to generate the output file names. \\
\hline
{\em precision} & the number of digits of precision to print when outputting matrices in text format \\
\hline
{\em binary} & if true, write data in Ginkgo\textquotesingle{}s own binary format (lossless), if false write data in the Matrix\+Market format (potentially lossy) \\
\hline
\end{DoxyParams}


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