\doxysection{gko::\+matrix::\+Dense\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1matrix_1_1Dense}{}\label{classgko_1_1matrix_1_1Dense}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}


\doxylink{classgko_1_1matrix_1_1Dense}{Dense} is a matrix format which explicitly stores all values of the matrix.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+matrix/\+dense.\+hpp$>$}



Inheritance diagram for gko::\+matrix::\+Dense\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1Dense__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for gko::\+matrix::\+Dense\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1Dense__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_aa81a0b3798d10eb503eedd9c7ae658b5}\label{classgko_1_1matrix_1_1Dense_aa81a0b3798d10eb503eedd9c7ae658b5} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a48f92e035bf16c24ed664915f6648163}\label{classgko_1_1matrix_1_1Dense_a48f92e035bf16c24ed664915f6648163} 
using {\bfseries index\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a751a67bcdeda7a7324fd933023d23ec3}\label{classgko_1_1matrix_1_1Dense_a751a67bcdeda7a7324fd933023d23ec3} 
using {\bfseries transposed\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$Value\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a26549f516fda4f5da3ac2fe86ef61d1f}\label{classgko_1_1matrix_1_1Dense_a26549f516fda4f5da3ac2fe86ef61d1f} 
using {\bfseries mat\+\_\+data} = \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a5ca1d3c125e9d44aa51fc31e1715839e}\label{classgko_1_1matrix_1_1Dense_a5ca1d3c125e9d44aa51fc31e1715839e} 
using {\bfseries mat\+\_\+data32} = \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a2fba8d480780dfe52ffb258e63dafe25}\label{classgko_1_1matrix_1_1Dense_a2fba8d480780dfe52ffb258e63dafe25} 
using {\bfseries device\+\_\+mat\+\_\+data} = \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a85b3fff4796fc92644ca1c695c5ebec4}\label{classgko_1_1matrix_1_1Dense_a85b3fff4796fc92644ca1c695c5ebec4} 
using {\bfseries device\+\_\+mat\+\_\+data32} = \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a7982c70b98f1f7de90f15f72e5f728b5}\label{classgko_1_1matrix_1_1Dense_a7982c70b98f1f7de90f15f72e5f728b5} 
using {\bfseries absolute\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af79f2301e156a0c577aa27c05ad95a8b}\label{classgko_1_1matrix_1_1Dense_af79f2301e156a0c577aa27c05ad95a8b} 
using {\bfseries real\+\_\+type} = absolute\+\_\+type
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ab7a004b777d6c178051f19b044b9da56}\label{classgko_1_1matrix_1_1Dense_ab7a004b777d6c178051f19b044b9da56} 
using {\bfseries complex\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex}}$<$\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a6a1c0c98826f26415f5e837185d9a692}\label{classgko_1_1matrix_1_1Dense_a6a1c0c98826f26415f5e837185d9a692} 
using {\bfseries row\+\_\+major\+\_\+range} = \doxymbox{\hyperlink{classgko_1_1range}{gko::\+range}}$<$\doxymbox{\hyperlink{classgko_1_1accessor_1_1row__major}{gko::\+accessor::\+row\+\_\+major}}$<$Value\+Type, 2$>$$>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Dense$<$ default\+\_\+precision $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int64 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int64 $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries value\+\_\+type}
\item 
using {\bfseries index\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Dense$<$ default\+\_\+precision $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries absolute\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a915037c470e1c396c45cd8400053ca06}\label{classgko_1_1matrix_1_1Dense_a915037c470e1c396c45cd8400053ca06} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$ $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a5cba0345298b87bfc6a67be008b54487}\label{classgko_1_1matrix_1_1Dense_a5cba0345298b87bfc6a67be008b54487} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$ $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_adaaa152f7bf3566d858a2c81220329a3}\label{classgko_1_1matrix_1_1Dense_adaaa152f7bf3566d858a2c81220329a3} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{Coo}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_abff1b9260efc76c7bf1f0fe9831ddf6b}\label{classgko_1_1matrix_1_1Dense_abff1b9260efc76c7bf1f0fe9831ddf6b} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{Coo}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af231fda06f31db0bd8d7c7bbe2ad428e}\label{classgko_1_1matrix_1_1Dense_af231fda06f31db0bd8d7c7bbe2ad428e} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{Coo}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ac98a4016b066bcf524b7d391c01b69e6}\label{classgko_1_1matrix_1_1Dense_ac98a4016b066bcf524b7d391c01b69e6} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{Coo}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a78d637e4687f6b82380c0f690a0030b9}\label{classgko_1_1matrix_1_1Dense_a78d637e4687f6b82380c0f690a0030b9} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af5cd43fb7c68506437bbc168e160db3d}\label{classgko_1_1matrix_1_1Dense_af5cd43fb7c68506437bbc168e160db3d} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_adfcc9e20ce7a433d2c5a11da1b4e61ac}\label{classgko_1_1matrix_1_1Dense_adfcc9e20ce7a433d2c5a11da1b4e61ac} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ad2385dcdb5c166b77866855f022bbfab}\label{classgko_1_1matrix_1_1Dense_ad2385dcdb5c166b77866855f022bbfab} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a7cd52faa45bc713c4e2737b801d880c5}\label{classgko_1_1matrix_1_1Dense_a7cd52faa45bc713c4e2737b801d880c5} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell}{Ell}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a0472d464e3ccd92b63e5f3e6f09123b2}\label{classgko_1_1matrix_1_1Dense_a0472d464e3ccd92b63e5f3e6f09123b2} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell}{Ell}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a4653654a5a57b6f76700f32a96eccf0f}\label{classgko_1_1matrix_1_1Dense_a4653654a5a57b6f76700f32a96eccf0f} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell}{Ell}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ae05e0feb80489d3d6d20e48b6da15500}\label{classgko_1_1matrix_1_1Dense_ae05e0feb80489d3d6d20e48b6da15500} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Ell}{Ell}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a09890ce7b88d6e8c973d961a2f8b1e71}\label{classgko_1_1matrix_1_1Dense_a09890ce7b88d6e8c973d961a2f8b1e71} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a17b583d0d6653310ec3f71f5b11a76e7}\label{classgko_1_1matrix_1_1Dense_a17b583d0d6653310ec3f71f5b11a76e7} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a4b8ef6799e0ee8fbd0b1359e4bc90cd5}\label{classgko_1_1matrix_1_1Dense_a4b8ef6799e0ee8fbd0b1359e4bc90cd5} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a56c335fb096ed2c0a0e9d910a3c684e9}\label{classgko_1_1matrix_1_1Dense_a56c335fb096ed2c0a0e9d910a3c684e9} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Fbcsr}{Fbcsr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ade721b0fc2652a09870a18aebbfe29c3}\label{classgko_1_1matrix_1_1Dense_ade721b0fc2652a09870a18aebbfe29c3} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid}{Hybrid}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ac41b7bade9c7c8c4bc7d9aac7550f45d}\label{classgko_1_1matrix_1_1Dense_ac41b7bade9c7c8c4bc7d9aac7550f45d} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid}{Hybrid}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a6beb8bdb469276fc9c3afd0e3eb733b8}\label{classgko_1_1matrix_1_1Dense_a6beb8bdb469276fc9c3afd0e3eb733b8} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid}{Hybrid}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a45f6f17160b958ca738cca78fcb49d06}\label{classgko_1_1matrix_1_1Dense_a45f6f17160b958ca738cca78fcb49d06} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid}{Hybrid}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a2309884871bffc37072eeec06983727a}\label{classgko_1_1matrix_1_1Dense_a2309884871bffc37072eeec06983727a} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Sellp}{Sellp}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af4d0346014f1e228c00e9e5690431367}\label{classgko_1_1matrix_1_1Dense_af4d0346014f1e228c00e9e5690431367} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Sellp}{Sellp}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a0886558f1291931425087891ee0ad6b8}\label{classgko_1_1matrix_1_1Dense_a0886558f1291931425087891ee0ad6b8} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Sellp}{Sellp}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a24628536cce9b10482971f9969f13df2}\label{classgko_1_1matrix_1_1Dense_a24628536cce9b10482971f9969f13df2} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Sellp}{Sellp}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a29b141297f795acbcef608e42a965a47}\label{classgko_1_1matrix_1_1Dense_a29b141297f795acbcef608e42a965a47} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ab85ede2f03e1980ce41823106da1a788}\label{classgko_1_1matrix_1_1Dense_ab85ede2f03e1980ce41823106da1a788} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a01460315962c5b26342e5b013893f9a5}\label{classgko_1_1matrix_1_1Dense_a01460315962c5b26342e5b013893f9a5} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af66f095e6746bd993d6c437c4ea41db4}\label{classgko_1_1matrix_1_1Dense_af66f095e6746bd993d6c437c4ea41db4} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1SparsityCsr}{Sparsity\+Csr}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ad8015737f260f0338e8a5c79a44f34c6}\label{classgko_1_1matrix_1_1Dense_ad8015737f260f0338e8a5c79a44f34c6} 
void {\bfseries read} (const mat\+\_\+data \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a61d639ee160909a2a9c1b0489508f353}\label{classgko_1_1matrix_1_1Dense_a61d639ee160909a2a9c1b0489508f353} 
void {\bfseries read} (const mat\+\_\+data32 \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ab13bda9a279e62a412c5eec93a434172}\label{classgko_1_1matrix_1_1Dense_ab13bda9a279e62a412c5eec93a434172} 
void {\bfseries read} (const device\+\_\+mat\+\_\+data \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ac41e83ffb45254e3f2194b2cffc03a74}\label{classgko_1_1matrix_1_1Dense_ac41e83ffb45254e3f2194b2cffc03a74} 
void {\bfseries read} (const device\+\_\+mat\+\_\+data32 \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a1325a29c0c2237b89b23fb1ae3a8278c}\label{classgko_1_1matrix_1_1Dense_a1325a29c0c2237b89b23fb1ae3a8278c} 
void {\bfseries read} (device\+\_\+mat\+\_\+data \&\&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_aa1a7c76e094aad8360f2bdb45e526255}\label{classgko_1_1matrix_1_1Dense_aa1a7c76e094aad8360f2bdb45e526255} 
void {\bfseries read} (device\+\_\+mat\+\_\+data32 \&\&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a52c0237829d4407e2a6269fdef65533a}\label{classgko_1_1matrix_1_1Dense_a52c0237829d4407e2a6269fdef65533a} 
void {\bfseries write} (mat\+\_\+data \&data) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ad53f369dd7235e521d9352b393772b24}\label{classgko_1_1matrix_1_1Dense_ad53f369dd7235e521d9352b393772b24} 
void {\bfseries write} (mat\+\_\+data32 \&data) const override
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac31fee525813e3acbd6d5d8e20bad230}{transpose}} () const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac0ae2a7dcb94eb0b32e494c970d1fc7c}{conj\+\_\+transpose}} () const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the conjugate transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ab251ea79598302b993a96549300bb114}{transpose}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the transposed matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a551f8894b665a5d1b662de0d7b8a7321}{conj\+\_\+transpose}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the conjugate-\/transposed matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_af8eb9f6120517fbc19cee8e9ddfceb05}{fill}} (const Value\+Type value)
\begin{DoxyCompactList}\small\item\em Fill the dense matrix with a given value. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a44417168832f57ffe0e3a07ab1f85a2d}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ permutation, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode=\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}) const
\begin{DoxyCompactList}\small\item\em Creates a permuted copy $A\textnormal{\textquotesingle}$ of this matrix $A$ with the given permutation $P$. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a327d02d87a7c42bc0f1df1a8d56f5498}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ permutation, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode=\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}) const
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a76c84f30341d37da8431dd50b9818d97}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode) const
\begin{DoxyCompactList}\small\item\em Overload of permute(ptr\+\_\+param$<$const Permutation$<$int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a6ee67b630dd0d4b3912f9ad520e3b29a}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a3f0dd08963b8c1a72bf8cbbee9aca064}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ column\+\_\+permutation, bool invert=false) const
\begin{DoxyCompactList}\small\item\em Creates a non-\/symmetrically permuted copy $A\textnormal{\textquotesingle}$ of this matrix $A$ with the given row and column permutations $P$ and $Q$. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a1c8a463a964a8aaaea4000ef4f6e5421}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ column\+\_\+permutation, bool invert=false) const
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aa588c67e8dc76643894b9c037a30ac06}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ column\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, bool invert=false) const
\begin{DoxyCompactList}\small\item\em Overload of permute(ptr\+\_\+param$<$const Permutation$<$int32$>$$>$, ptr\+\_\+param$<$const \+Permutation$<$int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae5fa218b2d9def040ecb51136419f743}{permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ column\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, bool invert=false) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ab229ed386ec8ecac07bab1e088ba6f33}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ permutation, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode=\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}) const
\begin{DoxyCompactList}\small\item\em Creates a scaled and permuted copy of this matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_abcaac186aaa4c7b001a6d736f86f790b}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ permutation, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode=\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}) const
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac5c25fd1daa6ea55718af004b8d42634}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode) const
\begin{DoxyCompactList}\small\item\em Overload of scale\+\_\+permute(ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a9aa50db81db9f0cfe55e063f45c2d8e1}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}} mode) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a80e0ab242dee7cc0e656b3f514982537}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ column\+\_\+permutation, bool invert=false) const
\begin{DoxyCompactList}\small\item\em Creates a scaled and permuted copy of this matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a0d2b7ddcfd590addca2ade6a9c3787d8}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ column\+\_\+permutation, bool invert=false) const
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a76928c7682537cbe137701242d54112b}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ column\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, bool invert=false) const
\begin{DoxyCompactList}\small\item\em Overload of scale\+\_\+permute(ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, bool) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a85365942b5f2d721a23788f6c399ba32}{scale\+\_\+permute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ row\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ column\+\_\+permutation, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output, bool invert=false) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a6374f7f447af8320917c53f1552dac9f}{permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a33e68ba28b5ab55e3f824861b24be686}{permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a93163c011c03a9837baf827c707dc3d5}{permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the symmetrically permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a49171b3b04043ce4ccef5ee8b4509450}{permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a8ee465f8ab3648019f5796f06c746e7a}{inverse\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric inverse row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a38b857ba1b3e52230b60893f4e6a50fe}{inverse\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric inverse row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a6f7d2510cf794ede89fc61b1af5804f7}{inverse\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the inverse symmetrically permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a452fa43a28cf1cbdac9498dad1ea5b12}{inverse\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a6a68f7ec26cc007548550577c01c7d0e}{row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a1c6a43bfc440138798de73c53072eedd}{row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a20769029d7b6e90f13e44ab0dffb9787}{row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the row-\/permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a5de1c0c1497a9a7ffa81faadfb983911}{row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a72071a352bf973f8103bc8c235290677}{row\+\_\+gather}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices) const
\begin{DoxyCompactList}\small\item\em Create a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix consisting of the given rows from this matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a38a0c7dd430998261343564ff98549a6}{row\+\_\+gather}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices) const
\begin{DoxyCompactList}\small\item\em Create a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix consisting of the given rows from this matrix.    \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a3f4a129f97fd47b66f64d5f04feab8a7}{row\+\_\+gather}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ row\+\_\+collection) const
\begin{DoxyCompactList}\small\item\em Copies the given rows from this matrix into {\ttfamily row\+\_\+collection}. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aee06b1066cc20eb14aa3e5bbae5d0f41}{row\+\_\+gather}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ row\+\_\+collection) const
\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a78e3038558a849c80f5b29f6310e5221}{row\+\_\+gather}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ beta, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ row\+\_\+collection) const
\begin{DoxyCompactList}\small\item\em Copies the given rows from this matrix into {\ttfamily row\+\_\+collection} with scaling. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_afd04709638c41905a615561e8516d817}{row\+\_\+gather}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}gather\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ beta, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ row\+\_\+collection) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac2d3d9f96ed3dfb7a4dcdd62a3063460}{column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a29e73c04e60689de72028137cf64908e}{column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a3fbd132ad9010521d467607420523dc0}{column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the column-\/permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ad507c880564ac1121e781a9663bba05d}{column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a41882a58a4ad092770111bf981be0cf2}{inverse\+\_\+row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aad654481952f8d0662214e29d2fb7629}{inverse\+\_\+row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a9bb1ae1e28551543b4db37363d3c2619}{inverse\+\_\+row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the inverse row-\/permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ad9e5671dac20b823abbad5992a761f30}{inverse\+\_\+row\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a517fe33b174962c89229cece760022f8}{inverse\+\_\+column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aa1e8a40611bdd15b6a6ffd2b8e9bff12}{inverse\+\_\+column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices) const override
\begin{DoxyCompactList}\small\item\em Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a9c774cb78be2ddc2c1f250ddc8069b36}{inverse\+\_\+column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the inverse column-\/permuted matrix into the given output matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aed6089ee1640792c3d31ff923d075693}{inverse\+\_\+column\+\_\+permute}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}permutation\+\_\+indices, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ output) const
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_af5e567991ffd5a1928dc27cddb21d5f8}{extract\+\_\+diagonal}} () const override
\begin{DoxyCompactList}\small\item\em Extracts the diagonal entries of the matrix into a vector. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a755bf9481d4b2fbca411f2e0b5b156db}{extract\+\_\+diagonal}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the diagonal of this matrix into an existing diagonal matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{compute\+\_\+absolute}} () const override
\begin{DoxyCompactList}\small\item\em Gets the Absolute\+Lin\+Op. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a11f21b6fd086508ae2bd64955f59481c}{compute\+\_\+absolute}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ absolute\+\_\+type $>$ output) const
\begin{DoxyCompactList}\small\item\em Writes the absolute values of this matrix into an existing matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac86f11554ae7cd5814852d6e1a0b9d4d}{compute\+\_\+absolute\+\_\+inplace}} () override
\begin{DoxyCompactList}\small\item\em Compute absolute inplace on each element. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ complex\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_acc084b38437ef5256b7c277d3289e44f}{make\+\_\+complex}} () const
\begin{DoxyCompactList}\small\item\em Creates a complex copy of the original matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a759f98c28ca006bf0560517d5471be7b}{make\+\_\+complex}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ complex\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Writes a complex copy of the original matrix to a given complex matrix. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ab7105f77a267c6b65d9d960771840a1a}\label{classgko_1_1matrix_1_1Dense_ab7105f77a267c6b65d9d960771840a1a} 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ {\bfseries get\+\_\+real} () const
\begin{DoxyCompactList}\small\item\em Creates a new real matrix and extracts the real part of the original matrix into that. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a297df3fbaa89f711e7ba97f9ed866773}\label{classgko_1_1matrix_1_1Dense_a297df3fbaa89f711e7ba97f9ed866773} 
void {\bfseries get\+\_\+real} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ real\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Extracts the real part of the original matrix into a given real matrix. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af30277fb894bff2c44e511bd6bb3050a}\label{classgko_1_1matrix_1_1Dense_af30277fb894bff2c44e511bd6bb3050a} 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ {\bfseries get\+\_\+imag} () const
\begin{DoxyCompactList}\small\item\em Creates a new real matrix and extracts the imaginary part of the original matrix into that. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a1edab3184cd049e837f7c4cea36ab297}\label{classgko_1_1matrix_1_1Dense_a1edab3184cd049e837f7c4cea36ab297} 
void {\bfseries get\+\_\+imag} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ real\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Extracts the imaginary part of the original matrix into a given real matrix. \end{DoxyCompactList}\item 
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aea71dbb699d506b1f10dd67404b6bc01}{get\+\_\+values}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the array of values of the matrix. \end{DoxyCompactList}\item 
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a78f311b47437fb90e470b7506234292a}{get\+\_\+const\+\_\+values}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the array of values of the matrix.    \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a8c1b220b9b9292893d9be22d632a9a0e}{get\+\_\+stride}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the stride of the matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a7a6ce578c683841591718134e1ccd1b9}{get\+\_\+num\+\_\+stored\+\_\+elements}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the number of elements explicitly stored in the matrix. \end{DoxyCompactList}\item 
value\+\_\+type \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a11528fc674c7885fbcb0936ef873f859}{at}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} row, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} col) noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the matrix. \end{DoxyCompactList}\item 
value\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae0b30c42359a03805dee41a5cbf87b26}{at}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} row, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} col) const noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the matrix.    \end{DoxyCompactList}\item 
Value\+Type \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a7d56b30e265632beb3afa02e0b705269}{at}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} idx) noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the matrix. \end{DoxyCompactList}\item 
Value\+Type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a34ba8a7f392c65c481a93d9374cb5769}{at}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} idx) const noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the matrix.    \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a4d739b20e7573f0ed09201fc9c29b07b}{scale}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha)
\begin{DoxyCompactList}\small\item\em Scales the matrix with a scalar (aka:\+ BLAS scal). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae6db296c63b458dced5da070daf02903}{inv\+\_\+scale}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha)
\begin{DoxyCompactList}\small\item\em Scales the matrix with the inverse of a scalar. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a9cf1d8187c613126834ed1af83941e90}{add\+\_\+scaled}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b)
\begin{DoxyCompactList}\small\item\em Adds {\ttfamily b} scaled by {\ttfamily alpha} to the matrix (aka:\+ BLAS axpy). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a3089b32908dc8eb84999e5100183fb89}{sub\+\_\+scaled}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b)
\begin{DoxyCompactList}\small\item\em Subtracts {\ttfamily b} scaled by {\ttfamily alpha} from the matrix (aka:\+ BLAS axpy). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a2ec480660374a4f8b5650c4bb8f8aabe}{compute\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this matrix and {\ttfamily b}. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_af94722afc38b560e3709fbcd257e0967}{compute\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this matrix and {\ttfamily b}. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ab3129d9d0be1c9c94e568ad4d6d440a7}{compute\+\_\+conj\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of {\ttfamily conj(this matrix)} and {\ttfamily b}. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a881c0bd0f7a43a98bd73cfce9735036f}{compute\+\_\+conj\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of {\ttfamily conj(this matrix)} and {\ttfamily b}. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aed62418c4ecb58c4855b0bea1b7a680d}{compute\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a19b9e51fd9922bab9637e42ab7209b8c}{compute\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a11c59175fcc040d99afe3acb39cbcb3e}{compute\+\_\+norm1}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aa9d0b9e72e37234081f177c3acf86eda}{compute\+\_\+norm1}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a671a6184e9ad871e106739c4c85fd31d}{compute\+\_\+squared\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the square of the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a47fe52899c71664326c586c7d77775a7}{compute\+\_\+squared\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the square of the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a88e8b78f6eda353274cf18b7e72d3910}{compute\+\_\+mean}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise arithmetic mean of this matrix. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a7ae6af1ae08631c0c759b792698ad942}{compute\+\_\+mean}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise arithmetic mean of this matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a65e62d57b48aed34ef0157a502ca61df}{create\+\_\+submatrix}} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&rows, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&columns, const \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em Create a submatrix from the original matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a576ace745e0e68097bb81bbb510b1e95}{create\+\_\+submatrix}} (const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&rows, const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&columns)
\begin{DoxyCompactList}\small\item\em Create a submatrix from the original matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac992667027965b4e39dc84f01c3063d9}{create\+\_\+submatrix}} (const \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} \&rows, const \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} \&columns, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ size)
\begin{DoxyCompactList}\small\item\em Create a submatrix from the original matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_af50b1c2ccd8a72823c523aa00bbaabf3}{create\+\_\+real\+\_\+view}} ()
\begin{DoxyCompactList}\small\item\em Create a real view of the (potentially) complex original matrix. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ const real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_acdfd43420e0428c25ca9e1b86c4c3e45}{create\+\_\+real\+\_\+view}} () const
\begin{DoxyCompactList}\small\item\em Create a real view of the (potentially) complex original matrix.    \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a1dc882a8d7e93955a9587db1fcedb165}{operator=}} (const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \&)
\begin{DoxyCompactList}\small\item\em Copy-\/assigns a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae9cfb20e64c774eb013de0d3dbe2480f}{operator=}} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/assigns a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} (const Dense \&)
\begin{DoxyCompactList}\small\item\em Copy-\/constructs a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ad989b179ced5ceeb6020b228719cc6c3}{Dense}} (Dense \&\&)
\begin{DoxyCompactList}\small\item\em Move-\/constructs a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Dense$<$ default\+\_\+precision $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
const Dense$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}} $>$ \texorpdfstring{$\ast$}{*} {\bfseries apply} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ x) const
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Dense$<$ default\+\_\+precision $>$ $>$}}}
\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}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable_a7d41c0cb7b317402ea61bc145b82a9db}{extract\+\_\+diagonal\+\_\+linop}} () const override
\begin{DoxyCompactList}\small\item\em Extracts the diagonal entries of the matrix into a vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData_add5c12e23b3ac3c8fbd607fa5a9656bb}{read}} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data)=0
\begin{DoxyCompactList}\small\item\em Reads a matrix from a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData}{gko::\+\+Readable\+From\+Matrix\+Data$<$ default\+\_\+precision, int64 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1ReadableFromMatrixData_add5c12e23b3ac3c8fbd607fa5a9656bb}{read}} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data)=0
\begin{DoxyCompactList}\small\item\em Reads a matrix from a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int32 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData_a96036c3a4bf4c67fa93002808b8b14e2}{write}} (\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data) const=0
\begin{DoxyCompactList}\small\item\em Writes a matrix to a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData}{gko::\+\+Writable\+To\+Matrix\+Data$<$ default\+\_\+precision, int64 $>$}}}
\begin{DoxyCompactItemize}
\item 
virtual void \doxymbox{\hyperlink{classgko_1_1WritableToMatrixData_a96036c3a4bf4c67fa93002808b8b14e2}{write}} (\doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data) const=0
\begin{DoxyCompactList}\small\item\em Writes a matrix to a \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Dense$<$ default\+\_\+precision $>$ $>$ $>$}}}
\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}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1ScaledIdentityAddable}{gko::\+\+Scaled\+Identity\+Addable}}}
\begin{DoxyCompactItemize}
\item 
void \doxymbox{\hyperlink{classgko_1_1ScaledIdentityAddable_a43d679d3a9857780f9566bbc61c6b847}{add\+\_\+scaled\+\_\+identity}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ const a, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ const b)
\begin{DoxyCompactList}\small\item\em Scales this and adds another scalar times the identity to it. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a1c6f65fa98aa09fff8e7eb8820ee8e26}{create\+\_\+with\+\_\+config\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other)
\begin{DoxyCompactList}\small\item\em Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix with the same size and stride as another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a481ebd632246eed044d432a8117ec069}{create\+\_\+with\+\_\+type\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size=\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$\{\})
\begin{DoxyCompactList}\small\item\em Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix with the same type as another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix but on a different executor and with a different size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_af3aa909deaa3edaa59a364a0c798c383}{create\+\_\+with\+\_\+type\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a2d15c660431de7beec1cdae4702b44d3}{create\+\_\+with\+\_\+type\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&local\+\_\+size, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_aa24190fef5a235843c610343e66ce141}{create\+\_\+view\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other)
\begin{DoxyCompactList}\small\item\em Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, where the underlying array is a view of another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix\textquotesingle{} array. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_abd682be340c3f29f55b73a630ca8ef64}{create\+\_\+const\+\_\+view\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ other)
\begin{DoxyCompactList}\small\item\em Creates a immutable \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, where the underlying array is a view of another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix\textquotesingle{} array. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae198b3130d8966418047baa8dabe466c}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size=\{\}, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride=0)
\begin{DoxyCompactList}\small\item\em Creates an uninitialized \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of the specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$ values, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix from an already allocated (and initialized) array. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+Value\+Type$>$ }\\static std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a886b5f6b7d2c705abc67b44e7716e839}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, std::\+initializer\+\_\+list$<$ Input\+Value\+Type $>$ values, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, array$<$value\+\_\+type$>$, size\+\_\+type)} \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ae49b803cbdb12b584ad3b080c79f1c68}{create\+\_\+const}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&size, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&\&values, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix from a constant array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a4a3589cf55dd24284a1efc83c364abdd}\label{classgko_1_1matrix_1_1Dense_a4a3589cf55dd24284a1efc83c364abdd} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Dense, Lin\+Op $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ae83eb9050ed525f7b709f0bdf5d7f42d}\label{classgko_1_1matrix_1_1Dense_ae83eb9050ed525f7b709f0bdf5d7f42d} 
class {\bfseries Coo$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a9e60da00466bd4fe8882eeb1353a0bda}\label{classgko_1_1matrix_1_1Dense_a9e60da00466bd4fe8882eeb1353a0bda} 
class {\bfseries Coo$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a4df13336280c2189acd768b2c36a893d}\label{classgko_1_1matrix_1_1Dense_a4df13336280c2189acd768b2c36a893d} 
class {\bfseries Csr$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a56c2ebf8cdf7a7f1f17fc25dd47ea1e9}\label{classgko_1_1matrix_1_1Dense_a56c2ebf8cdf7a7f1f17fc25dd47ea1e9} 
class {\bfseries Csr$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_aa3cced41417aad9c348562f415f02a59}\label{classgko_1_1matrix_1_1Dense_aa3cced41417aad9c348562f415f02a59} 
class {\bfseries Diagonal$<$ Value\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_ad7ddb8eeb31b9072ddc018a8da4c35ea}\label{classgko_1_1matrix_1_1Dense_ad7ddb8eeb31b9072ddc018a8da4c35ea} 
class {\bfseries Ell$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af02a642014ce5fe127ea99e008261e5e}\label{classgko_1_1matrix_1_1Dense_af02a642014ce5fe127ea99e008261e5e} 
class {\bfseries Ell$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a9db9c5d149b8baa957568c2f21245cd9}\label{classgko_1_1matrix_1_1Dense_a9db9c5d149b8baa957568c2f21245cd9} 
class {\bfseries Fbcsr$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a070735e7fd4cb724011d6d4f7ac741f5}\label{classgko_1_1matrix_1_1Dense_a070735e7fd4cb724011d6d4f7ac741f5} 
class {\bfseries Fbcsr$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a0657cb0f724d51f6c0402314c9c65794}\label{classgko_1_1matrix_1_1Dense_a0657cb0f724d51f6c0402314c9c65794} 
class {\bfseries Hybrid$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_aa8a237ac1a805519c155815ea7b6319a}\label{classgko_1_1matrix_1_1Dense_aa8a237ac1a805519c155815ea7b6319a} 
class {\bfseries Hybrid$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a8973c263e45b8d6efc42c761a593ac13}\label{classgko_1_1matrix_1_1Dense_a8973c263e45b8d6efc42c761a593ac13} 
class {\bfseries Sellp$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a567a0b5cf006e176648442b07699ecf7}\label{classgko_1_1matrix_1_1Dense_a567a0b5cf006e176648442b07699ecf7} 
class {\bfseries Sellp$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a38a8e5b515046833175743df7eb2080c}\label{classgko_1_1matrix_1_1Dense_a38a8e5b515046833175743df7eb2080c} 
class {\bfseries Sparsity\+Csr$<$ Value\+Type, int32 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_af1bdb11fa29d77ea4be1ef85d31ab6ec}\label{classgko_1_1matrix_1_1Dense_af1bdb11fa29d77ea4be1ef85d31ab6ec} 
class {\bfseries Sparsity\+Csr$<$ Value\+Type, int64 $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a6671ddb996a2a810738a6ddb29fbe83b}\label{classgko_1_1matrix_1_1Dense_a6671ddb996a2a810738a6ddb29fbe83b} 
class {\bfseries Dense$<$ to\+\_\+complex$<$ Value\+Type $>$ $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_abc6b7c8f9b0f1900585df91795fb74fe}\label{classgko_1_1matrix_1_1Dense_abc6b7c8f9b0f1900585df91795fb74fe} 
class {\bfseries experimental::\+distributed::\+\+Vector$<$ Value\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Dense_a95c21b65ca8cb3127f8503fc890067d2}\label{classgko_1_1matrix_1_1Dense_a95c21b65ca8cb3127f8503fc890067d2} 
class {\bfseries Dense$<$ previous\+\_\+precision$<$ Value\+Type $>$ $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type = default\+\_\+precision$>$\newline
class gko::\+matrix::\+\+Dense$<$ Value\+Type $>$}
\doxylink{classgko_1_1matrix_1_1Dense}{Dense} is a matrix format which explicitly stores all values of the matrix. 

