\doxysection{gko::\+solver::\+Enable\+Solver\+Base\texorpdfstring{$<$}{<} Derived\+Type, Matrix\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1solver_1_1EnableSolverBase}{}\label{classgko_1_1solver_1_1EnableSolverBase}\index{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$@{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$}}


A \doxylink{classgko_1_1LinOp}{Lin\+Op} deriving from this CRTP class stores a system matrix.  




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



Inheritance diagram for gko::\+solver::\+Enable\+Solver\+Base\texorpdfstring{$<$}{<} Derived\+Type, Matrix\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1solver_1_1EnableSolverBase__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+solver::\+Enable\+Solver\+Base\texorpdfstring{$<$}{<} Derived\+Type, Matrix\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=292pt]{classgko_1_1solver_1_1EnableSolverBase__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_af1f141045be3695da012c21077f116eb}\label{classgko_1_1solver_1_1EnableSolverBase_af1f141045be3695da012c21077f116eb} 
Enable\+Solver\+Base \& {\bfseries operator=} (const Enable\+Solver\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided system matrix, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
Enable\+Solver\+Base \& \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase_abc80ef6c16a11f9e03a0d79924b0e53b}{operator=}} (Enable\+Solver\+Base \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided system matrix, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a0ebdbf9331eaa5a1ea7e786f796695e3}\label{classgko_1_1solver_1_1EnableSolverBase_a0ebdbf9331eaa5a1ea7e786f796695e3} 
{\bfseries Enable\+Solver\+Base} (std::\+shared\+\_\+ptr$<$ const Matrix\+Type $>$ system\+\_\+matrix)
\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a84dbd5a7e4099feeefbfe4d93a99c316}\label{classgko_1_1solver_1_1EnableSolverBase_a84dbd5a7e4099feeefbfe4d93a99c316} 
{\bfseries Enable\+Solver\+Base} (const Enable\+Solver\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided system matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase_a15d3d4df7a5a03ccc3a464957b3000b6}{Enable\+Solver\+Base}} (Enable\+Solver\+Base \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided system matrix. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a1b22a10882911f839fea22a9191ad404}\label{classgko_1_1solver_1_1EnableSolverBase_a1b22a10882911f839fea22a9191ad404} 
int {\bfseries get\+\_\+num\+\_\+workspace\+\_\+ops} () const override
\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_aa18b53eeb69e70c64e9902bcccf7b87c}\label{classgko_1_1solver_1_1EnableSolverBase_aa18b53eeb69e70c64e9902bcccf7b87c} 
std::\+vector$<$ std::\+string $>$ {\bfseries get\+\_\+workspace\+\_\+op\+\_\+names} () const override
\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a4ae6fc4edbee9f7fcd55ae5c4e31f78d}\label{classgko_1_1solver_1_1EnableSolverBase_a4ae6fc4edbee9f7fcd55ae5c4e31f78d} 
std::\+vector$<$ int $>$ {\bfseries get\+\_\+workspace\+\_\+scalars} () const override
\begin{DoxyCompactList}\small\item\em Returns the IDs of all scalars (workspace vectors with system dimension-\/independent size, usually 1 x num\+\_\+rhs). \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a15ef897496baad291b58484f8e93d945}\label{classgko_1_1solver_1_1EnableSolverBase_a15ef897496baad291b58484f8e93d945} 
std::\+vector$<$ int $>$ {\bfseries get\+\_\+workspace\+\_\+vectors} () const override
\begin{DoxyCompactList}\small\item\em Returns the IDs of all vectors (workspace vectors with system dimension-\/dependent size, usually system\+\_\+matrix\+\_\+size x num\+\_\+rhs). \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1SolverBase}{gko::\+solver::\+\+Solver\+Base$<$ Lin\+Op $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1SolverBase_a2270916c6cb8451c275c0bca44c5d09e}{get\+\_\+system\+\_\+matrix}} () const
\begin{DoxyCompactList}\small\item\em Returns the system matrix, with its concrete type, used by the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Derived\+Type, typename Matrix\+Type = Lin\+Op$>$\newline
class gko::\+solver::\+\+Enable\+Solver\+Base$<$ Derived\+Type, Matrix\+Type $>$}
A \doxylink{classgko_1_1LinOp}{Lin\+Op} deriving from this CRTP class stores a system matrix. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Derived\+Type} & the CRTP type that derives from this \\
\hline
{\em Matrix\+Type} & the concrete matrix type to be stored as system\+\_\+matrix \\
\hline
\end{DoxyTemplParams}


\label{doc-constructors}
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_a15d3d4df7a5a03ccc3a464957b3000b6}\index{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$@{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$}!EnableSolverBase@{EnableSolverBase}}
\index{EnableSolverBase@{EnableSolverBase}!gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$@{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$}}
\doxysubsubsection{\texorpdfstring{EnableSolverBase()}{EnableSolverBase()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1EnableSolverBase_a15d3d4df7a5a03ccc3a464957b3000b6} 
template$<$typename Derived\+Type, typename Matrix\+Type = Lin\+Op$>$ \\
\doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase}{gko::\+solver::\+\+Enable\+Solver\+Base}}$<$ Derived\+Type, Matrix\+Type $>$::\+\+Enable\+Solver\+Base (\begin{DoxyParamCaption}\item[{Enable\+Solver\+Base$<$ Derived\+Type, Matrix\+Type $>$ \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Moves the provided system matrix. 

The moved-\/from object has a nullptr system matrix. 

\label{doc-func-members}
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1solver_1_1EnableSolverBase_abc80ef6c16a11f9e03a0d79924b0e53b}\index{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$@{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$@{gko::solver::EnableSolverBase$<$ DerivedType, MatrixType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \label{classgko_1_1solver_1_1EnableSolverBase_abc80ef6c16a11f9e03a0d79924b0e53b} 
template$<$typename Derived\+Type, typename Matrix\+Type = Lin\+Op$>$ \\
Enable\+Solver\+Base \& \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase}{gko::\+solver::\+\+Enable\+Solver\+Base}}$<$ Derived\+Type, Matrix\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{Enable\+Solver\+Base$<$ Derived\+Type, Matrix\+Type $>$ \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Moves the provided system matrix, clones it onto this executor if executors don\textquotesingle{}t match. 

The moved-\/from object has a nullptr system matrix. 

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