\doxysection{gko::\+preconditioner::\+Isai\texorpdfstring{$<$}{<} Isai\+Type, Value\+Type, Index\+Type \texorpdfstring{$>$}{>}::\+parameters\+\_\+type Struct Reference}
\hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type}{}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type}\index{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}}


Inheritance diagram for gko::\+preconditioner::\+Isai\texorpdfstring{$<$}{<} Isai\+Type, Value\+Type, Index\+Type \texorpdfstring{$>$}{>}::\+parameters\+\_\+type:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=253pt]{structgko_1_1preconditioner_1_1Isai_1_1parameters__type__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+preconditioner::\+Isai\texorpdfstring{$<$}{<} Isai\+Type, Value\+Type, Index\+Type \texorpdfstring{$>$}{>}::\+parameters\+\_\+type:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{structgko_1_1preconditioner_1_1Isai_1_1parameters__type__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a3018f28aa1266c1c45d4bd81579fa595}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a3018f28aa1266c1c45d4bd81579fa595} 
{\footnotesize template$<$typename... Args$>$ }\\auto {\bfseries with\+\_\+skip\+\_\+sorting} (Args \&\&... \+\_\+value) -\/$>$ std::\+decay\+\_\+t$<$ decltype(\texorpdfstring{$\ast$}{*}(this-\/$>$self()))$>$ \&
\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a911723f5944dd394468366b8744a9737}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a911723f5944dd394468366b8744a9737} 
{\footnotesize template$<$typename... Args$>$ }\\auto {\bfseries with\+\_\+sparsity\+\_\+power} (Args \&\&... \+\_\+value) -\/$>$ std::\+decay\+\_\+t$<$ decltype(\texorpdfstring{$\ast$}{*}(this-\/$>$self()))$>$ \&
\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a23c22ff0427293c7f4892df1d52c462d}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a23c22ff0427293c7f4892df1d52c462d} 
{\footnotesize template$<$typename... Args$>$ }\\auto {\bfseries with\+\_\+excess\+\_\+limit} (Args \&\&... \+\_\+value) -\/$>$ std::\+decay\+\_\+t$<$ decltype(\texorpdfstring{$\ast$}{*}(this-\/$>$self()))$>$ \&
\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_acde8afff9ba34b4e17b5bf1ce2798532}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_acde8afff9ba34b4e17b5bf1ce2798532} 
auto {\bfseries with\+\_\+excess\+\_\+solver\+\_\+factory} (\doxymbox{\hyperlink{classgko_1_1deferred__factory__parameter}{::\+gko::\+deferred\+\_\+factory\+\_\+parameter}}$<$ excess\+\_\+solver\+\_\+factory\+\_\+type $>$ factory) -\/$>$ std::\+decay\+\_\+t$<$ decltype(\texorpdfstring{$\ast$}{*}(this-\/$>$self()))$>$ \&
\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_ac9c05474e97cb1ab79fb38f9e24d8df9}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_ac9c05474e97cb1ab79fb38f9e24d8df9} 
{\footnotesize template$<$typename... Args$>$ }\\auto {\bfseries with\+\_\+excess\+\_\+solver\+\_\+reduction} (Args \&\&... \+\_\+value) -\/$>$ std::\+decay\+\_\+t$<$ decltype(\texorpdfstring{$\ast$}{*}(this-\/$>$self()))$>$ \&
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1enable__parameters__type}{gko::\+enable\+\_\+parameters\+\_\+type$<$ parameters\+\_\+type, Factory $>$}}}
\begin{DoxyCompactItemize}
\item 
parameters\+\_\+type \& {\bfseries with\+\_\+loggers} (Args \&\&... \+\_\+value)
\begin{DoxyCompactList}\small\item\em Provides the loggers to be added to the factory and its generated objects in a fluent interface. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ Factory $>$ \doxymbox{\hyperlink{classgko_1_1enable__parameters__type_a65a5adc4eb7078475d26e7991efae64d}{on}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec) const
\begin{DoxyCompactList}\small\item\em Creates a new factory on the specified executor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
bool \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a0f94fd144a00a6294ac4e2b430b1d5d1}{skip\+\_\+sorting}} \{false\}
\begin{DoxyCompactList}\small\item\em Optimization parameter that skips the sorting of the input matrix (only skip if it is known that it is already sorted). \end{DoxyCompactList}\item 
int \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a24629edfcca9106e2bb310bdbca2c28c}{sparsity\+\_\+power}} \{1\}
\begin{DoxyCompactList}\small\item\em Which power of the input matrix should be used for the sparsity pattern. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a482c697381c36d4e5766ac52983bd1fb}{excess\+\_\+limit}} \{0u\}
\begin{DoxyCompactList}\small\item\em Size limit for the excess system. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory}} $>$ \doxymbox{\hyperlink{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a1a739ecb3368e58fe335fca16af1b0a4}{excess\+\_\+solver\+\_\+factory}} \{\}
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1preconditioner_1_1Isai_1_1Factory}{Factory} for the Excess System solver. \end{DoxyCompactList}\item 
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a487e189c79ddaf1cd19dfcbd2a7e3ff1}\label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a487e189c79ddaf1cd19dfcbd2a7e3ff1} 
\doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$ value\+\_\+type $>$ {\bfseries excess\+\_\+solver\+\_\+reduction} \{static\+\_\+cast$<$\doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$value\+\_\+type$>$$>$(1e-\/6)\}
\end{DoxyCompactItemize}
\doxysubsubsection*{Additional Inherited Members}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1enable__parameters__type}{gko::\+enable\+\_\+parameters\+\_\+type$<$ parameters\+\_\+type, Factory $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries factory}
\end{DoxyCompactItemize}