The values are stored in row-\/major format (values belonging to the same row appear consecutive in the memory). Optionally, rows can be padded for better memory access.


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & precision of matrix elements\\
\hline
\end{DoxyTemplParams}
\begin{DoxyNote}{Note}
While this format is not very useful for storing sparse matrices, it is often suitable to store vectors, and sets of vectors. 
\end{DoxyNote}


\label{doc-constructors}
\Hypertarget{classgko_1_1matrix_1_1Dense_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!Dense@{Dense}}
\index{Dense@{Dense}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{Dense()}{Dense()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+\+Dense (\begin{DoxyParamCaption}\item[{const Dense$<$ Value\+Type $>$ \&}]{}{}\end{DoxyParamCaption})}



Copy-\/constructs a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 

Inherits executor and dimensions, but copies data without padding. \Hypertarget{classgko_1_1matrix_1_1Dense_ad989b179ced5ceeb6020b228719cc6c3}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!Dense@{Dense}}
\index{Dense@{Dense}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{Dense()}{Dense()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ad989b179ced5ceeb6020b228719cc6c3} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+\+Dense (\begin{DoxyParamCaption}\item[{Dense$<$ Value\+Type $>$ \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/constructs a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 

Inherits executor, dimensions and data with padding. The moved-\/from object is empty (0x0 with empty Array). 

\label{doc-func-members}
\Hypertarget{classgko_1_1matrix_1_1Dense_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1matrix_1_1Dense_a9cf1d8187c613126834ed1af83941e90}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!add\_scaled@{add\_scaled}}
\index{add\_scaled@{add\_scaled}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{add\_scaled()}{add\_scaled()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a9cf1d8187c613126834ed1af83941e90} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+add\+\_\+scaled (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{}\end{DoxyParamCaption})}



Adds {\ttfamily b} scaled by {\ttfamily alpha} to the matrix (aka:\+ BLAS axpy). 


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, the entire matrix is scaled by alpha. If it is a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector of values, then i-\/th column of the matrix is scaled with the i-\/th element of alpha (the number of columns of alpha has to match the number of columns of the matrix). \\
\hline
{\em b} & a matrix of the same dimension as this \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a34ba8a7f392c65c481a93d9374cb5769}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!at@{at}}
\index{at@{at}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at()}{at()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a34ba8a7f392c65c481a93d9374cb5769} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
Value\+Type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+at (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{idx}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a single element of the matrix.    

Useful for iterating across all elements of the matrix. However, it is less efficient than the two-\/parameter variant of this method.


\begin{DoxyParams}{Parameters}
{\em idx} & a linear index of the requested element (ignoring the stride)\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
the method has to be called on the same \doxylink{classgko_1_1Executor}{Executor} the matrix is stored at (e.\+g. trying to call this method on a GPU matrix from the OMP results in a runtime error)    
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_a7d56b30e265632beb3afa02e0b705269}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!at@{at}}
\index{at@{at}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at()}{at()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a7d56b30e265632beb3afa02e0b705269} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
Value\+Type \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+at (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{idx}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a single element of the matrix. 

Useful for iterating across all elements of the matrix. However, it is less efficient than the two-\/parameter variant of this method.


\begin{DoxyParams}{Parameters}
{\em idx} & a linear index of the requested element (ignoring the stride)\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
the method has to be called on the same \doxylink{classgko_1_1Executor}{Executor} the matrix is stored at (e.\+g. trying to call this method on a GPU matrix from the OMP results in a runtime error) 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_ae0b30c42359a03805dee41a5cbf87b26}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!at@{at}}
\index{at@{at}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at()}{at()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae0b30c42359a03805dee41a5cbf87b26} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
value\+\_\+type \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+at (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{row}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{col}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a single element of the matrix.    


\begin{DoxyParams}{Parameters}
{\em row} & the row of the requested element \\
\hline
{\em col} & the column of the requested element\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
the method has to be called on the same \doxylink{classgko_1_1Executor}{Executor} the matrix is stored at (e.\+g. trying to call this method on a GPU matrix from the OMP results in a runtime error)    
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_a11528fc674c7885fbcb0936ef873f859}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!at@{at}}
\index{at@{at}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at()}{at()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a11528fc674c7885fbcb0936ef873f859} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
value\+\_\+type \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+at (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{row}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{col}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a single element of the matrix. 


\begin{DoxyParams}{Parameters}
{\em row} & the row of the requested element \\
\hline
{\em col} & the column of the requested element\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
the method has to be called on the same \doxylink{classgko_1_1Executor}{Executor} the matrix is stored at (e.\+g. trying to call this method on a GPU matrix from the OMP results in a runtime error) 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_ac2d3d9f96ed3dfb7a4dcdd62a3063460}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!column\_permute@{column\_permute}}
\index{column\_permute@{column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{column\_permute()}{column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac2d3d9f96ed3dfb7a4dcdd62a3063460} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the column {\ttfamily i} contains the input column {\ttfamily perm\+[i]\+}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $A P^T$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new column permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_acf1570421c3c5c9e057ee325a80efd65}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a3fbd132ad9010521d467607420523dc0}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!column\_permute@{column\_permute}}
\index{column\_permute@{column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{column\_permute()}{column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a3fbd132ad9010521d467607420523dc0} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the column-\/permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[1]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+column\+\_\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_a29e73c04e60689de72028137cf64908e}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!column\_permute@{column\_permute}}
\index{column\_permute@{column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{column\_permute()}{column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a29e73c04e60689de72028137cf64908e} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the column {\ttfamily i} contains the input column {\ttfamily perm\+[i]\+}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $A P^T$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new column permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_acf1570421c3c5c9e057ee325a80efd65}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_ad507c880564ac1121e781a9663bba05d}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!column\_permute@{column\_permute}}
\index{column\_permute@{column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{column\_permute()}{column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ad507c880564ac1121e781a9663bba05d} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+absolute (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Gets the Absolute\+Lin\+Op. 

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


Implements \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4c042054915430f60124de37545eab65}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Dense$<$ default\+\_\+precision $>$ $>$ $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a11f21b6fd086508ae2bd64955f59481c}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a11f21b6fd086508ae2bd64955f59481c} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+absolute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ absolute\+\_\+type $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the absolute values of this matrix into an existing matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & The output matrix. Its size must match the size of this matrix. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxylink{classgko_1_1matrix_1_1Dense_a75e7f1bec588972df1ad5aaafa15c5d7}{Dense::\+compute\+\_\+absolute()} 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_ac86f11554ae7cd5814852d6e1a0b9d4d}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_absolute\_inplace@{compute\_absolute\_inplace}}
\index{compute\_absolute\_inplace@{compute\_absolute\_inplace}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute\_inplace()}{compute\_absolute\_inplace()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac86f11554ae7cd5814852d6e1a0b9d4d} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+absolute\+\_\+inplace (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Compute absolute inplace on each element. 



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

\Hypertarget{classgko_1_1matrix_1_1Dense_ab3129d9d0be1c9c94e568ad4d6d440a7}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_conj\_dot@{compute\_conj\_dot}}
\index{compute\_conj\_dot@{compute\_conj\_dot}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_conj\_dot()}{compute\_conj\_dot()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ab3129d9d0be1c9c94e568ad4d6d440a7} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+conj\+\_\+dot (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise dot product of {\ttfamily conj(this matrix)} and {\ttfamily b}. 


\begin{DoxyParams}{Parameters}
{\em b} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of same dimension as this \\
\hline
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the dot product (the number of column in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a881c0bd0f7a43a98bd73cfce9735036f}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_conj\_dot@{compute\_conj\_dot}}
\index{compute\_conj\_dot@{compute\_conj\_dot}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_conj\_dot()}{compute\_conj\_dot()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a881c0bd0f7a43a98bd73cfce9735036f} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+conj\+\_\+dot (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise dot product of {\ttfamily conj(this matrix)} and {\ttfamily b}. 


\begin{DoxyParams}{Parameters}
{\em b} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of same dimension as this \\
\hline
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the dot product (the number of column in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a2ec480660374a4f8b5650c4bb8f8aabe}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_dot@{compute\_dot}}
\index{compute\_dot@{compute\_dot}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_dot()}{compute\_dot()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a2ec480660374a4f8b5650c4bb8f8aabe} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+dot (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise dot product of this matrix and {\ttfamily b}. 


\begin{DoxyParams}{Parameters}
{\em b} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of same dimension as this \\
\hline
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the dot product (the number of column in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_af94722afc38b560e3709fbcd257e0967}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_dot@{compute\_dot}}
\index{compute\_dot@{compute\_dot}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_dot()}{compute\_dot()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_af94722afc38b560e3709fbcd257e0967} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+dot (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise dot product of this matrix and {\ttfamily b}. 


\begin{DoxyParams}{Parameters}
{\em b} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of same dimension as this \\
\hline
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the dot product (the number of column in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a88e8b78f6eda353274cf18b7e72d3910}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_mean@{compute\_mean}}
\index{compute\_mean@{compute\_mean}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_mean()}{compute\_mean()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a88e8b78f6eda353274cf18b7e72d3910} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+mean (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise arithmetic mean of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the mean (the number of columns in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a7ae6af1ae08631c0c759b792698ad942}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_mean@{compute\_mean}}
\index{compute\_mean@{compute\_mean}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_mean()}{compute\_mean()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a7ae6af1ae08631c0c759b792698ad942} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+mean (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise arithmetic mean of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the mean (the number of columns in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a11c59175fcc040d99afe3acb39cbcb3e}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_norm1@{compute\_norm1}}
\index{compute\_norm1@{compute\_norm1}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_norm1()}{compute\_norm1()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a11c59175fcc040d99afe3acb39cbcb3e} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+norm1 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_aa9d0b9e72e37234081f177c3acf86eda}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_norm1@{compute\_norm1}}
\index{compute\_norm1@{compute\_norm1}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_norm1()}{compute\_norm1()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aa9d0b9e72e37234081f177c3acf86eda} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+norm1 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_aed62418c4ecb58c4855b0bea1b7a680d}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_norm2@{compute\_norm2}}
\index{compute\_norm2@{compute\_norm2}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_norm2()}{compute\_norm2()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aed62418c4ecb58c4855b0bea1b7a680d} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+norm2 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a19b9e51fd9922bab9637e42ab7209b8c}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_norm2@{compute\_norm2}}
\index{compute\_norm2@{compute\_norm2}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_norm2()}{compute\_norm2()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a19b9e51fd9922bab9637e42ab7209b8c} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+norm2 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a671a6184e9ad871e106739c4c85fd31d}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_squared\_norm2@{compute\_squared\_norm2}}
\index{compute\_squared\_norm2@{compute\_squared\_norm2}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_squared\_norm2()}{compute\_squared\_norm2()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a671a6184e9ad871e106739c4c85fd31d} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+squared\+\_\+norm2 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{}\end{DoxyParamCaption}) const}



