\doxysection{gko::\+experimental::\+factorization::\+Lu\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu}{}\label{classgko_1_1experimental_1_1factorization_1_1Lu}\index{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}}


Computes an LU factorization of a sparse matrix.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+factorization/\+lu.\+hpp$>$}



Inheritance diagram for gko::\+experimental::\+factorization::\+Lu\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1experimental_1_1factorization_1_1Lu__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+experimental::\+factorization::\+Lu\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1experimental_1_1factorization_1_1Lu__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a39829a677494fa0442d7707144df23ef}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a39829a677494fa0442d7707144df23ef} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a79d68ac7ff370ec3ec2e1721accc7194}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a79d68ac7ff370ec3ec2e1721accc7194} 
using {\bfseries index\+\_\+type} = Index\+Type
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_ae7d50cfbf602a9f2f746420be6b888f3}\label{classgko_1_1experimental_1_1factorization_1_1Lu_ae7d50cfbf602a9f2f746420be6b888f3} 
using {\bfseries matrix\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{matrix::\+\+Csr}}$<$value\+\_\+type, index\+\_\+type$>$
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a26ca5b29813f5ff1ce30ff80678708c9}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a26ca5b29813f5ff1ce30ff80678708c9} 
using {\bfseries sparsity\+\_\+pattern\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{matrix::\+\+Sparsity\+Csr}}$<$value\+\_\+type, index\+\_\+type$>$
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a2236451751bf6ead80c5c5a6ac34d379}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a2236451751bf6ead80c5c5a6ac34d379} 
using {\bfseries factorization\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Factorization}{Factorization}}$<$value\+\_\+type, index\+\_\+type$>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Lu$<$ Value\+Type, Index\+Type $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
const \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu_a2a92dbc04db87b6f237e01f787dcbc96}{get\+\_\+parameters}} ()
\begin{DoxyCompactList}\small\item\em Returns the parameters used to construct the factory. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu_aaaf40fe3e5bec65195d499c676bc77aa}{get\+\_\+parameters}} () const
\begin{DoxyCompactList}\small\item\em Returns the parameters used to construct the factory.    \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ factorization\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu_a059ba3dd890e65a858ca429d1374e8bc}{generate}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ system\+\_\+matrix) const
\begin{DoxyCompactList}\small\item\em Creates a new product from the given components.    \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Lu$<$ Value\+Type, Index\+Type $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
void {\bfseries convert\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) const override
\item 
void {\bfseries move\+\_\+to} (result\+\_\+type \texorpdfstring{$\ast$}{*}result) override
\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a61cd8064ed1566c54912183bfeae5e5e}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a61cd8064ed1566c54912183bfeae5e5e} 
static \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} {\bfseries build} ()
\begin{DoxyCompactList}\small\item\em Creates a new parameter\+\_\+type to set up the factory. \end{DoxyCompactList}\item 
static \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu_ae0a2838910f62130f940432ea5801708}{parse}} (const \doxymbox{\hyperlink{classgko_1_1config_1_1pnode}{config::\+pnode}} \&config, const \doxymbox{\hyperlink{classgko_1_1config_1_1registry}{config::\+registry}} \&context, const \doxymbox{\hyperlink{classgko_1_1config_1_1type__descriptor}{config::\+type\+\_\+descriptor}} \&td\+\_\+for\+\_\+child=config::\+make\+\_\+type\+\_\+descriptor$<$ Value\+Type, Index\+Type $>$())
\begin{DoxyCompactList}\small\item\em Create the parameters from the property\+\_\+tree. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_ad62066cdaf0bdd83dd1ef427d0da76d8}\label{classgko_1_1experimental_1_1factorization_1_1Lu_ad62066cdaf0bdd83dd1ef427d0da76d8} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Lu, Lin\+Op\+Factory $>$}
\item 
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a71a5d57a1021b6f36af4bae28491d767}\label{classgko_1_1experimental_1_1factorization_1_1Lu_a71a5d57a1021b6f36af4bae28491d767} 
class {\bfseries enable\+\_\+parameters\+\_\+type$<$ parameters\+\_\+type, Lu $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type, typename Index\+Type$>$\newline
class gko::\+experimental::\+factorization::\+\+Lu$<$ Value\+Type, Index\+Type $>$}
Computes an LU factorization of a sparse matrix. 