\label{doc-variable-members}
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_doc-variable-members}
\doxysubsection{Member Data Documentation}
\Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a482c697381c36d4e5766ac52983bd1fb}\index{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}!excess\_limit@{excess\_limit}}
\index{excess\_limit@{excess\_limit}!gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}}
\doxysubsubsection{\texorpdfstring{excess\_limit}{excess\_limit}}
{\footnotesize\ttfamily \label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a482c697381c36d4e5766ac52983bd1fb} 
template$<$\doxymbox{\hyperlink{namespacegko_1_1preconditioner_a918dfc2ae55135bbd6e1e01d0c6031ab}{isai\+\_\+type}} Isai\+Type, typename Value\+Type, typename Index\+Type$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Isai}{gko::\+preconditioner::\+\+Isai}}$<$ Isai\+Type, Value\+Type, Index\+Type $>$::\+parameters\+\_\+type::\+excess\+\_\+limit \{0u\}}



Size limit for the excess system. 

For rows with more than 32 nonzero entries, the algorithm builds up an excess system which is solved with sparse triangular solves (for upper or lower ISAI) or GMRES (for general ISAI). If this parameter is set to some m \texorpdfstring{$>$}{>} 0, the excess system is solved as soon as its size supersedes m. This is repeated until the complete excess solution has been computed. Must be at least 0, default value 0. \Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a1a739ecb3368e58fe335fca16af1b0a4}\index{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}!excess\_solver\_factory@{excess\_solver\_factory}}
\index{excess\_solver\_factory@{excess\_solver\_factory}!gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}}
\doxysubsubsection{\texorpdfstring{excess\_solver\_factory}{excess\_solver\_factory}}
{\footnotesize\ttfamily \label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a1a739ecb3368e58fe335fca16af1b0a4} 
template$<$\doxymbox{\hyperlink{namespacegko_1_1preconditioner_a918dfc2ae55135bbd6e1e01d0c6031ab}{isai\+\_\+type}} Isai\+Type, typename Value\+Type, typename Index\+Type$>$ \\
std::\+shared\+\_\+ptr$<$const \doxymbox{\hyperlink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory}}$>$ \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Isai}{gko::\+preconditioner::\+\+Isai}}$<$ Isai\+Type, Value\+Type, Index\+Type $>$::\+parameters\+\_\+type::\+excess\+\_\+solver\+\_\+factory \{\}}



\doxylink{classgko_1_1preconditioner_1_1Isai_1_1Factory}{Factory} for the Excess System solver. 

Defaults to using a triangular solver for upper and lower ISAI and to Block-\/\+Jacobi preconditioned GMRES for general and spd ISAI. \Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a0f94fd144a00a6294ac4e2b430b1d5d1}\index{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}!skip\_sorting@{skip\_sorting}}
\index{skip\_sorting@{skip\_sorting}!gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}}
\doxysubsubsection{\texorpdfstring{skip\_sorting}{skip\_sorting}}
{\footnotesize\ttfamily \label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a0f94fd144a00a6294ac4e2b430b1d5d1} 
template$<$\doxymbox{\hyperlink{namespacegko_1_1preconditioner_a918dfc2ae55135bbd6e1e01d0c6031ab}{isai\+\_\+type}} Isai\+Type, typename Value\+Type, typename Index\+Type$>$ \\
bool \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Isai}{gko::\+preconditioner::\+\+Isai}}$<$ Isai\+Type, Value\+Type, Index\+Type $>$::\+parameters\+\_\+type::\+skip\+\_\+sorting \{false\}}



Optimization parameter that skips the sorting of the input matrix (only skip if it is known that it is already sorted). 

The algorithm to create the approximate inverses requires the input matrix to be sorted. If it is, this parameter can be set to {\ttfamily true} to skip the sorting for better performance. \Hypertarget{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a24629edfcca9106e2bb310bdbca2c28c}\index{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}!sparsity\_power@{sparsity\_power}}
\index{sparsity\_power@{sparsity\_power}!gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type@{gko::preconditioner::Isai$<$ IsaiType, ValueType, IndexType $>$::parameters\_type}}
\doxysubsubsection{\texorpdfstring{sparsity\_power}{sparsity\_power}}
{\footnotesize\ttfamily \label{structgko_1_1preconditioner_1_1Isai_1_1parameters__type_a24629edfcca9106e2bb310bdbca2c28c} 
template$<$\doxymbox{\hyperlink{namespacegko_1_1preconditioner_a918dfc2ae55135bbd6e1e01d0c6031ab}{isai\+\_\+type}} Isai\+Type, typename Value\+Type, typename Index\+Type$>$ \\
int \doxymbox{\hyperlink{classgko_1_1preconditioner_1_1Isai}{gko::\+preconditioner::\+\+Isai}}$<$ Isai\+Type, Value\+Type, Index\+Type $>$::\+parameters\+\_\+type::\+sparsity\+\_\+power \{1\}}



Which power of the input matrix should be used for the sparsity pattern. 

The algorithm symbolically computes M\texorpdfstring{$^\wedge$}{\string^}n and uses this sparsity pattern for the sparse inverse. Must be at least 1, default value 1. 

The documentation for this struct was generated from the following file:\+\begin{DoxyCompactItemize}
\item 
ginkgo/\+core/\+preconditioner/\+isai.\+hpp\end{DoxyCompactItemize}