Computes the square of the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a47fe52899c71664326c586c7d77775a7}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!compute\_squared\_norm2@{compute\_squared\_norm2}}
\index{compute\_squared\_norm2@{compute\_squared\_norm2}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_squared\_norm2()}{compute\_squared\_norm2()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a47fe52899c71664326c586c7d77775a7} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+compute\+\_\+squared\+\_\+norm2 (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{result}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&}]{tmp}{}\end{DoxyParamCaption}) const}



Computes the square of the column-\/wise Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this matrix. 


\begin{DoxyParams}{Parameters}
{\em result} & a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_ac0ae2a7dcb94eb0b32e494c970d1fc7c}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!conj\_transpose@{conj\_transpose}}
\index{conj\_transpose@{conj\_transpose}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{conj\_transpose()}{conj\_transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac0ae2a7dcb94eb0b32e494c970d1fc7c} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+conj\+\_\+transpose (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the conjugate transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. 

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


Implements \doxymbox{\hyperlink{classgko_1_1Transposable_a7c230aacdb222f09ba49baf0bd9e82eb}{gko::\+\+Transposable}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a551f8894b665a5d1b662de0d7b8a7321}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!conj\_transpose@{conj\_transpose}}
\index{conj\_transpose@{conj\_transpose}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{conj\_transpose()}{conj\_transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a551f8894b665a5d1b662de0d7b8a7321} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+conj\+\_\+transpose (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the conjugate-\/transposed matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & The output matrix. It must have the dimensions {\ttfamily \doxylink{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}{gko::\+transpose}(this-\/\texorpdfstring{$>$}{>}get\+\_\+size())} \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$}]{values}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix from an already allocated (and initialized) array. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em size} & size of the matrix \\
\hline
{\em values} & array of matrix values \\
\hline
{\em stride} & stride of the rows (i.\+e. offset between the first elements of two consecutive rows, expressed as the number of matrix elements)\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
If {\ttfamily values} is not an rvalue, not an array of Value\+Type, or is on the wrong executor, an internal copy will be created, and the original array data will not be used in the matrix.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_a886b5f6b7d2c705abc67b44e7716e839}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a886b5f6b7d2c705abc67b44e7716e839} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
template$<$typename Input\+Value\+Type$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{std::\+initializer\+\_\+list$<$ Input\+Value\+Type $>$}]{values}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



