\doxysection{record.\+hpp}
\hypertarget{record_8hpp_source}{}\label{record_8hpp_source}\index{ginkgo/core/log/record.hpp@{ginkgo/core/log/record.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{//\ SPDX-\/FileCopyrightText:\ 2017\ -\/\ 2024\ The\ Ginkgo\ authors}}
\DoxyCodeLine{00002\ \textcolor{comment}{//}}
\DoxyCodeLine{00003\ \textcolor{comment}{//\ SPDX-\/License-\/Identifier:\ BSD-\/3-\/Clause}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#ifndef\ GKO\_PUBLIC\_CORE\_LOG\_RECORD\_HPP\_}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#define\ GKO\_PUBLIC\_CORE\_LOG\_RECORD\_HPP\_}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ }
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <deque>}}
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00011\ }
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ <ginkgo/core/log/logger.hpp>}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ <ginkgo/core/matrix/dense.hpp>}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ <ginkgo/core/stop/criterion.hpp>}}
\DoxyCodeLine{00015\ }
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{keyword}{namespace\ }\doxymbox{\hyperlink{namespacegko}{gko}}\ \{}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00024\ \textcolor{keyword}{namespace\ }\doxymbox{\hyperlink{namespacegko_1_1log}{log}}\ \{}
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00026\ }
\DoxyCodeLine{00030\ \textcolor{keyword}{struct\ }iteration\_complete\_data\ \{}
\DoxyCodeLine{00031\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ solver;}
\DoxyCodeLine{00032\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ right\_hand\_side;}
\DoxyCodeLine{00033\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ solution;}
\DoxyCodeLine{00034\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ num\_iterations;}
\DoxyCodeLine{00035\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ residual;}
\DoxyCodeLine{00036\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ residual\_norm;}
\DoxyCodeLine{00037\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ implicit\_sq\_residual\_norm;}
\DoxyCodeLine{00038\ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}\ status;}
\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keywordtype}{bool}\ all\_stopped;}
\DoxyCodeLine{00040\ }
\DoxyCodeLine{00041\ \ \ \ \ iteration\_complete\_data(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solver,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ right\_hand\_side,}
\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ num\_iterations,}
\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\ =\ \textcolor{keyword}{nullptr},}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm\ =\ \textcolor{keyword}{nullptr},}
\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ implicit\_sq\_residual\_norm\ =\ \textcolor{keyword}{nullptr},}
\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{gko::array<stopping\_status>}}*\ status\ =\ \textcolor{keyword}{nullptr},}
\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ all\_stopped\ =\ \textcolor{keyword}{false})}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ :\ num\_iterations\{num\_iterations\},\ all\_stopped(all\_stopped)}
\DoxyCodeLine{00050\ \ \ \ \ \{}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ this-\/>solver\ =\ solver-\/>clone();}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ this-\/>solution\ =\ solution-\/>clone();}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (right\_hand\_side\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>right\_hand\_side\ =\ right\_hand\_side-\/>clone();}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00056\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (residual\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>residual\ =\ residual-\/>clone();}
\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (residual\_norm\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>residual\_norm\ =\ residual\_norm-\/>clone();}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00062\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (implicit\_sq\_residual\_norm\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>implicit\_sq\_residual\_norm\ =}
\DoxyCodeLine{00064\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ implicit\_sq\_residual\_norm-\/>clone();}
\DoxyCodeLine{00065\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>status\ =\ *status;}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00069\ \ \ \ \ \}}
\DoxyCodeLine{00070\ \};}
\DoxyCodeLine{00071\ }
\DoxyCodeLine{00072\ }
\DoxyCodeLine{00076\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{structgko_1_1log_1_1executor__data}{executor\_data}}\ \{}
\DoxyCodeLine{00077\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec;}
\DoxyCodeLine{00078\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ num\_bytes;}
\DoxyCodeLine{00079\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\ location;}
\DoxyCodeLine{00080\ \};}
\DoxyCodeLine{00081\ }
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00086\ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{structgko_1_1log_1_1operation__data}{operation\_data}}\ \{}
\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec;}
\DoxyCodeLine{00088\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Operation}{Operation}}*\ operation;}
\DoxyCodeLine{00089\ \};}
\DoxyCodeLine{00090\ }
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00095\ \textcolor{keyword}{struct\ }polymorphic\_object\_data\ \{}
\DoxyCodeLine{00096\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec;}
\DoxyCodeLine{00097\ \ \ \ \ std::unique\_ptr<const\ PolymorphicObject>\ input;}
\DoxyCodeLine{00098\ \ \ \ \ std::unique\_ptr<const\ PolymorphicObject>\ output;\ \ \textcolor{comment}{//\ optional}}
\DoxyCodeLine{00099\ }
\DoxyCodeLine{00100\ \ \ \ \ polymorphic\_object\_data(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ input,}
\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ output\ =\ \textcolor{keyword}{nullptr})}
\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ :\ exec\{exec\}}
\DoxyCodeLine{00104\ \ \ \ \ \{}
\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ this-\/>input\ =\ input-\/>clone();}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (output\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>output\ =\ output-\/>clone();}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00109\ \ \ \ \ \}}
\DoxyCodeLine{00110\ \};}
\DoxyCodeLine{00111\ }
\DoxyCodeLine{00112\ }
\DoxyCodeLine{00116\ \textcolor{keyword}{struct\ }linop\_data\ \{}
\DoxyCodeLine{00117\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ A;}
\DoxyCodeLine{00118\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ alpha;}
\DoxyCodeLine{00119\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ b;}
\DoxyCodeLine{00120\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ beta;}
\DoxyCodeLine{00121\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ x;}
\DoxyCodeLine{00122\ }
\DoxyCodeLine{00123\ \ \ \ \ linop\_data(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ A,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ alpha,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ b,}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ beta,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x)}
\DoxyCodeLine{00125\ \ \ \ \ \{}
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ this-\/>A\ =\ A-\/>clone();}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (alpha\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>alpha\ =\ alpha-\/>clone();}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ this-\/>b\ =\ b-\/>clone();}
\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (beta\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>beta\ =\ beta-\/>clone();}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ this-\/>x\ =\ x-\/>clone();}
\DoxyCodeLine{00135\ \ \ \ \ \}}
\DoxyCodeLine{00136\ \};}
\DoxyCodeLine{00137\ }
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00142\ \textcolor{keyword}{struct\ }linop\_factory\_data\ \{}
\DoxyCodeLine{00143\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{LinOpFactory}}*\ factory;}
\DoxyCodeLine{00144\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ input;}
\DoxyCodeLine{00145\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ output;}
\DoxyCodeLine{00146\ }
\DoxyCodeLine{00147\ \ \ \ \ linop\_factory\_data(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{LinOpFactory}}*\ factory,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ input,}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ output)}
\DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ :\ factory\{factory\}}
\DoxyCodeLine{00150\ \ \ \ \ \{}
\DoxyCodeLine{00151\ \ \ \ \ \ \ \ \ this-\/>input\ =\ input-\/>clone();}
\DoxyCodeLine{00152\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (output\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00153\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>output\ =\ output-\/>clone();}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00155\ \ \ \ \ \}}
\DoxyCodeLine{00156\ \};}
\DoxyCodeLine{00157\ }
\DoxyCodeLine{00158\ }
\DoxyCodeLine{00162\ \textcolor{keyword}{struct\ }criterion\_data\ \{}
\DoxyCodeLine{00163\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{stop::Criterion}}*\ criterion;}
\DoxyCodeLine{00164\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ num\_iterations;}
\DoxyCodeLine{00165\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ residual;}
\DoxyCodeLine{00166\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ residual\_norm;}
\DoxyCodeLine{00167\ \ \ \ \ std::unique\_ptr<const\ LinOp>\ solution;}
\DoxyCodeLine{00168\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\ stopping\_id;}
\DoxyCodeLine{00169\ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ set\_finalized;}
\DoxyCodeLine{00170\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}*\ status;}
\DoxyCodeLine{00171\ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ oneChanged;}
\DoxyCodeLine{00172\ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ converged;}
\DoxyCodeLine{00173\ }
\DoxyCodeLine{00174\ \ \ \ \ criterion\_data(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{stop::Criterion}}*\ criterion,}
\DoxyCodeLine{00175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,}
\DoxyCodeLine{00176\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00177\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\ stopping\_id,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ set\_finalized,}
\DoxyCodeLine{00178\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}*\ status\ =\ \textcolor{keyword}{nullptr},}
\DoxyCodeLine{00179\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ oneChanged\ =\ \textcolor{keyword}{false},\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\ converged\ =\ \textcolor{keyword}{false})}
\DoxyCodeLine{00180\ \ \ \ \ \ \ \ \ :\ criterion\{criterion\},}
\DoxyCodeLine{00181\ \ \ \ \ \ \ \ \ \ \ num\_iterations\{num\_iterations\},}
\DoxyCodeLine{00182\ \ \ \ \ \ \ \ \ \ \ residual\{\textcolor{keyword}{nullptr}\},}
\DoxyCodeLine{00183\ \ \ \ \ \ \ \ \ \ \ residual\_norm\{\textcolor{keyword}{nullptr}\},}
\DoxyCodeLine{00184\ \ \ \ \ \ \ \ \ \ \ solution\{\textcolor{keyword}{nullptr}\},}
\DoxyCodeLine{00185\ \ \ \ \ \ \ \ \ \ \ stopping\_id\{stopping\_id\},}
\DoxyCodeLine{00186\ \ \ \ \ \ \ \ \ \ \ set\_finalized\{set\_finalized\},}
\DoxyCodeLine{00187\ \ \ \ \ \ \ \ \ \ \ status\{status\},}
\DoxyCodeLine{00188\ \ \ \ \ \ \ \ \ \ \ oneChanged\{oneChanged\},}
\DoxyCodeLine{00189\ \ \ \ \ \ \ \ \ \ \ converged\{converged\}}
\DoxyCodeLine{00190\ \ \ \ \ \{}
\DoxyCodeLine{00191\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (residual\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00192\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>residual\ =\ std::unique\_ptr<const\ LinOp>(residual-\/>clone());}
\DoxyCodeLine{00193\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00194\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (residual\_norm\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00195\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>residual\_norm\ =}
\DoxyCodeLine{00196\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::unique\_ptr<const\ LinOp>(residual\_norm-\/>clone());}
\DoxyCodeLine{00197\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00198\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (solution\ !=\ \textcolor{keyword}{nullptr})\ \{}
\DoxyCodeLine{00199\ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>solution\ =\ std::unique\_ptr<const\ LinOp>(solution-\/>clone());}
\DoxyCodeLine{00200\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00201\ \ \ \ \ \}}
\DoxyCodeLine{00202\ \};}
\DoxyCodeLine{00203\ }
\DoxyCodeLine{00204\ }
\DoxyCodeLine{00215\ \textcolor{keyword}{class\ }Record\ :\ \textcolor{keyword}{public}\ Logger\ \{}
\DoxyCodeLine{00216\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00220\ \ \ \ \ \textcolor{keyword}{struct\ }\doxymbox{\hyperlink{structgko_1_1log_1_1Record_1_1logged__data}{logged\_data}}\ \{}
\DoxyCodeLine{00221\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<executor\_data>>\ allocation\_started;}
\DoxyCodeLine{00222\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<executor\_data>>\ allocation\_completed;}
\DoxyCodeLine{00223\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<executor\_data>>\ free\_started;}
\DoxyCodeLine{00224\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<executor\_data>>\ free\_completed;}
\DoxyCodeLine{00225\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<std::tuple<executor\_data,\ executor\_data>>>}
\DoxyCodeLine{00226\ \ \ \ \ \ \ \ \ \ \ \ \ copy\_started;}
\DoxyCodeLine{00227\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<std::tuple<executor\_data,\ executor\_data>>>}
\DoxyCodeLine{00228\ \ \ \ \ \ \ \ \ \ \ \ \ copy\_completed;}
\DoxyCodeLine{00229\ }
\DoxyCodeLine{00230\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<operation\_data>>\ operation\_launched;}
\DoxyCodeLine{00231\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<operation\_data>>\ operation\_completed;}
\DoxyCodeLine{00232\ }
\DoxyCodeLine{00233\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00234\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_create\_started;}
\DoxyCodeLine{00235\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00236\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_create\_completed;}
\DoxyCodeLine{00237\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00238\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_copy\_started;}
\DoxyCodeLine{00239\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00240\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_copy\_completed;}
\DoxyCodeLine{00241\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00242\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_move\_started;}
\DoxyCodeLine{00243\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00244\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_move\_completed;}
\DoxyCodeLine{00245\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<polymorphic\_object\_data>>}
\DoxyCodeLine{00246\ \ \ \ \ \ \ \ \ \ \ \ \ polymorphic\_object\_deleted;}
\DoxyCodeLine{00247\ }
\DoxyCodeLine{00248\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_data>>\ linop\_apply\_started;}
\DoxyCodeLine{00249\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_data>>\ linop\_apply\_completed;}
\DoxyCodeLine{00250\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_data>>\ linop\_advanced\_apply\_started;}
\DoxyCodeLine{00251\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_data>>\ linop\_advanced\_apply\_completed;}
\DoxyCodeLine{00252\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_factory\_data>>}
\DoxyCodeLine{00253\ \ \ \ \ \ \ \ \ \ \ \ \ linop\_factory\_generate\_started;}
\DoxyCodeLine{00254\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<linop\_factory\_data>>}
\DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ \ \ \ \ linop\_factory\_generate\_completed;}
\DoxyCodeLine{00256\ }
\DoxyCodeLine{00257\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<criterion\_data>>\ criterion\_check\_started;}
\DoxyCodeLine{00258\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<criterion\_data>>\ criterion\_check\_completed;}
\DoxyCodeLine{00259\ }
\DoxyCodeLine{00260\ \ \ \ \ \ \ \ \ std::deque<std::unique\_ptr<iteration\_complete\_data>>}
\DoxyCodeLine{00261\ \ \ \ \ \ \ \ \ \ \ \ \ iteration\_completed;}
\DoxyCodeLine{00262\ \ \ \ \ \};}
\DoxyCodeLine{00263\ }
\DoxyCodeLine{00264\ \ \ \ \ \textcolor{comment}{/*\ Executor\ events\ */}}
\DoxyCodeLine{00265\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_af3817911ba7d0156173e81915475a3e9}{on\_allocation\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00266\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_bytes)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00267\ }
\DoxyCodeLine{00268\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a197ace14db88f4205ed389f3ab66f1e9}{on\_allocation\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00269\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_bytes,}
\DoxyCodeLine{00270\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00271\ }
\DoxyCodeLine{00272\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a8504ad719285da3e6058ac4605c26f78}{on\_free\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00274\ }
\DoxyCodeLine{00275\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_adf97da4b8dbc28cebb83c57a73204fe5}{on\_free\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00276\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00277\ }
\DoxyCodeLine{00278\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a3ea958c37228262151197ac2daa61f89}{on\_copy\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ from,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ to,}
\DoxyCodeLine{00279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location\_from,}
\DoxyCodeLine{00280\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location\_to,}
\DoxyCodeLine{00281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_bytes)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00282\ }
\DoxyCodeLine{00283\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a38e2969938c346ae1e7df52c79d30e07}{on\_copy\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ from,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ to,}
\DoxyCodeLine{00284\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location\_from,}
\DoxyCodeLine{00285\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a70648f1299a0c1297e2bf86f47264626}{uintptr}}\&\ location\_to,}
\DoxyCodeLine{00286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_bytes)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00287\ }
\DoxyCodeLine{00288\ \ \ \ \ \textcolor{comment}{/*\ Operation\ events\ */}}
\DoxyCodeLine{00289\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ae6557085190b7d18419e08d4da3de7c7}{on\_operation\_launched}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Operation}{Operation}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27af7235a61fdc3adc78d866fd8085d44db}{operation}})\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00291\ }
\DoxyCodeLine{00292\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_af5c3f24742e70415e5af72f3f8e4e8ef}{on\_operation\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,}
\DoxyCodeLine{00293\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Operation}{Operation}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27af7235a61fdc3adc78d866fd8085d44db}{operation}})\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00294\ }
\DoxyCodeLine{00295\ \ \ \ \ \textcolor{comment}{/*\ PolymorphicObject\ events\ */}}
\DoxyCodeLine{00296\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a3def7ea0736331d84be5c14235a8e16b}{on\_polymorphic\_object\_create\_started}}(}
\DoxyCodeLine{00297\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ po)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00298\ }
\DoxyCodeLine{00299\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_aca799db6b0a17fcd13c473bf2c9ca821}{on\_polymorphic\_object\_create\_completed}}(}
\DoxyCodeLine{00300\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ input,}
\DoxyCodeLine{00301\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ output)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00302\ }
\DoxyCodeLine{00303\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a6e153b45f7919acba75d9eee25e6ee69}{on\_polymorphic\_object\_copy\_started}}(}
\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ from,}
\DoxyCodeLine{00305\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ to)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00306\ }
\DoxyCodeLine{00307\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a55c3f4b9780293f6203de821570d1c91}{on\_polymorphic\_object\_copy\_completed}}(}
\DoxyCodeLine{00308\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ from,}
\DoxyCodeLine{00309\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ to)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00310\ }
\DoxyCodeLine{00311\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a22dda36d1ffa85209b6b1a3afc0971b5}{on\_polymorphic\_object\_move\_started}}(}
\DoxyCodeLine{00312\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ from,}
\DoxyCodeLine{00313\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ to)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00314\ }
\DoxyCodeLine{00315\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a7a707da6e006716b0394481138bb35c3}{on\_polymorphic\_object\_move\_completed}}(}
\DoxyCodeLine{00316\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ from,}
\DoxyCodeLine{00317\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ to)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00318\ }
\DoxyCodeLine{00319\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a04ad5d1551374ee6c9efdc2adc6a8a01}{on\_polymorphic\_object\_deleted}}(}
\DoxyCodeLine{00320\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}*\ exec,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1PolymorphicObject}{PolymorphicObject}}*\ po)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00321\ }
\DoxyCodeLine{00322\ \ \ \ \ \textcolor{comment}{/*\ LinOp\ events\ */}}
\DoxyCodeLine{00323\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a892b07a5387719e02d8b9f9c5d3844b8}{on\_linop\_apply\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ A,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ b,}
\DoxyCodeLine{00324\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00325\ }
\DoxyCodeLine{00326\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a54adbb5c0abd1f2b08865a45857d4585}{on\_linop\_apply\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ A,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ b,}
\DoxyCodeLine{00327\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00328\ }
\DoxyCodeLine{00329\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a39c554168e6c84594ee9a91a7f9b0f9c}{on\_linop\_advanced\_apply\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ A,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ alpha,}
\DoxyCodeLine{00330\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ b,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ beta,}
\DoxyCodeLine{00331\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00332\ }
\DoxyCodeLine{00333\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a09aa11420a9774e495e8a97b8f29582c}{on\_linop\_advanced\_apply\_completed}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ A,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ alpha,}
\DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ b,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ beta,}
\DoxyCodeLine{00335\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00336\ }
\DoxyCodeLine{00337\ \ \ \ \ \textcolor{comment}{/*\ LinOpFactory\ events\ */}}
\DoxyCodeLine{00338\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_aed1c3d83b9749ff53546a001e3b387b0}{on\_linop\_factory\_generate\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{LinOpFactory}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27a9549dd6065d019211460c59a86dd6536}{factory}},}
\DoxyCodeLine{00339\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ input)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00340\ }
\DoxyCodeLine{00341\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a6120652247f008878e0aba35479f2c14}{on\_linop\_factory\_generate\_completed}}(}
\DoxyCodeLine{00342\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{LinOpFactory}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27a9549dd6065d019211460c59a86dd6536}{factory}},\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ input,}
\DoxyCodeLine{00343\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ output)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00344\ }
\DoxyCodeLine{00345\ \ \ \ \ \textcolor{comment}{/*\ Criterion\ events\ */}}
\DoxyCodeLine{00346\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a895c10338a345d55f0264a1b4fc96073}{on\_criterion\_check\_started}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{stop::Criterion}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27a4d4b370ab9b3dbca1ccdb1a5cca6a728}{criterion}},}
\DoxyCodeLine{00347\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,}
\DoxyCodeLine{00348\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,}
\DoxyCodeLine{00349\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,}
\DoxyCodeLine{00350\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00351\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\&\ stopping\_id,}
\DoxyCodeLine{00352\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ set\_finalized)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00353\ }
\DoxyCodeLine{00354\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a4e6490693e62ff2bbbca0d9780d79cbb}{on\_criterion\_check\_completed}}(}
\DoxyCodeLine{00355\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{stop::Criterion}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27a4d4b370ab9b3dbca1ccdb1a5cca6a728}{criterion}},\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,}
\DoxyCodeLine{00356\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,}
\DoxyCodeLine{00357\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ implicit\_residual\_norm\_sq,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00358\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\&\ stopping\_id,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ set\_finalized,}
\DoxyCodeLine{00359\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}*\ status,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ one\_changed,}
\DoxyCodeLine{00360\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ all\_converged)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00361\ }
\DoxyCodeLine{00362\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ad4be86dbeacc03fc38d5460d306906e1}{on\_criterion\_check\_completed}}(}
\DoxyCodeLine{00363\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1stop_1_1Criterion}{stop::Criterion}}*\ \doxymbox{\hyperlink{namespacegko_1_1log_a15f71654c6c4f4defc95f9359343fa27a4d4b370ab9b3dbca1ccdb1a5cca6a728}{criterion}},\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,}
\DoxyCodeLine{00364\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,}
\DoxyCodeLine{00365\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a06d96f1ecdca6b86399173969771c3fb}{uint8}}\&\ stopping\_id,}
\DoxyCodeLine{00366\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ set\_finalized,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}*\ status,}
\DoxyCodeLine{00367\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ one\_changed,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{bool}\&\ all\_converged)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00368\ }
\DoxyCodeLine{00369\ \ \ \ \ \textcolor{comment}{/*\ Internal\ solver\ events\ */}}
\DoxyCodeLine{00370\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ad94d5fd36003a213a0b44f99461e9f43}{on\_iteration\_complete}}(}
\DoxyCodeLine{00371\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ \doxymbox{\hyperlink{namespacegko_1_1solver}{solver}},\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ right\_hand\_side,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ x,}
\DoxyCodeLine{00372\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,}
\DoxyCodeLine{00373\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,\ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ implicit\_resnorm\_sq,}
\DoxyCodeLine{00374\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1array}{array<stopping\_status>}}*\ status,\ \textcolor{keywordtype}{bool}\ stopped)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{00375\ }
\DoxyCodeLine{00376\ \ \ \ \ GKO\_DEPRECATED(}
\DoxyCodeLine{00377\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Please\ use\ the\ version\ with\ the\ additional\ stopping\ "{}}}
\DoxyCodeLine{00378\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}information."{}})}
\DoxyCodeLine{00379\ \ \ \ \ void\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ad94d5fd36003a213a0b44f99461e9f43}{on\_iteration\_complete}}(const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ \doxymbox{\hyperlink{namespacegko_1_1solver}{solver}},}
\DoxyCodeLine{00380\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,}
\DoxyCodeLine{00381\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,\ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00382\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm)\ const\ override;}
\DoxyCodeLine{00383\ }
\DoxyCodeLine{00384\ \ \ \ \ GKO\_DEPRECATED(}
\DoxyCodeLine{00385\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}Please\ use\ the\ version\ with\ the\ additional\ stopping\ "{}}}
\DoxyCodeLine{00386\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}information."{}})}
\DoxyCodeLine{00387\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ad94d5fd36003a213a0b44f99461e9f43}{on\_iteration\_complete}}(}
\DoxyCodeLine{00388\ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ \doxymbox{\hyperlink{namespacegko_1_1solver}{solver}},\ const\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\&\ num\_iterations,}
\DoxyCodeLine{00389\ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual,\ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ solution,}
\DoxyCodeLine{00390\ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ residual\_norm,}
\DoxyCodeLine{00391\ \ \ \ \ \ \ \ \ const\ \doxymbox{\hyperlink{classgko_1_1LinOp}{LinOp}}*\ implicit\_sq\_residual\_norm)\ const\ override;}
\DoxyCodeLine{00392\ }
\DoxyCodeLine{00407\ \ \ \ \ GKO\_DEPRECATED(\textcolor{stringliteral}{"{}use\ two-\/parameter\ create"{}})}
\DoxyCodeLine{00408\ \ \ \ \ static\ \doxymbox{\hyperlink{namespacestd}{std}}::unique\_ptr<Record>\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_ab0655da7f7669b1866b5d777b77ab275}{create}}(}
\DoxyCodeLine{00409\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacestd}{std}}::shared\_ptr<const\ \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}>\ exec,}
\DoxyCodeLine{00410\ \ \ \ \ \ \ \ \ const\ mask\_type\&\ enabled\_events\ =\ Logger::\doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a02534863a2d2f92dfeb2c39038365532}{all\_events\_mask}},}
\DoxyCodeLine{00411\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ max\_storage\ =\ 1)}
\DoxyCodeLine{00412\ \ \ \ \ \{}
\DoxyCodeLine{00413\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::unique\_ptr<Record>(\textcolor{keyword}{new}\ Record(enabled\_events,\ max\_storage));}
\DoxyCodeLine{00414\ \ \ \ \ \}}
\DoxyCodeLine{00415\ }
\DoxyCodeLine{00430\ \ \ \ \ \textcolor{keyword}{static}\ std::unique\_ptr<Record>\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a648432f1daca567bd3e12415820a410f}{create}}(}
\DoxyCodeLine{00431\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ mask\_type\&\ enabled\_events\ =\ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a02534863a2d2f92dfeb2c39038365532}{Logger::all\_events\_mask}},}
\DoxyCodeLine{00432\ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ max\_storage\ =\ 1)}
\DoxyCodeLine{00433\ \ \ \ \ \{}
\DoxyCodeLine{00434\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ std::unique\_ptr<Record>(\textcolor{keyword}{new}\ Record(enabled\_events,\ max\_storage));}
\DoxyCodeLine{00435\ \ \ \ \ \}}
\DoxyCodeLine{00436\ }
\DoxyCodeLine{00442\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{structgko_1_1log_1_1Record_1_1logged__data}{logged\_data}}\&\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_aa42bdac819c37bb0a7860fb5f6259b08}{get}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ data\_;\ \}}
\DoxyCodeLine{00443\ }
\DoxyCodeLine{00447\ \ \ \ \ \doxymbox{\hyperlink{structgko_1_1log_1_1Record_1_1logged__data}{logged\_data}}\&\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record_a87e2ca4d58593a7506e74bad3b15e779}{get}}()\ noexcept\ \{\ \textcolor{keywordflow}{return}\ data\_;\ \}}
\DoxyCodeLine{00448\ }
\DoxyCodeLine{00449\ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00461\ \ \ \ \ GKO\_DEPRECATED(\textcolor{stringliteral}{"{}use\ two-\/parameter\ constructor"{}})}
\DoxyCodeLine{00462\ \ \ \ \ explicit\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record}{Record}}(\doxymbox{\hyperlink{namespacestd}{std}}::shared\_ptr<const\ \doxymbox{\hyperlink{namespacegko}{gko}}::\doxymbox{\hyperlink{classgko_1_1Executor}{Executor}}>\ exec,}
\DoxyCodeLine{00463\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ const\ mask\_type\&\ enabled\_events\ =\ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger}{Logger}}::\doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a02534863a2d2f92dfeb2c39038365532}{all\_events\_mask}},}
\DoxyCodeLine{00464\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ max\_storage\ =\ 0)}
\DoxyCodeLine{00465\ \ \ \ \ \ \ \ \ :\ \doxymbox{\hyperlink{classgko_1_1log_1_1Record}{Record}}(enabled\_events,\ max\_storage)}
\DoxyCodeLine{00466\ \ \ \ \ \{\}}
\DoxyCodeLine{00467\ }
\DoxyCodeLine{00478\ \ \ \ \ \textcolor{keyword}{explicit}\ Record(\textcolor{keyword}{const}\ mask\_type\&\ enabled\_events\ =\ \doxymbox{\hyperlink{classgko_1_1log_1_1Logger_a02534863a2d2f92dfeb2c39038365532}{Logger::all\_events\_mask}},}
\DoxyCodeLine{00479\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ max\_storage\ =\ 0)}
\DoxyCodeLine{00480\ \ \ \ \ \ \ \ \ :\ Logger(enabled\_events),\ max\_storage\_\{max\_storage\}}
\DoxyCodeLine{00481\ \ \ \ \ \{\}}
\DoxyCodeLine{00482\ }
\DoxyCodeLine{00491\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ deque\_type>}
\DoxyCodeLine{00492\ \ \ \ \ \textcolor{keywordtype}{void}\ append\_deque(std::deque<deque\_type>\&\ deque,\ deque\_type\ \textcolor{keywordtype}{object})\textcolor{keyword}{\ const}}
\DoxyCodeLine{00493\ \textcolor{keyword}{\ \ \ \ }\{}
\DoxyCodeLine{00494\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (this-\/>max\_storage\_\ \&\&\ deque.size()\ ==\ this-\/>max\_storage\_)\ \{}
\DoxyCodeLine{00495\ \ \ \ \ \ \ \ \ \ \ \ \ deque.pop\_front();}
\DoxyCodeLine{00496\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00497\ \ \ \ \ \ \ \ \ deque.push\_back(std::move(\textcolor{keywordtype}{object}));}
\DoxyCodeLine{00498\ \ \ \ \ \}}
\DoxyCodeLine{00499\ }
\DoxyCodeLine{00500\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00501\ \ \ \ \ \textcolor{keyword}{mutable}\ \doxymbox{\hyperlink{structgko_1_1log_1_1Record_1_1logged__data}{logged\_data}}\ data\_\{\};}
\DoxyCodeLine{00502\ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ max\_storage\_\{\};}
\DoxyCodeLine{00503\ \};}
\DoxyCodeLine{00504\ }
\DoxyCodeLine{00505\ }
\DoxyCodeLine{00506\ \}\ \ \textcolor{comment}{//\ namespace\ log}}
\DoxyCodeLine{00507\ \}\ \ \textcolor{comment}{//\ namespace\ gko}}
\DoxyCodeLine{00508\ }
\DoxyCodeLine{00509\ }
\DoxyCodeLine{00510\ \textcolor{preprocessor}{\#endif\ \ }\textcolor{comment}{//\ GKO\_PUBLIC\_CORE\_LOG\_RECORD\_HPP\_}}

\end{DoxyCode}
