\doxysection{gko::\+Enable\+Absolute\+Computation\texorpdfstring{$<$}{<} Absolute\+Lin\+Op \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1EnableAbsoluteComputation}{}\label{classgko_1_1EnableAbsoluteComputation}\index{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$@{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$}}


The \doxylink{classgko_1_1EnableAbsoluteComputation}{Enable\+Absolute\+Computation} mixin provides the default implementations of {\ttfamily \doxylink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} and the absolute interface.  




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



Inheritance diagram for gko::\+Enable\+Absolute\+Computation\texorpdfstring{$<$}{<} Absolute\+Lin\+Op \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1EnableAbsoluteComputation__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+Enable\+Absolute\+Computation\texorpdfstring{$<$}{<} Absolute\+Lin\+Op \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=241pt]{classgko_1_1EnableAbsoluteComputation__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1EnableAbsoluteComputation_ad6616d45bfad753eafabfb916006e5d7}\label{classgko_1_1EnableAbsoluteComputation_ad6616d45bfad753eafabfb916006e5d7} 
using {\bfseries absolute\+\_\+type} = Absolute\+Lin\+Op
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} () const override
\begin{DoxyCompactList}\small\item\em Gets the absolute \doxylink{classgko_1_1LinOp}{Lin\+Op}. \end{DoxyCompactList}\item 
virtual std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}{compute\+\_\+absolute}} () const =0
\begin{DoxyCompactList}\small\item\em Gets the Absolute\+Lin\+Op. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1AbsoluteComputable}{gko::\+\+Absolute\+Computable}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1AbsoluteComputable_a09c6acf477a3457b2b2dc0618b406da2}{compute\+\_\+absolute\+\_\+inplace}} ()=0
\begin{DoxyCompactList}\small\item\em Compute absolute inplace on each element. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Absolute\+Lin\+Op$>$\newline
class gko::\+\+Enable\+Absolute\+Computation$<$ Absolute\+Lin\+Op $>$}
The \doxylink{classgko_1_1EnableAbsoluteComputation}{Enable\+Absolute\+Computation} mixin provides the default implementations of {\ttfamily \doxylink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} and the absolute interface. 

{\ttfamily \doxylink{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}{compute\+\_\+absolute}} gets a new Absolute\+Lin\+Op. {\ttfamily \doxylink{classgko_1_1AbsoluteComputable_a09c6acf477a3457b2b2dc0618b406da2}{compute\+\_\+absolute\+\_\+inplace}} applies absolute inplace, so it still keeps the value\+\_\+type of the class.


\begin{DoxyTemplParams}{Template Parameters}
{\em Absolute\+Lin\+Op} & the absolute \doxylink{classgko_1_1LinOp}{Lin\+Op} which is being returned \+[CRTP parameter]\+ \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1EnableAbsoluteComputation_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}\index{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$@{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$@{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}}
{\footnotesize\ttfamily \label{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65} 
template$<$typename Absolute\+Lin\+Op$>$ \\
virtual std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation}}$<$ Absolute\+Lin\+Op $>$::\+compute\+\_\+absolute (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Gets the Absolute\+Lin\+Op. 

\begin{DoxyReturn}{Returns}
a pointer to the new absolute object 
\end{DoxyReturn}


Implemented in \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}{gko::\+experimental::\+distributed::\+\+Vector$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}{gko::\+experimental::\+distributed::\+\+Vector$<$ previous\+\_\+precision$<$ Value\+Type $>$ $>$}}, \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}{gko::\+experimental::\+distributed::\+\+Vector$<$ to\+\_\+complex$<$ value\+\_\+type $>$ $>$}}, \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}{gko::\+experimental::\+distributed::\+\+Vector$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ac40e048a11f6eaa698e01fa59dbc82e8}{gko::\+matrix::\+\+Coo$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ac40e048a11f6eaa698e01fa59dbc82e8}{gko::\+matrix::\+\+Coo$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_a2435b1ff883ca33fa3874bc81aada57b}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_a2435b1ff883ca33fa3874bc81aada57b}{gko::\+matrix::\+\+Csr$<$ value\+\_\+type, index\+\_\+type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_a2435b1ff883ca33fa3874bc81aada57b}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ absolute\+\_\+type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ remove\+\_\+complex$<$ Value\+Type $>$ $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ to\+\_\+complex$<$ Value\+Type $>$ $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ value\+\_\+type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{gko::\+matrix::\+\+Dense$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal_aa94ce42bd04297ff98bf88fe781bb49b}{gko::\+matrix::\+\+Diagonal$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal_aa94ce42bd04297ff98bf88fe781bb49b}{gko::\+matrix::\+\+Diagonal$<$ Value\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell_a72d92a2f7c4019c22e0490bd004b09e5}{gko::\+matrix::\+\+Ell$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell_a72d92a2f7c4019c22e0490bd004b09e5}{gko::\+matrix::\+\+Ell$<$ value\+\_\+type, index\+\_\+type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell_a72d92a2f7c4019c22e0490bd004b09e5}{gko::\+matrix::\+\+Ell$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a9a6b00e46ef79907ede48921fc8ff9f0}{gko::\+matrix::\+\+Fbcsr$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr_a9a6b00e46ef79907ede48921fc8ff9f0}{gko::\+matrix::\+\+Fbcsr$<$ Value\+Type, Index\+Type $>$}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_a3407d2dc1a5a88e1abdd977f61d37d31}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Sellp_a264e6af0d5ca0c10518c5b7084ee2ed1}{gko::\+matrix::\+\+Sellp$<$ Value\+Type, Index\+Type $>$}}.



Referenced by \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop()}}.

\Hypertarget{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}\index{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$@{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$}!compute\_absolute\_linop@{compute\_absolute\_linop}}
\index{compute\_absolute\_linop@{compute\_absolute\_linop}!gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$@{gko::EnableAbsoluteComputation$<$ AbsoluteLinOp $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute\_linop()}{compute\_absolute\_linop()}}
{\footnotesize\ttfamily \label{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c} 
template$<$typename Absolute\+Lin\+Op$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation}}$<$ Absolute\+Lin\+Op $>$::\+compute\+\_\+absolute\+\_\+linop (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}



Gets the absolute \doxylink{classgko_1_1LinOp}{Lin\+Op}. 

\begin{DoxyReturn}{Returns}
a pointer to the new absolute \doxylink{classgko_1_1LinOp}{Lin\+Op} 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1AbsoluteComputable_aebbca019bd19a9c66a894d9315266653}{gko::\+\+Absolute\+Computable}}.



References \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}{compute\+\_\+absolute()}}.



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