\doxylink{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, array$<$value\+\_\+type$>$, size\+\_\+type)} 

\doxylink{classgko_1_1matrix_1_1Dense_a8b9a31eada3d29a032c5457025d3afa6}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, array$<$value\+\_\+type$>$, size\+\_\+type)} \Hypertarget{classgko_1_1matrix_1_1Dense_ae198b3130d8966418047baa8dabe466c}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae198b3130d8966418047baa8dabe466c} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{ = {\ttfamily \{\}}, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{ = {\ttfamily 0}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an uninitialized \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix of the specified size. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em size} & size of the matrix \\
\hline
{\em stride} & stride of the rows (i.\+e. offset between the first elements of two consecutive rows, expressed as the number of matrix elements). If it is set to 0, size\+[1]\+ will be used instead.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a886b5f6b7d2c705abc67b44e7716e839}{create()}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_ae49b803cbdb12b584ad3b080c79f1c68}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae49b803cbdb12b584ad3b080c79f1c68} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+const (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&\&}]{values}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix from a constant array. 


\begin{DoxyParams}{Parameters}
{\em exec} & the executor to create the matrix on \\
\hline
{\em size} & the dimensions of the matrix \\
\hline
{\em values} & the value array of the matrix \\
\hline
{\em stride} & the row-\/stride of the matrix \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the constant matrix wrapping the input array (if it resides on the same executor as the matrix) or a copy of the array on the correct executor. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_abd682be340c3f29f55b73a630ca8ef64}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_const\_view\_of@{create\_const\_view\_of}}
\index{create\_const\_view\_of@{create\_const\_view\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const\_view\_of()}{create\_const\_view\_of()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_abd682be340c3f29f55b73a630ca8ef64} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+const\+\_\+view\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates a immutable \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, where the underlying array is a view of another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix\textquotesingle{} array. 


\begin{DoxyParams}{Parameters}
{\em other} & The other matrix on which to create the view \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A immutable \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix that is a view of other 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_a218d2e44e2d95fbe638ad98789fccb07}{gko::\+make\+\_\+const\+\_\+dense\+\_\+view()}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_af50b1c2ccd8a72823c523aa00bbaabf3}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_real\_view@{create\_real\_view}}
\index{create\_real\_view@{create\_real\_view}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_real\_view()}{create\_real\_view()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_af50b1c2ccd8a72823c523aa00bbaabf3} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+real\+\_\+view (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



Create a real view of the (potentially) complex original matrix. 

If the original matrix is real, nothing changes. If the original matrix is complex, the result is created by viewing the complex matrix with as real with a reinterpret\+\_\+cast with twice the number of columns and double the stride. \Hypertarget{classgko_1_1matrix_1_1Dense_acdfd43420e0428c25ca9e1b86c4c3e45}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_real\_view@{create\_real\_view}}
\index{create\_real\_view@{create\_real\_view}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_real\_view()}{create\_real\_view()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_acdfd43420e0428c25ca9e1b86c4c3e45} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ const real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+real\+\_\+view (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Create a real view of the (potentially) complex original matrix.    

If the original matrix is real, nothing changes. If the original matrix is complex, the result is created by viewing the complex matrix with as real with a reinterpret\+\_\+cast with twice the number of columns and double the stride.    \Hypertarget{classgko_1_1matrix_1_1Dense_ac992667027965b4e39dc84f01c3063d9}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_submatrix@{create\_submatrix}}
\index{create\_submatrix@{create\_submatrix}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_submatrix()}{create\_submatrix()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac992667027965b4e39dc84f01c3063d9} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+submatrix (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} \&}]{rows}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} \&}]{columns}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Create a submatrix from the original matrix. 


