\doxysection{batch\+\_\+lin\+\_\+op.\+hpp}
\hypertarget{batch__lin__op_8hpp_source}{}\label{batch__lin__op_8hpp_source}\index{ginkgo/core/base/batch\_lin\_op.hpp@{ginkgo/core/base/batch\_lin\_op.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\_BASE\_BATCH\_LIN\_OP\_HPP\_}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#define\ GKO\_PUBLIC\_CORE\_BASE\_BATCH\_LIN\_OP\_HPP\_}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00008\ }
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ <type\_traits>}}
\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#include\ <utility>}}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/abstract\_factory.hpp>}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/batch\_multi\_vector.hpp>}}
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/dim.hpp>}}
\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/exception\_helpers.hpp>}}
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/math.hpp>}}
\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/matrix\_assembly\_data.hpp>}}
\DoxyCodeLine{00019\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/matrix\_data.hpp>}}
\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/polymorphic\_object.hpp>}}
\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/types.hpp>}}
\DoxyCodeLine{00022\ \textcolor{preprocessor}{\#include\ <ginkgo/core/base/utils.hpp>}}
\DoxyCodeLine{00023\ \textcolor{preprocessor}{\#include\ <ginkgo/core/log/logger.hpp>}}
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00026\ \textcolor{keyword}{namespace\ }\doxymbox{\hyperlink{namespacegko}{gko}}\ \{}
\DoxyCodeLine{00027\ \textcolor{keyword}{namespace\ }batch\ \{}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ }
\DoxyCodeLine{00059\ \textcolor{keyword}{class\ }BatchLinOp\ :\ \textcolor{keyword}{public}\ EnableAbstractPolymorphicObject<BatchLinOp>\ \{}
\DoxyCodeLine{00060\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00066\ \ \ \ \ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_aedce5278a6da01435e69cd4b12782375}{get\_num\_batch\_items}}()\ const\ noexcept}
\DoxyCodeLine{00067\ \ \ \ \ \{}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_a096b04c1e0f8b46f9da5a9ec145b2bb3}{get\_size}}().\doxymbox{\hyperlink{structgko_1_1batch__dim_a380f449cd6305c8baba95569627503b2}{get\_num\_batch\_items}}();}
\DoxyCodeLine{00069\ \ \ \ \ \}}
\DoxyCodeLine{00070\ }
\DoxyCodeLine{00076\ \ \ \ \ \doxymbox{\hyperlink{structgko_1_1dim}{dim<2>}}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_ab50d8aefbcebd8dcb9b6a97ab131d59d}{get\_common\_size}}()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_a096b04c1e0f8b46f9da5a9ec145b2bb3}{get\_size}}().\doxymbox{\hyperlink{structgko_1_1batch__dim_a2e5b548457e59a551328cb10cc38a688}{get\_common\_size}}();\ \}}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00083\ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\_dim<2>}}\&\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_a096b04c1e0f8b46f9da5a9ec145b2bb3}{get\_size}}()\ const\ noexcept\ \{\ \textcolor{keywordflow}{return}\ size\_;\ \}}
\DoxyCodeLine{00084\ }
\DoxyCodeLine{00090\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ValueType>}
\DoxyCodeLine{00091\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_a86f750708b3f8cdff5830276cb339ece}{validate\_application\_parameters}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ b,}
\DoxyCodeLine{00092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ x)\textcolor{keyword}{\ const}}
\DoxyCodeLine{00093\ \textcolor{keyword}{\ \ \ \ }\{}
\DoxyCodeLine{00094\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQ(b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a7e866dde6ed93bfb3489a74da31c82a6}{get\_num\_batch\_items}}(),\ this-\/>get\_num\_batch\_items());}
\DoxyCodeLine{00095\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQ(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_aedce5278a6da01435e69cd4b12782375}{get\_num\_batch\_items}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a7e866dde6ed93bfb3489a74da31c82a6}{get\_num\_batch\_items}}());}
\DoxyCodeLine{00096\ }
\DoxyCodeLine{00097\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_CONFORMANT(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_ab50d8aefbcebd8dcb9b6a97ab131d59d}{get\_common\_size}}(),\ b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00098\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_ROWS(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_ab50d8aefbcebd8dcb9b6a97ab131d59d}{get\_common\_size}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00099\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_COLS(b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00100\ \ \ \ \ \}}
\DoxyCodeLine{00101\ }
\DoxyCodeLine{00107\ \ \ \ \ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ValueType>}
\DoxyCodeLine{00108\ \ \ \ \ \textcolor{keywordtype}{void}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_a8f14ea87e7698b874d335774eb454e12}{validate\_application\_parameters}}(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ alpha,}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ b,}
\DoxyCodeLine{00110\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ beta,}
\DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector}{MultiVector<ValueType>}}*\ x)\textcolor{keyword}{\ const}}
\DoxyCodeLine{00112\ \textcolor{keyword}{\ \ \ \ }\{}
\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQ(b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a7e866dde6ed93bfb3489a74da31c82a6}{get\_num\_batch\_items}}(),\ this-\/>get\_num\_batch\_items());}
\DoxyCodeLine{00114\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQ(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_aedce5278a6da01435e69cd4b12782375}{get\_num\_batch\_items}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a7e866dde6ed93bfb3489a74da31c82a6}{get\_num\_batch\_items}}());}
\DoxyCodeLine{00115\ }
\DoxyCodeLine{00116\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_CONFORMANT(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_ab50d8aefbcebd8dcb9b6a97ab131d59d}{get\_common\_size}}(),\ b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00117\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_ROWS(this-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp_ab50d8aefbcebd8dcb9b6a97ab131d59d}{get\_common\_size}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00118\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_COLS(b-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}(),\ x-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}());}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_DIMENSIONS(alpha-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}(),}
\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \doxymbox{\hyperlink{structgko_1_1dim}{gko::dim<2>}}(1,\ 1));}
\DoxyCodeLine{00121\ \ \ \ \ \ \ \ \ GKO\_ASSERT\_EQUAL\_DIMENSIONS(beta-\/>\doxymbox{\hyperlink{classgko_1_1batch_1_1MultiVector_a53513d38739f579a24242ac08d2c7a5c}{get\_common\_size}}(),\ \doxymbox{\hyperlink{structgko_1_1dim}{gko::dim<2>}}(1,\ 1));}
\DoxyCodeLine{00122\ \ \ \ \ \}}
\DoxyCodeLine{00123\ }
\DoxyCodeLine{00124\ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00130\ \ \ \ \ \textcolor{keywordtype}{void}\ set\_size(\textcolor{keyword}{const}\ \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\_dim<2>}}\&\ size)\ \{\ size\_\ =\ size;\ \}}
\DoxyCodeLine{00131\ }
\DoxyCodeLine{00138\ \ \ \ \ \textcolor{keyword}{explicit}\ BatchLinOp(std::shared\_ptr<const\ Executor>\ exec,}
\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{structgko_1_1batch__dim}{batch\_dim<2>}}\&\ batch\_size)}
\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ :\ EnableAbstractPolymorphicObject<BatchLinOp>(exec),\ size\_\{batch\_size\}}
\DoxyCodeLine{00141\ \ \ \ \ \{\}}
\DoxyCodeLine{00142\ }
\DoxyCodeLine{00151\ \ \ \ \ \textcolor{keyword}{explicit}\ BatchLinOp(std::shared\_ptr<const\ Executor>\ exec,}
\DoxyCodeLine{00152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\_type}}\ num\_batch\_items\ =\ 0,}
\DoxyCodeLine{00153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ dim<2>\&\ common\_size\ =\ dim<2>\{\})}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ :\ BatchLinOp\{std::move(exec),}
\DoxyCodeLine{00155\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ num\_batch\_items\ >\ 0}
\DoxyCodeLine{00156\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ?\ batch\_dim<2>(num\_batch\_items,\ common\_size)}
\DoxyCodeLine{00157\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ batch\_dim<2>\{\}\}}
\DoxyCodeLine{00158\ \ \ \ \ \{\}}
\DoxyCodeLine{00159\ }
\DoxyCodeLine{00160\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00161\ \ \ \ \ batch\_dim<2>\ size\_\{\};}
\DoxyCodeLine{00162\ \};}
\DoxyCodeLine{00163\ }
\DoxyCodeLine{00164\ }
\DoxyCodeLine{00194\ \textcolor{keyword}{class\ }\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOpFactory}{BatchLinOpFactory}}}
\DoxyCodeLine{00195\ \ \ \ \ :\ \textcolor{keyword}{public}\ AbstractFactory<BatchLinOp,\ std::shared\_ptr<const\ BatchLinOp>>\ \{}
\DoxyCodeLine{00196\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00197\ \ \ \ \ \textcolor{keyword}{using\ }AbstractFactory<\doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOp}{BatchLinOp}},}
\DoxyCodeLine{00198\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::shared\_ptr<const\ BatchLinOp>>::AbstractFactory;}
\DoxyCodeLine{00199\ }
\DoxyCodeLine{00200\ \ \ \ \ std::unique\_ptr<BatchLinOp>\ generate(}
\DoxyCodeLine{00201\ \ \ \ \ \ \ \ \ std::shared\_ptr<const\ BatchLinOp>\ input)\textcolor{keyword}{\ const}}
\DoxyCodeLine{00202\ \textcolor{keyword}{\ \ \ \ }\{}
\DoxyCodeLine{00203\ \ \ \ \ \ \ \ \ this-\/>\textcolor{keyword}{template}\ \doxymbox{\hyperlink{namespacegko_1_1batch_1_1log}{log}}<}
\DoxyCodeLine{00204\ \ \ \ \ \ \ \ \ \ \ \ \ gko::log::Logger::batch\_linop\_factory\_generate\_started>(}
\DoxyCodeLine{00205\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{this},\ input.get());}
\DoxyCodeLine{00206\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ exec\ =\ this-\/>get\_executor();}
\DoxyCodeLine{00207\ \ \ \ \ \ \ \ \ std::unique\_ptr<BatchLinOp>\ generated;}
\DoxyCodeLine{00208\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (input-\/>get\_executor()\ ==\ exec)\ \{}
\DoxyCodeLine{00209\ \ \ \ \ \ \ \ \ \ \ \ \ generated\ =\ this-\/>\doxymbox{\hyperlink{classgko_1_1AbstractFactory_a7287977ddcd747b4351b72be49a6c230}{AbstractFactory::generate}}(input);}
\DoxyCodeLine{00210\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00211\ \ \ \ \ \ \ \ \ \ \ \ \ generated\ =}
\DoxyCodeLine{00212\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ this-\/>\doxymbox{\hyperlink{classgko_1_1AbstractFactory_a7287977ddcd747b4351b72be49a6c230}{AbstractFactory::generate}}(\doxymbox{\hyperlink{namespacegko_aa194e34282452493231ca7b01ffb5e64}{gko::clone}}(exec,\ input));}
\DoxyCodeLine{00213\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00214\ \ \ \ \ \ \ \ \ this-\/>\textcolor{keyword}{template}\ \doxymbox{\hyperlink{namespacegko_1_1batch_1_1log}{log}}<}
\DoxyCodeLine{00215\ \ \ \ \ \ \ \ \ \ \ \ \ gko::log::Logger::batch\_linop\_factory\_generate\_completed>(}
\DoxyCodeLine{00216\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{this},\ input.get(),\ generated.get());}
\DoxyCodeLine{00217\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ generated;}
\DoxyCodeLine{00218\ \ \ \ \ \}}
\DoxyCodeLine{00219\ \};}
\DoxyCodeLine{00220\ }
\DoxyCodeLine{00221\ }
\DoxyCodeLine{00249\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ConcreteBatchLinOp,\ \textcolor{keyword}{typename}\ PolymorphicBase\ =\ BatchLinOp>}
\DoxyCodeLine{00250\ \textcolor{keyword}{class\ }\doxymbox{\hyperlink{classgko_1_1batch_1_1EnableBatchLinOp}{EnableBatchLinOp}}}
\DoxyCodeLine{00251\ \ \ \ \ :\ \textcolor{keyword}{public}\ \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicObject}{EnablePolymorphicObject}}<ConcreteBatchLinOp,\ PolymorphicBase>,}
\DoxyCodeLine{00252\ \ \ \ \ \ \ \textcolor{keyword}{public}\ \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{EnablePolymorphicAssignment}}<ConcreteBatchLinOp>\ \{}
\DoxyCodeLine{00253\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00254\ \ \ \ \ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{classgko_1_1EnablePolymorphicObject}{EnablePolymorphicObject}}<ConcreteBatchLinOp,}
\DoxyCodeLine{00255\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PolymorphicBase>\doxymbox{\hyperlink{classgko_1_1EnablePolymorphicObject}{::EnablePolymorphicObject}};}
\DoxyCodeLine{00256\ \};}
\DoxyCodeLine{00257\ }
\DoxyCodeLine{00258\ }
\DoxyCodeLine{00275\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ ConcreteFactory,\ \textcolor{keyword}{typename}\ ConcreteBatchLinOp,}
\DoxyCodeLine{00276\ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{typename}\ ParametersType,\ \textcolor{keyword}{typename}\ PolymorphicBase\ =\ \doxymbox{\hyperlink{classgko_1_1batch_1_1BatchLinOpFactory}{BatchLinOpFactory}}>}
\DoxyCodeLine{00277\ \textcolor{keyword}{using\ }\doxymbox{\hyperlink{group__BatchLinOp_ga1fdadb2cde82e36813fd16add2756bef}{EnableDefaultBatchLinOpFactory}}\ =}
\DoxyCodeLine{00278\ \ \ \ \ \doxymbox{\hyperlink{classgko_1_1EnableDefaultFactory}{EnableDefaultFactory}}<ConcreteFactory,\ ConcreteBatchLinOp,\ ParametersType,}
\DoxyCodeLine{00279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PolymorphicBase>;}
\DoxyCodeLine{00280\ }
\DoxyCodeLine{00281\ }
\DoxyCodeLine{00358\ \textcolor{preprocessor}{\#define\ GKO\_ENABLE\_BATCH\_LIN\_OP\_FACTORY(\_batch\_lin\_op,\ \_parameters\_name,\ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00359\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00360\ \textcolor{preprocessor}{public:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00361\ \textcolor{preprocessor}{\ \ \ \ const\ \_parameters\_name\#\#\_type\&\ get\_\#\#\_parameters\_name()\ const\ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00362\ \textcolor{preprocessor}{\ \ \ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00363\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ return\ \_parameters\_name\#\#\_;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00364\ \textcolor{preprocessor}{\ \ \ \ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00365\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00366\ \textcolor{preprocessor}{\ \ \ \ class\ \_factory\_name\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00367\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ :\ public\ ::gko::batch::EnableDefaultBatchLinOpFactory<\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00368\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name,\ \_batch\_lin\_op,\ \_parameters\_name\#\#\_type>\ \{\ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00369\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ friend\ class\ ::gko::EnablePolymorphicObject<\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00370\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name,\ ::gko::batch::BatchLinOpFactory>;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00371\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ friend\ class\ ::gko::enable\_parameters\_type<\_parameters\_name\#\#\_type,\ \ \(\backslash\)}}
\DoxyCodeLine{00372\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name>;\ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00373\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ explicit\ \_factory\_name(std::shared\_ptr<const\ ::gko::Executor>\ exec)\ \ \(\backslash\)}}
\DoxyCodeLine{00374\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ :\ ::gko::batch::EnableDefaultBatchLinOpFactory<\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00375\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name,\ \_batch\_lin\_op,\ \_parameters\_name\#\#\_type>(\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00376\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::move(exec))\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00377\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \{\}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00378\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ explicit\ \_factory\_name(std::shared\_ptr<const\ ::gko::Executor>\ exec,\ \ \(\backslash\)}}
\DoxyCodeLine{00379\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ const\ \_parameters\_name\#\#\_type\&\ parameters)\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00380\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ :\ ::gko::batch::EnableDefaultBatchLinOpFactory<\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00381\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \_factory\_name,\ \_batch\_lin\_op,\ \_parameters\_name\#\#\_type>(\ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00382\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::move(exec),\ parameters)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00383\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \{\}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00384\ \textcolor{preprocessor}{\ \ \ \ \};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00385\ \textcolor{preprocessor}{\ \ \ \ friend\ ::gko::batch::EnableDefaultBatchLinOpFactory<\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00386\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_factory\_name,\ \_batch\_lin\_op,\ \_parameters\_name\#\#\_type>;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00387\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00388\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00389\ \textcolor{preprocessor}{private:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00390\ \textcolor{preprocessor}{\ \ \ \ \_parameters\_name\#\#\_type\ \_parameters\_name\#\#\_;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00391\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00392\ \textcolor{preprocessor}{public:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00393\ \textcolor{preprocessor}{\ \ \ \ static\_assert(true,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}}
\DoxyCodeLine{00394\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}This\ assert\ is\ used\ to\ counter\ the\ false\ positive\ extra\ "{}\ \(\backslash\)}}
\DoxyCodeLine{00395\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}semi-\/colon\ warnings"{})}}
\DoxyCodeLine{00396\ }
\DoxyCodeLine{00397\ }
\DoxyCodeLine{00398\ \}\ \ \textcolor{comment}{//\ namespace\ batch}}
\DoxyCodeLine{00399\ \}\ \ \textcolor{comment}{//\ namespace\ gko}}
\DoxyCodeLine{00400\ }
\DoxyCodeLine{00401\ }
\DoxyCodeLine{00402\ \textcolor{preprocessor}{\#endif\ \ }\textcolor{comment}{//\ GKO\_PUBLIC\_CORE\_BASE\_BATCH\_LIN\_OP\_HPP\_}}

\end{DoxyCode}