This \doxylink{classgko_1_1LinOpFactory}{Lin\+Op\+Factory} returns a \doxylink{classgko_1_1experimental_1_1factorization_1_1Factorization}{Factorization} storing the L and U factors for the provided system matrix in \doxylink{classgko_1_1matrix_1_1Csr}{matrix::\+\+Csr} format. If no symbolic factorization is provided, it will be computed first. It expects all fill-\/in entries to be present in the symbolic factorization. If the symbolic factorization is missing some entries, please refer to Ilu.


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the type used to store values of the system matrix \\
\hline
{\em Index\+Type} & the type used to store sparsity pattern indices of the system matrix \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a059ba3dd890e65a858ca429d1374e8bc}\index{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}!generate@{generate}}
\index{generate@{generate}!gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{generate()}{generate()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1factorization_1_1Lu_a059ba3dd890e65a858ca429d1374e8bc} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
std::\+unique\+\_\+ptr$<$ factorization\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu}{gko::\+experimental::\+factorization::\+\+Lu}}$<$ Value\+Type, Index\+Type $>$::\+generate (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{system\+\_\+matrix}{}\end{DoxyParamCaption}) const}



Creates a new product from the given components.    

The method will create an Components\+Type object from the arguments of this method, and pass it to the generate\+\_\+impl() function which will create a new Abstract\+Product\+Type.


\begin{DoxyTemplParams}{Template Parameters}
{\em Args} & types of arguments passed to the constructor of Components\+Type\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em args} & arguments passed to the constructor of Components\+Type\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an instance of Abstract\+Product\+Type    
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function overrides the default \doxylink{classgko_1_1AbstractFactory_a7287977ddcd747b4351b72be49a6c230}{Lin\+Op\+Factory::\+generate} to return a \doxylink{classgko_1_1experimental_1_1factorization_1_1Factorization}{Factorization} instead of a generic \doxylink{classgko_1_1LinOp}{Lin\+Op}, which would need to be cast to \doxylink{classgko_1_1experimental_1_1factorization_1_1Factorization}{Factorization} again to access its factors. It is only necessary because smart pointers aren\textquotesingle{}t covariant. 
\end{DoxyNote}
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_a2a92dbc04db87b6f237e01f787dcbc96}\index{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}!get\_parameters@{get\_parameters}}
\index{get\_parameters@{get\_parameters}!gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_parameters()}{get\_parameters()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1factorization_1_1Lu_a2a92dbc04db87b6f237e01f787dcbc96} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
const \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu}{gko::\+experimental::\+factorization::\+\+Lu}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+parameters (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns the parameters used to construct the factory. 

\begin{DoxyReturn}{Returns}
the parameters used to construct the factory. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_aaaf40fe3e5bec65195d499c676bc77aa}\index{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}!get\_parameters@{get\_parameters}}
\index{get\_parameters@{get\_parameters}!gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_parameters()}{get\_parameters()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1factorization_1_1Lu_aaaf40fe3e5bec65195d499c676bc77aa} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
const \doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu}{gko::\+experimental::\+factorization::\+\+Lu}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+parameters (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns the parameters used to construct the factory.    

\begin{DoxyReturn}{Returns}
the parameters used to construct the factory.    
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1factorization_1_1Lu_ae0a2838910f62130f940432ea5801708}\index{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}!parse@{parse}}
\index{parse@{parse}!gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$@{gko::experimental::factorization::Lu$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{parse()}{parse()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1factorization_1_1Lu_ae0a2838910f62130f940432ea5801708} 
template$<$typename Value\+Type, typename Index\+Type$>$ \\
\doxymbox{\hyperlink{structgko_1_1experimental_1_1factorization_1_1Lu_1_1parameters__type}{parameters\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1experimental_1_1factorization_1_1Lu}{gko::\+experimental::\+factorization::\+\+Lu}}$<$ Value\+Type, Index\+Type $>$::\+parse (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1pnode}{config::\+pnode}} \&}]{config}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1registry}{config::\+registry}} \&}]{context}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1config_1_1type__descriptor}{config::\+type\+\_\+descriptor}} \&}]{td\+\_\+for\+\_\+child}{ = {\ttfamily config:\+:\+make\+\_\+type\+\_\+descriptor$<$~ValueType,~IndexType~$>$()}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create the parameters from the property\+\_\+tree. 

Because this is directly tied to the specific type, the value/\+index type settings within config are ignored and type\+\_\+descriptor is only used for children configs.


\begin{DoxyParams}{Parameters}
{\em config} & the property tree for setting \\
\hline
{\em context} & the registry \\
\hline
{\em td\+\_\+for\+\_\+child} & the type descriptor for children configs. The default uses the value/\+index type of this class.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
parameters 
\end{DoxyReturn}


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