\begin{DoxyParams}{Parameters}
{\em rows} & row span \\
\hline
{\em columns} & column span \\
\hline
{\em size} & size of the submatrix (only used for consistency with distributed::\+\+Vector) \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a576ace745e0e68097bb81bbb510b1e95}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_submatrix@{create\_submatrix}}
\index{create\_submatrix@{create\_submatrix}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_submatrix()}{create\_submatrix()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a576ace745e0e68097bb81bbb510b1e95} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+submatrix (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&}]{rows}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&}]{columns}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Create a submatrix from the original matrix. 


\begin{DoxyParams}{Parameters}
{\em rows} & row span \\
\hline
{\em columns} & column span \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a65e62d57b48aed34ef0157a502ca61df}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_submatrix@{create\_submatrix}}
\index{create\_submatrix@{create\_submatrix}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_submatrix()}{create\_submatrix()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a65e62d57b48aed34ef0157a502ca61df} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+submatrix (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&}]{rows}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1span}{span}} \&}]{columns}{, }\item[{const \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Create a submatrix from the original matrix. 

Warning:\+ defining stride for this create\+\_\+submatrix method might cause wrong memory access. Better use the create\+\_\+submatrix(rows, columns) method instead.


\begin{DoxyParams}{Parameters}
{\em rows} & row span \\
\hline
{\em columns} & column span \\
\hline
{\em stride} & stride of the new submatrix. \\
\hline
\end{DoxyParams}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac992667027965b4e39dc84f01c3063d9}{create\+\_\+submatrix()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a576ace745e0e68097bb81bbb510b1e95}{create\+\_\+submatrix()}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_aa24190fef5a235843c610343e66ce141}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_view\_of@{create\_view\_of}}
\index{create\_view\_of@{create\_view\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_view\_of()}{create\_view\_of()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aa24190fef5a235843c610343e66ce141} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+view\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, where the underlying array is a view of another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix\textquotesingle{} array. 


\begin{DoxyParams}{Parameters}
{\em other} & The other matrix on which to create the view\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix that is a view of other 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02}{gko::\+make\+\_\+dense\+\_\+view()}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a1c6f65fa98aa09fff8e7eb8820ee8e26}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_with\_config\_of@{create\_with\_config\_of}}
\index{create\_with\_config\_of@{create\_with\_config\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_config\_of()}{create\_with\_config\_of()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a1c6f65fa98aa09fff8e7eb8820ee8e26} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+config\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix with the same size and stride as another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 


\begin{DoxyParams}{Parameters}
{\em other} & The other matrix whose configuration needs to copied. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a2d15c660431de7beec1cdae4702b44d3}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_with\_type\_of@{create\_with\_type\_of}}
\index{create\_with\_type\_of@{create\_with\_type\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_type\_of()}{create\_with\_type\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a2d15c660431de7beec1cdae4702b44d3} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+type\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{, }\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{local\+\_\+size}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}






