\doxysection{gko::\+solver::\+Enable\+Preconditioned\+Iterative\+Solver\texorpdfstring{$<$}{<} Value\+Type, Derived\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver}{}\label{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver}\index{gko::solver::EnablePreconditionedIterativeSolver$<$ ValueType, DerivedType $>$@{gko::solver::EnablePreconditionedIterativeSolver$<$ ValueType, DerivedType $>$}}


A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface stores a system matrix and stopping criterion factory.  




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



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


Collaboration diagram for gko::\+solver::\+Enable\+Preconditioned\+Iterative\+Solver\texorpdfstring{$<$}{<} Value\+Type, Derived\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver_a82cf79b9e07e5a68b3106863a93ed1c6}\label{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver_a82cf79b9e07e5a68b3106863a93ed1c6} 
{\bfseries Enable\+Preconditioned\+Iterative\+Solver} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ system\+\_\+matrix, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ stop\+\_\+factory, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{namespacegko_1_1preconditioner}{preconditioner}})
\item 
\Hypertarget{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver_a6859b60e5d795c29a6552a2809601d87}\label{classgko_1_1solver_1_1EnablePreconditionedIterativeSolver_a6859b60e5d795c29a6552a2809601d87} 
{\footnotesize template$<$typename Factory\+Parameters$>$ }\\{\bfseries Enable\+Preconditioned\+Iterative\+Solver} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ system\+\_\+matrix, const Factory\+Parameters \&params)
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableSolverBase}{gko::\+solver::\+\+Enable\+Solver\+Base$<$ Derived\+Type, Matrix\+Type $>$}}}
\begin{DoxyCompactItemize}
\item 
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 
{\bfseries Enable\+Solver\+Base} (std::\+shared\+\_\+ptr$<$ const Matrix\+Type $>$ system\+\_\+matrix)
\item 
{\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 
int {\bfseries get\+\_\+num\+\_\+workspace\+\_\+ops} () const override
\item 
std::\+vector$<$ std::\+string $>$ {\bfseries get\+\_\+workspace\+\_\+op\+\_\+names} () const override
\item 
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 
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*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase}{gko::\+solver::\+\+Enable\+Iterative\+Base$<$ Derived\+Type $>$}}}
\begin{DoxyCompactItemize}
\item 
Enable\+Iterative\+Base \& {\bfseries operator=} (const Enable\+Iterative\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided stopping criterion, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
Enable\+Iterative\+Base \& \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase_a196071d7a56d7d20c2560d5060b78c4b}{operator=}} (Enable\+Iterative\+Base \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided stopping criterion, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
{\bfseries Enable\+Iterative\+Base} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ stop\+\_\+factory)
\item 
{\bfseries Enable\+Iterative\+Base} (const Enable\+Iterative\+Base \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided stopping criterion. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase_a9e626f29623fe0c217e86b52d9e66010}{Enable\+Iterative\+Base}} (Enable\+Iterative\+Base \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided stopping criterion. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1solver_1_1EnableIterativeBase_a5e96a31681a2bc03fffb2d76e7a7da12}{set\+\_\+stop\+\_\+criterion\+\_\+factory}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ new\+\_\+stop\+\_\+factory) override
\begin{DoxyCompactList}\small\item\em Sets the stopping criterion of the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1IterativeBase}{gko::\+solver::\+\+Iterative\+Base}}}
\begin{DoxyCompactItemize}
\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{namespacegko_1_1stop_a61839f234ddbaaf68db337e58e012499}{stop::\+\+Criterion\+Factory}} $>$ \doxymbox{\hyperlink{classgko_1_1solver_1_1IterativeBase_a26beb5ec985d883c22b614a8240d981d}{get\+\_\+stop\+\_\+criterion\+\_\+factory}} () const
\begin{DoxyCompactList}\small\item\em Gets the stopping criterion factory of the solver. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable}{gko::\+solver::\+\+Enable\+Preconditionable$<$ Derived\+Type $>$}}}
\begin{DoxyCompactItemize}
\item 
void \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable_ad1f52e213256cd7c50811787dfcf4288}{set\+\_\+preconditioner}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ new\+\_\+precond) override
\begin{DoxyCompactList}\small\item\em Sets the preconditioner operator used by the \doxylink{classgko_1_1Preconditionable}{Preconditionable}. \end{DoxyCompactList}\item 
Enable\+Preconditionable \& {\bfseries operator=} (const Enable\+Preconditionable \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided preconditioner, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
Enable\+Preconditionable \& \doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable_aa677dd092a26e4b33d9a811460f53616}{operator=}} (Enable\+Preconditionable \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided preconditioner, clones it onto this executor if executors don\textquotesingle{}t match. \end{DoxyCompactList}\item 
{\bfseries Enable\+Preconditionable} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{namespacegko_1_1preconditioner}{preconditioner}})
\item 
{\bfseries Enable\+Preconditionable} (const Enable\+Preconditionable \&other)
\begin{DoxyCompactList}\small\item\em Creates a shallow copy of the provided preconditioner. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1solver_1_1EnablePreconditionable_aaa7bb12e91c97393fbe2aca090ed177f}{Enable\+Preconditionable}} (Enable\+Preconditionable \&\&other)
\begin{DoxyCompactList}\small\item\em Moves the provided preconditioner. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1Preconditionable}{gko::\+\+Preconditionable}}}
\begin{DoxyCompactItemize}
\item 
virtual std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1Preconditionable_abde941e32b5fc5007a4afe0f6d3fdfbc}{get\+\_\+preconditioner}} () const
\begin{DoxyCompactList}\small\item\em Returns the preconditioner operator used by the \doxylink{classgko_1_1Preconditionable}{Preconditionable}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type, typename Derived\+Type$>$\newline
class gko::\+solver::\+\+Enable\+Preconditioned\+Iterative\+Solver$<$ Value\+Type, Derived\+Type $>$}
A \doxylink{classgko_1_1LinOp}{Lin\+Op} implementing this interface stores a system matrix and stopping criterion factory. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the value type that iterative solver uses for its vectors \\
\hline
{\em Derived\+Type} & the CRTP type that derives from this \\
\hline
\end{DoxyTemplParams}


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