\begin{DoxyParams}{Parameters}
{\em local\+\_\+size} & Unused \\
\hline
{\em stride} & The stride of the new matrix.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is an overload to stay consistent with \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector} 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_af3aa909deaa3edaa59a364a0c798c383}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_with\_type\_of@{create\_with\_type\_of}}
\index{create\_with\_type\_of@{create\_with\_type\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_type\_of()}{create\_with\_type\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_af3aa909deaa3edaa59a364a0c798c383} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+type\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{, }\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}






\begin{DoxyParams}{Parameters}
{\em stride} & The stride of the new matrix.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is an overload which allows full parameter specification. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_a481ebd632246eed044d432a8117ec069}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!create\_with\_type\_of@{create\_with\_type\_of}}
\index{create\_with\_type\_of@{create\_with\_type\_of}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_type\_of()}{create\_with\_type\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a481ebd632246eed044d432a8117ec069} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+type\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{other}{, }\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{size}{ = {\ttfamily \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$2$>$\{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix with the same type as another \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix but on a different executor and with a different size. 


\begin{DoxyParams}{Parameters}
{\em other} & The other matrix whose type we target. \\
\hline
{\em exec} & The executor of the new matrix. \\
\hline
{\em size} & The size of the new matrix. \\
\hline
{\em stride} & The stride of the new matrix.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix with the type of other. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_af5e567991ffd5a1928dc27cddb21d5f8}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!extract\_diagonal@{extract\_diagonal}}
\index{extract\_diagonal@{extract\_diagonal}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{extract\_diagonal()}{extract\_diagonal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_af5e567991ffd5a1928dc27cddb21d5f8} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+extract\+\_\+diagonal (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Extracts the diagonal entries of the matrix into a vector. 


\begin{DoxyParams}{Parameters}
{\em diag} & the vector into which the diagonal will be written \\
\hline
\end{DoxyParams}


Implements \doxymbox{\hyperlink{classgko_1_1DiagonalExtractable_aad6b7e3977359d5a3beab6b27bbb64c4}{gko::\+\+Diagonal\+Extractable$<$ default\+\_\+precision $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a755bf9481d4b2fbca411f2e0b5b156db}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!extract\_diagonal@{extract\_diagonal}}
\index{extract\_diagonal@{extract\_diagonal}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{extract\_diagonal()}{extract\_diagonal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a755bf9481d4b2fbca411f2e0b5b156db} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+extract\+\_\+diagonal (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the diagonal of this matrix into an existing diagonal matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & The output matrix. Its size must match the size of this matrix\textquotesingle{}s diagonal. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxylink{classgko_1_1matrix_1_1Dense_af5e567991ffd5a1928dc27cddb21d5f8}{Dense::\+extract\+\_\+diagonal()} 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_af8eb9f6120517fbc19cee8e9ddfceb05}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!fill@{fill}}
\index{fill@{fill}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{fill()}{fill()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_af8eb9f6120517fbc19cee8e9ddfceb05} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+fill (\begin{DoxyParamCaption}\item[{const Value\+Type}]{value}{}\end{DoxyParamCaption})}



Fill the dense matrix with a given value. 


\begin{DoxyParams}{Parameters}
{\em value} & the value to be filled \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a78f311b47437fb90e470b7506234292a}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!get\_const\_values@{get\_const\_values}}
\index{get\_const\_values@{get\_const\_values}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_values()}{get\_const\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a78f311b47437fb90e470b7506234292a} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+get\+\_\+const\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the array of values of the matrix.    

\begin{DoxyReturn}{Returns}
the pointer to the array of values   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is the constant version of the function, which can be significantly more memory efficient than the non-\/constant version, so always prefer this version. 
\end{DoxyNote}
\Hypertarget{classgko_1_1matrix_1_1Dense_a7a6ce578c683841591718134e1ccd1b9}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!get\_num\_stored\_elements@{get\_num\_stored\_elements}}
\index{get\_num\_stored\_elements@{get\_num\_stored\_elements}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_stored\_elements()}{get\_num\_stored\_elements()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a7a6ce578c683841591718134e1ccd1b9} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+get\+\_\+num\+\_\+stored\+\_\+elements (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the number of elements explicitly stored in the matrix. 

\begin{DoxyReturn}{Returns}
the number of elements explicitly stored in the matrix 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_a8c1b220b9b9292893d9be22d632a9a0e}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!get\_stride@{get\_stride}}
\index{get\_stride@{get\_stride}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_stride()}{get\_stride()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a8c1b220b9b9292893d9be22d632a9a0e} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+get\+\_\+stride (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the stride of the matrix. 

\begin{DoxyReturn}{Returns}
the stride of the matrix. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_ac992667027965b4e39dc84f01c3063d9}{create\+\_\+submatrix()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a576ace745e0e68097bb81bbb510b1e95}{create\+\_\+submatrix()}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_aea71dbb699d506b1f10dd67404b6bc01}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!get\_values@{get\_values}}
\index{get\_values@{get\_values}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_values()}{get\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aea71dbb699d506b1f10dd67404b6bc01} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+get\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the array of values of the matrix. 

\begin{DoxyReturn}{Returns}
the pointer to the array of values 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_ae6db296c63b458dced5da070daf02903}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inv\_scale@{inv\_scale}}
\index{inv\_scale@{inv\_scale}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inv\_scale()}{inv\_scale()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae6db296c63b458dced5da070daf02903} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inv\+\_\+scale (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{}\end{DoxyParamCaption})}



Scales the matrix with the inverse of a scalar. 


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, the entire matrix is scaled by 1 /\+ alpha. If it is a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector of values, then i-\/th column of the matrix is scaled with the inverse of the i-\/th element of alpha (the number of columns of alpha has to match the number of columns of the matrix). \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a517fe33b174962c89229cece760022f8}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_column\_permute@{inverse\_column\_permute}}
\index{inverse\_column\_permute@{inverse\_column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_column\_permute()}{inverse\_column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a517fe33b174962c89229cece760022f8} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the column {\ttfamily perm\+[i]\+} contains the input column {\ttfamily i}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $A P^{-T}$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new inverse permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a7eb82db489bbf87091373c58d3325844}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a9c774cb78be2ddc2c1f250ddc8069b36}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_column\_permute@{inverse\_column\_permute}}
\index{inverse\_column\_permute@{inverse\_column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_column\_permute()}{inverse\_column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a9c774cb78be2ddc2c1f250ddc8069b36} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the inverse column-\/permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[1]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+inverse\+\_\+column\+\_\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_aa1e8a40611bdd15b6a6ffd2b8e9bff12}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_column\_permute@{inverse\_column\_permute}}
\index{inverse\_column\_permute@{inverse\_column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_column\_permute()}{inverse\_column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aa1e8a40611bdd15b6a6ffd2b8e9bff12} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the column {\ttfamily perm\+[i]\+} contains the input column {\ttfamily i}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $A P^{-T}$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new inverse permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a7eb82db489bbf87091373c58d3325844}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_aed6089ee1640792c3d31ff923d075693}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_column\_permute@{inverse\_column\_permute}}
\index{inverse\_column\_permute@{inverse\_column\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_column\_permute()}{inverse\_column\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aed6089ee1640792c3d31ff923d075693} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+column\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a8ee465f8ab3648019f5796f06c746e7a}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_permute@{inverse\_permute}}
\index{inverse\_permute@{inverse\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_permute()}{inverse\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a8ee465f8ab3648019f5796f06c746e7a} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric inverse row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the entry at location {\ttfamily (perm\+[i]\+,perm\+[j]\+)} contains the input value {\ttfamily (i,j)}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P^{-1} A P^{-T}$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Reimplemented from \doxymbox{\hyperlink{classgko_1_1Permutable_aab402585e8e7850744d1b3b0baec60a3}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a6f7d2510cf794ede89fc61b1af5804f7}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_permute@{inverse\_permute}}
\index{inverse\_permute@{inverse\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_permute()}{inverse\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a6f7d2510cf794ede89fc61b1af5804f7} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the inverse symmetrically permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[0]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+inverse\+\_\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_a38b857ba1b3e52230b60893f4e6a50fe}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_permute@{inverse\_permute}}
\index{inverse\_permute@{inverse\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_permute()}{inverse\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a38b857ba1b3e52230b60893f4e6a50fe} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric inverse row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the entry at location {\ttfamily (perm\+[i]\+,perm\+[j]\+)} contains the input value {\ttfamily (i,j)}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P^{-1} A P^{-T}$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Reimplemented from \doxymbox{\hyperlink{classgko_1_1Permutable_aab402585e8e7850744d1b3b0baec60a3}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a452fa43a28cf1cbdac9498dad1ea5b12}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_permute@{inverse\_permute}}
\index{inverse\_permute@{inverse\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_permute()}{inverse\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a452fa43a28cf1cbdac9498dad1ea5b12} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a41882a58a4ad092770111bf981be0cf2}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_row\_permute@{inverse\_row\_permute}}
\index{inverse\_row\_permute@{inverse\_row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_row\_permute()}{inverse\_row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a41882a58a4ad092770111bf981be0cf2} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the row {\ttfamily perm\+[i]\+} contains the input row {\ttfamily i}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P^{-1} A$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new inverse permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a9d901d0384ef13d240430a2baaba22d0}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a9bb1ae1e28551543b4db37363d3c2619}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_row\_permute@{inverse\_row\_permute}}
\index{inverse\_row\_permute@{inverse\_row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_row\_permute()}{inverse\_row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a9bb1ae1e28551543b4db37363d3c2619} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the inverse row-\/permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[0]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+inverse\+\_\+row\+\_\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_aad654481952f8d0662214e29d2fb7629}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_row\_permute@{inverse\_row\_permute}}
\index{inverse\_row\_permute@{inverse\_row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_row\_permute()}{inverse\_row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aad654481952f8d0662214e29d2fb7629} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the inverse permuted object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the row {\ttfamily perm\+[i]\+} contains the input row {\ttfamily i}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P^{-1} A$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order {\ttfamily perm}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new inverse permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a9d901d0384ef13d240430a2baaba22d0}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_ad9e5671dac20b823abbad5992a761f30}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!inverse\_row\_permute@{inverse\_row\_permute}}
\index{inverse\_row\_permute@{inverse\_row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inverse\_row\_permute()}{inverse\_row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ad9e5671dac20b823abbad5992a761f30} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+inverse\+\_\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_acc084b38437ef5256b7c277d3289e44f}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!make\_complex@{make\_complex}}
\index{make\_complex@{make\_complex}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{make\_complex()}{make\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_acc084b38437ef5256b7c277d3289e44f} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ complex\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+make\+\_\+complex (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Creates a complex copy of the original matrix. 

If the original matrix was real, the imaginary part of the result will be zero. \Hypertarget{classgko_1_1matrix_1_1Dense_a759f98c28ca006bf0560517d5471be7b}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!make\_complex@{make\_complex}}
\index{make\_complex@{make\_complex}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{make\_complex()}{make\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a759f98c28ca006bf0560517d5471be7b} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+make\+\_\+complex (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ complex\+\_\+type $>$}]{result}{}\end{DoxyParamCaption}) const}



Writes a complex copy of the original matrix to a given complex matrix. 

If the original matrix was real, the imaginary part of the result will be zero. \Hypertarget{classgko_1_1matrix_1_1Dense_a1dc882a8d7e93955a9587db1fcedb165}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a1dc882a8d7e93955a9587db1fcedb165} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ \&}]{}{}\end{DoxyParamCaption})}



Copy-\/assigns a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 

Preserves the executor, reallocates the matrix with minimal stride if the dimensions don\textquotesingle{}t match, then copies the data over, ignoring padding. \Hypertarget{classgko_1_1matrix_1_1Dense_ae9cfb20e64c774eb013de0d3dbe2480f}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae9cfb20e64c774eb013de0d3dbe2480f} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} \& \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ \&\&}]{}{}\end{DoxyParamCaption})}



Move-\/assigns a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 

Preserves the executor, moves the data over preserving size and stride. Leaves the moved-\/from object in an empty state (0x0 with empty Array). \Hypertarget{classgko_1_1matrix_1_1Dense_a6374f7f447af8320917c53f1552dac9f}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a6374f7f447af8320917c53f1552dac9f} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the entry at location {\ttfamily (i,j)} contains the input value {\ttfamily (perm\+[i]\+,perm\+[j]\+)}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P A P^T$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Reimplemented from \doxymbox{\hyperlink{classgko_1_1Permutable_ae4fb8d127c4942e648eef400117039de}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a93163c011c03a9837baf827c707dc3d5}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a93163c011c03a9837baf827c707dc3d5} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the symmetrically permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[0]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_a33e68ba28b5ab55e3f824861b24be686}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a33e68ba28b5ab55e3f824861b24be686} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the symmetric row and column permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the entry at location {\ttfamily (i,j)} contains the input value {\ttfamily (perm\+[i]\+,perm\+[j]\+)}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P A P^T$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Reimplemented from \doxymbox{\hyperlink{classgko_1_1Permutable_ae4fb8d127c4942e648eef400117039de}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a49171b3b04043ce4ccef5ee8b4509450}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a49171b3b04043ce4ccef5ee8b4509450} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a44417168832f57ffe0e3a07ab1f85a2d}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [5/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a44417168832f57ffe0e3a07ab1f85a2d} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{ = {\ttfamily \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}}}\end{DoxyParamCaption}) const}



Creates a permuted copy $A\textnormal{\textquotesingle}$ of this matrix $A$ with the given permutation $P$. 

By default, this computes a symmetric permutation (\doxylink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}). For the effect of the different permutation modes, see \doxylink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}.


\begin{DoxyParams}{Parameters}
{\em permutation} & The input permutation. \\
\hline
{\em mode} & The permutation mode. If \doxylink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972aa91c78e040f7b9d158f381e197f8beb4}{permute\+\_\+mode::\+inverse} is set, we use the inverse permutation $P^{-1}$ instead of $P$. If \doxylink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972adf347a373b8f92aa0ae3dd920a5ec2f6}{permute\+\_\+mode::\+rows} is set, the rows will be permuted. If \doxylink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972a54ca84a794888fe8d92834787dfa935a}{permute\+\_\+mode::\+columns} is set, the columns will be permuted. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The permuted matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_a76c84f30341d37da8431dd50b9818d97}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [6/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a76c84f30341d37da8431dd50b9818d97} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{}\end{DoxyParamCaption}) const}



Overload of permute(ptr\+\_\+param$<$const Permutation$<$int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & the output matrix. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a3f0dd08963b8c1a72bf8cbbee9aca064}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [7/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a3f0dd08963b8c1a72bf8cbbee9aca064} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}



Creates a non-\/symmetrically permuted copy $A\textnormal{\textquotesingle}$ of this matrix $A$ with the given row and column permutations $P$ and $Q$. 

The operation will compute $A\textnormal{\textquotesingle}(i, j) = A(p[i], q[j])$, or $A\textnormal{\textquotesingle} = P A Q^T$ if {\ttfamily invert} is {\ttfamily false}, and $A\textnormal{\textquotesingle}(p[i], q[j]) = A(i,j)$, or $A\textnormal{\textquotesingle} = P^{-1} A Q^{-T}$ if {\ttfamily invert} is {\ttfamily true}.


\begin{DoxyParams}{Parameters}
{\em row\+\_\+permutation} & The permutation $P$ to apply to the rows \\
\hline
{\em column\+\_\+permutation} & The permutation $Q$ to apply to the columns \\
\hline
{\em invert} & If set to {\ttfamily false}, uses the input permutations, otherwise uses their inverses $P^{-1}, Q^{-1}$ \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The permuted matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_aa588c67e8dc76643894b9c037a30ac06}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [8/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aa588c67e8dc76643894b9c037a30ac06} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}



Overload of permute(ptr\+\_\+param$<$const Permutation$<$int32$>$$>$, ptr\+\_\+param$<$const \+Permutation$<$int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & the output matrix. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a327d02d87a7c42bc0f1df1a8d56f5498}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [9/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a327d02d87a7c42bc0f1df1a8d56f5498} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{ = {\ttfamily \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a6ee67b630dd0d4b3912f9ad520e3b29a}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [10/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a6ee67b630dd0d4b3912f9ad520e3b29a} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a1c8a463a964a8aaaea4000ef4f6e5421}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [11/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a1c8a463a964a8aaaea4000ef4f6e5421} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_ae5fa218b2d9def040ecb51136419f743}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!permute@{permute}}
\index{permute@{permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{permute()}{permute()}\hspace{0.1cm}{\footnotesize\ttfamily [12/12]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ae5fa218b2d9def040ecb51136419f743} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a72071a352bf973f8103bc8c235290677}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a72071a352bf973f8103bc8c235290677} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{}\end{DoxyParamCaption}) const}



Create a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix consisting of the given rows from this matrix. 


\begin{DoxyParams}{Parameters}
{\em gather\+\_\+indices} & pointer to an array containing row indices from this matrix. It may contain duplicates. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix on the same executor with the same number of columns and {\ttfamily gather\+\_\+indices-\/\texorpdfstring{$>$}{>}get\+\_\+size()} rows containing the gathered rows from this matrix:\+ {\ttfamily output(i,j) = input(gather\+\_\+indices(i), j)} 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_a3f4a129f97fd47b66f64d5f04feab8a7}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a3f4a129f97fd47b66f64d5f04feab8a7} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{row\+\_\+collection}{}\end{DoxyParamCaption}) const}



Copies the given rows from this matrix into {\ttfamily row\+\_\+collection}. 


\begin{DoxyParams}{Parameters}
{\em gather\+\_\+indices} & pointer to an array containing row indices from this matrix. It may contain duplicates. \\
\hline
{\em row\+\_\+collection} & pointer to a \doxylink{classgko_1_1LinOp}{Lin\+Op} that will store the gathered rows:\+ {\ttfamily row\+\_\+collection(i,j) = input(gather\+\_\+indices(i), j)} It must have the same number of columns as this matrix and {\ttfamily gather\+\_\+indices-\/\texorpdfstring{$>$}{>}get\+\_\+size()} rows. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a38a0c7dd430998261343564ff98549a6}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a38a0c7dd430998261343564ff98549a6} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{}\end{DoxyParamCaption}) const}



Create a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix consisting of the given rows from this matrix.    


\begin{DoxyParams}{Parameters}
{\em gather\+\_\+indices} & pointer to an array containing row indices from this matrix. It may contain duplicates. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix on the same executor with the same number of columns and {\ttfamily gather\+\_\+indices-\/\texorpdfstring{$>$}{>}get\+\_\+size()} rows containing the gathered rows from this matrix:\+ {\ttfamily output(i,j) = input(gather\+\_\+indices(i), j)}    
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_aee06b1066cc20eb14aa3e5bbae5d0f41}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_aee06b1066cc20eb14aa3e5bbae5d0f41} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{row\+\_\+collection}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a78e3038558a849c80f5b29f6310e5221}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a78e3038558a849c80f5b29f6310e5221} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{beta}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{row\+\_\+collection}{}\end{DoxyParamCaption}) const}



Copies the given rows from this matrix into {\ttfamily row\+\_\+collection} with scaling. 


\begin{DoxyParams}{Parameters}
{\em alpha} & scaling the result of row gathering \\
\hline
{\em gather\+\_\+indices} & pointer to an array containing row indices from this matrix. It may contain duplicates. \\
\hline
{\em beta} & scaling the input row\+\_\+collection \\
\hline
{\em row\+\_\+collection} & pointer to a \doxylink{classgko_1_1LinOp}{Lin\+Op} that will store the gathered rows:\+ {\ttfamily row\+\_\+collection(i,j) = input(gather\+\_\+indices(i), j)} It must have the same number of columns as this matrix and {\ttfamily gather\+\_\+indices-\/\texorpdfstring{$>$}{>}get\+\_\+size()} rows. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_afd04709638c41905a615561e8516d817}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_gather@{row\_gather}}
\index{row\_gather@{row\_gather}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_gather()}{row\_gather()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_afd04709638c41905a615561e8516d817} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+gather (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{gather\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{beta}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{row\+\_\+collection}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a6a68f7ec26cc007548550577c01c7d0e}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_permute@{row\_permute}}
\index{row\_permute@{row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_permute()}{row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a6a68f7ec26cc007548550577c01c7d0e} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the row {\ttfamily i} contains the input row {\ttfamily perm\+[i]\+}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P A$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a842f85a61b0b8f20083eb597978e0ffb}{gko::\+\+Permutable$<$ int32 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a20769029d7b6e90f13e44ab0dffb9787}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_permute@{row\_permute}}
\index{row\_permute@{row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_permute()}{row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a20769029d7b6e90f13e44ab0dffb9787} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the row-\/permuted matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & The array containing permutation indices. It must have {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()\+[0]\+} elements. \\
\hline
{\em output} & The output matrix. It must have the dimensions {\ttfamily this-\/\texorpdfstring{$>$}{>}get\+\_\+size()} \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
Dense::\+row\+\_\+permute(const array$<$int32$>$\texorpdfstring{$\ast$}{*}) 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1matrix_1_1Dense_a1c6a43bfc440138798de73c53072eedd}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_permute@{row\_permute}}
\index{row\_permute@{row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_permute()}{row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a1c6a43bfc440138798de73c53072eedd} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the row permutation of the \doxylink{classgko_1_1Permutable}{Permutable} object. 

In the resulting \doxylink{classgko_1_1LinOp}{Lin\+Op}, the row {\ttfamily i} contains the input row {\ttfamily perm\+[i]\+}.

From the linear algebra perspective, with  $P_{ij} = \delta_{i
\pi(i)}$, this represents the operation $P A$.


\begin{DoxyParams}{Parameters}
{\em permutation\+\_\+indices} & the array of indices containing the permutation order.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new permuted object 
\end{DoxyReturn}


Implements \doxymbox{\hyperlink{classgko_1_1Permutable_a842f85a61b0b8f20083eb597978e0ffb}{gko::\+\+Permutable$<$ int64 $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_a5de1c0c1497a9a7ffa81faadfb983911}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!row\_permute@{row\_permute}}
\index{row\_permute@{row\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{row\_permute()}{row\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a5de1c0c1497a9a7ffa81faadfb983911} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+row\+\_\+permute (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \texorpdfstring{$\ast$}{*}}]{permutation\+\_\+indices}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a4d739b20e7573f0ed09201fc9c29b07b}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale@{scale}}
\index{scale@{scale}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale()}{scale()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a4d739b20e7573f0ed09201fc9c29b07b} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{}\end{DoxyParamCaption})}



Scales the matrix with a scalar (aka:\+ BLAS scal). 


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, the entire matrix is scaled by alpha. If it is a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector of values, then i-\/th column of the matrix is scaled with the i-\/th element of alpha (the number of columns of alpha has to match the number of columns of the matrix). \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_ab229ed386ec8ecac07bab1e088ba6f33}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [1/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ab229ed386ec8ecac07bab1e088ba6f33} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{ = {\ttfamily \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}}}\end{DoxyParamCaption}) const}



Creates a scaled and permuted copy of this matrix. 

For an explanation of the permutation modes, see permute(ptr\+\_\+param$<$const Permutation$<$index\+\_\+type$>$$>$, permute\+\_\+mode)


\begin{DoxyParams}{Parameters}
{\em permutation} & The scaled permutation. \\
\hline
{\em mode} & The permutation mode. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The permuted matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_ac5c25fd1daa6ea55718af004b8d42634}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [2/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac5c25fd1daa6ea55718af004b8d42634} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{}\end{DoxyParamCaption}) const}



Overload of scale\+\_\+permute(ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, permute\+\_\+mode) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & the output matrix. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_a80e0ab242dee7cc0e656b3f514982537}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [3/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a80e0ab242dee7cc0e656b3f514982537} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}



Creates a scaled and permuted copy of this matrix. 

For an explanation of the parameters, see permute(ptr\+\_\+param$<$const Permutation$<$index\+\_\+type$>$$>$, ptr\+\_\+param$<$const \+Permutation$<$index\+\_\+type$>$$>$, permute\+\_\+mode)


\begin{DoxyParams}{Parameters}
{\em row\+\_\+permutation} & The scaled row permutation. \\
\hline
{\em column\+\_\+permutation} & The scaled column permutation. \\
\hline
{\em invert} & If set to {\ttfamily false}, uses the input permutations, otherwise uses their inverses $P^{-1}, Q^{-1}$ \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The permuted matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Dense_a76928c7682537cbe137701242d54112b}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [4/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a76928c7682537cbe137701242d54112b} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}



Overload of scale\+\_\+permute(ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, ptr\+\_\+param$<$const Scaled\+Permutation$<$value\+\_\+type, int32$>$$>$, bool) that writes the permuted copy into an existing \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & the output matrix. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_abcaac186aaa4c7b001a6d736f86f790b}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [5/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_abcaac186aaa4c7b001a6d736f86f790b} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{ = {\ttfamily \doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972afeca3c730601be7fd57f1f0b668b4637}{permute\+\_\+mode::\+symmetric}}}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a9aa50db81db9f0cfe55e063f45c2d8e1}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [6/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a9aa50db81db9f0cfe55e063f45c2d8e1} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1matrix_ade1f3cdbf05032c2d681fa151de02972}{permute\+\_\+mode}}}]{mode}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a0d2b7ddcfd590addca2ade6a9c3787d8}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [7/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a0d2b7ddcfd590addca2ade6a9c3787d8} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a85365942b5f2d721a23788f6c399ba32}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!scale\_permute@{scale\_permute}}
\index{scale\_permute@{scale\_permute}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale\_permute()}{scale\_permute()}\hspace{0.1cm}{\footnotesize\ttfamily [8/8]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a85365942b5f2d721a23788f6c399ba32} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+scale\+\_\+permute (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{row\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}}$<$ value\+\_\+type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{column\+\_\+permutation}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{, }\item[{bool}]{invert}{ = {\ttfamily false}}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Dense_a3089b32908dc8eb84999e5100183fb89}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!sub\_scaled@{sub\_scaled}}
\index{sub\_scaled@{sub\_scaled}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{sub\_scaled()}{sub\_scaled()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_a3089b32908dc8eb84999e5100183fb89} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+sub\+\_\+scaled (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{}\end{DoxyParamCaption})}



Subtracts {\ttfamily b} scaled by {\ttfamily alpha} from the matrix (aka:\+ BLAS axpy). 


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 \doxylink{classgko_1_1matrix_1_1Dense}{Dense} matrix, b is scaled by alpha. If it is a \doxylink{classgko_1_1matrix_1_1Dense}{Dense} row vector of values, then i-\/th column of b is scaled with the i-\/th element of alpha (the number of columns of alpha has to match the number of columns of the matrix). \\
\hline
{\em b} & a matrix of the same dimension as this \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1matrix_1_1Dense_ac31fee525813e3acbd6d5d8e20bad230}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!transpose@{transpose}}
\index{transpose@{transpose}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ac31fee525813e3acbd6d5d8e20bad230} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+transpose (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns a \doxylink{classgko_1_1LinOp}{Lin\+Op} representing the transpose of the \doxylink{classgko_1_1Transposable}{Transposable} object. 

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


Implements \doxymbox{\hyperlink{classgko_1_1Transposable_adf04fdf2ed79b117edbef42520bfe8fa}{gko::\+\+Transposable}}.

\Hypertarget{classgko_1_1matrix_1_1Dense_ab251ea79598302b993a96549300bb114}\index{gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}!transpose@{transpose}}
\index{transpose@{transpose}!gko::matrix::Dense$<$ ValueType $>$@{gko::matrix::Dense$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Dense_ab251ea79598302b993a96549300bb114} 
template$<$typename Value\+Type = default\+\_\+precision$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$ Value\+Type $>$::\+transpose (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense_a433fbe9fcfc30a0fc96cd95ace38b903}{Dense}}$<$ Value\+Type $>$ $>$}]{output}{}\end{DoxyParamCaption}) const}



Writes the transposed matrix into the given output matrix. 


\begin{DoxyParams}{Parameters}
{\em output} & The output matrix. It must have the dimensions {\ttfamily \doxylink{namespacegko_aacad7f87b38d3f26674ed034d442a1a0}{gko::\+transpose}(this-\/\texorpdfstring{$>$}{>}get\+\_\+size())} \\
\hline
\end{DoxyParams}


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