\doxysection{gko::\+matrix::\+Scaled\+Permutation\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1matrix_1_1ScaledPermutation}{}\label{classgko_1_1matrix_1_1ScaledPermutation}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}


\doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} is a matrix combining a permutation with scaling factors.  




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



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


Collaboration diagram for gko::\+matrix::\+Scaled\+Permutation\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1ScaledPermutation__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_abfd54a1002a6bae2264a56db770bfb45}\label{classgko_1_1matrix_1_1ScaledPermutation_abfd54a1002a6bae2264a56db770bfb45} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a5df80c97cdaadfdc3578d917d021073f}\label{classgko_1_1matrix_1_1ScaledPermutation_a5df80c97cdaadfdc3578d917d021073f} 
using {\bfseries index\+\_\+type} = Index\+Type
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Scaled\+Permutation$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+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}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_af6bdc0527426f558a5cf70c3cd30ceee}{get\+\_\+scaling\+\_\+factors}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the scaling factors. \end{DoxyCompactList}\item 
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a019f2a93ec3227b8c60f03bf0757d06e}{get\+\_\+const\+\_\+scaling\+\_\+factors}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the scaling factors.    \end{DoxyCompactList}\item 
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a23dab0900976e9c5f1a99dc4d9e81366}{get\+\_\+permutation}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the permutation indices. \end{DoxyCompactList}\item 
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a433e75949e8cad9195d2f46e749c3312}{get\+\_\+const\+\_\+permutation}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the permutation indices.    \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_ad7287f473769051c10ddb1c110329c3d}{compute\+\_\+inverse}} () const
\begin{DoxyCompactList}\small\item\em Returns the inverse of this operator as a scaled permutation. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_ac3d100586896e50640f44f9a3425db53}{compose}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Scaled\+Permutation $>$ other) const
\begin{DoxyCompactList}\small\item\em Composes this scaled permutation with another scaled permutation. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a8ab111635e545b25f23f6bccc74e82f6}\label{classgko_1_1matrix_1_1ScaledPermutation_a8ab111635e545b25f23f6bccc74e82f6} 
void {\bfseries write} (\doxymbox{\hyperlink{structgko_1_1matrix__data}{gko::\+matrix\+\_\+data}}$<$ value\+\_\+type, index\+\_\+type $>$ \&data) const override
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Scaled\+Permutation$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
const Scaled\+Permutation$<$ \doxymbox{\hyperlink{namespacegko_a89637c833af7ae805802226d97cebebf}{default\+\_\+precision}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \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$<$ Scaled\+Permutation$<$ default\+\_\+precision, int32 $>$ $>$}}}
\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_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}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a901ba04db357fe2d96512bdf8ed387b6}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size=0)
\begin{DoxyCompactList}\small\item\em Creates an uninitialized \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a7086cc95572a9daa00607bc7a5449d77}{create}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ Index\+Type $>$ $>$ permutation)
\begin{DoxyCompactList}\small\item\em Create a \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} from a \doxylink{classgko_1_1matrix_1_1Permutation}{Permutation}. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_a50954184829fa6a25952f00180c0fe82}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$ scaling\+\_\+factors, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$ permutation\+\_\+indices)
\begin{DoxyCompactList}\small\item\em Creates a \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix from already allocated arrays. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation_ae9bfb03b62202a41a86060895d00a250}{create\+\_\+const}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ value\+\_\+type $>$ \&\&scale, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ index\+\_\+type $>$ \&\&perm\+\_\+idxs)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix from constant arrays. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a9cffa6760eb42086d81a2dda0ceaa9f1}\label{classgko_1_1matrix_1_1ScaledPermutation_a9cffa6760eb42086d81a2dda0ceaa9f1} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Scaled\+Permutation, Lin\+Op $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$\newline
class gko::\+matrix::\+\+Scaled\+Permutation$<$ Value\+Type, Index\+Type $>$}
\doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} is a matrix combining a permutation with scaling factors. 

It is a combination of \doxylink{classgko_1_1matrix_1_1Diagonal}{Diagonal} and \doxylink{classgko_1_1matrix_1_1Permutation}{Permutation}, and can be read as $SP = P \cdot S$, i.\+e. the scaling gets applied before the permutation.


\begin{DoxyTemplParams}{Template Parameters}
{\em Index\+Type} & index type of permutation indices \\
\hline
{\em Value\+Type} & value type of the scaling factors \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_ac3d100586896e50640f44f9a3425db53}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!compose@{compose}}
\index{compose@{compose}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compose()}{compose()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_ac3d100586896e50640f44f9a3425db53} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+compose (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Scaled\+Permutation$<$ Value\+Type, Index\+Type $>$ $>$}]{other}{}\end{DoxyParamCaption}) const}



Composes this scaled permutation with another scaled permutation. 

This means {\ttfamily result = other \texorpdfstring{$\ast$}{*} this} from the matrix perspective, which is equivalent to first scaling and permuting by {\ttfamily this} and then by {\ttfamily other}.


\begin{DoxyParams}{Parameters}
{\em other} & the other permutation \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the combined permutation 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_ad7287f473769051c10ddb1c110329c3d}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!compute\_inverse@{compute\_inverse}}
\index{compute\_inverse@{compute\_inverse}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_inverse()}{compute\_inverse()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_ad7287f473769051c10ddb1c110329c3d} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+compute\+\_\+inverse (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Returns the inverse of this operator as a scaled permutation. 

It is computed via $(P S)^-1 = P^{-1} (P S P^{-1})$.

\begin{DoxyReturn}{Returns}
a newly created \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} object storing the inverse of the permutation and scaling factors of this \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation}. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a7086cc95572a9daa00607bc7a5449d77}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a7086cc95572a9daa00607bc7a5449d77} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1matrix_1_1Permutation}{Permutation}}$<$ Index\+Type $>$ $>$}]{permutation}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Create a \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} from a \doxylink{classgko_1_1matrix_1_1Permutation}{Permutation}. 

The permutation will be copied, the scaling factors are all set to 1.\+0.


\begin{DoxyParams}{Parameters}
{\em permutation} & the permutation\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a50954184829fa6a25952f00180c0fe82}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a50954184829fa6a25952f00180c0fe82} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ value\+\_\+type $>$}]{scaling\+\_\+factors}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$}]{permutation\+\_\+indices}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix from already allocated arrays. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em permutation\+\_\+indices} & array of permutation indices \\
\hline
{\em scaling\+\_\+factors} & array of scaling factors\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a901ba04db357fe2d96512bdf8ed387b6}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a901ba04db357fe2d96512bdf8ed387b6} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{ = {\ttfamily 0}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an uninitialized \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated to the matrix \\
\hline
{\em size} & dimensions of the (square) scaled permutation matrix\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_ae9bfb03b62202a41a86060895d00a250}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_ae9bfb03b62202a41a86060895d00a250} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ const Scaled\+Permutation $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+create\+\_\+const (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ value\+\_\+type $>$ \&\&}]{scale}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ index\+\_\+type $>$ \&\&}]{perm\+\_\+idxs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1ScaledPermutation}{Scaled\+Permutation} matrix from constant arrays. 


\begin{DoxyParams}{Parameters}
{\em exec} & the executor to create the object on \\
\hline
{\em perm\+\_\+idxs} & the permutation index array of the matrix \\
\hline
{\em scale} & the scaling factor array \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the constant matrix wrapping the input arrays (if it resides on the same executor as the matrix) or a copy of the arrays on the correct executor. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_a433e75949e8cad9195d2f46e749c3312}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!get\_const\_permutation@{get\_const\_permutation}}
\index{get\_const\_permutation@{get\_const\_permutation}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_permutation()}{get\_const\_permutation()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a433e75949e8cad9195d2f46e749c3312} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+permutation (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the permutation indices.    

\begin{DoxyReturn}{Returns}
the pointer to the permutation indices.   
\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_1ScaledPermutation_a019f2a93ec3227b8c60f03bf0757d06e}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!get\_const\_scaling\_factors@{get\_const\_scaling\_factors}}
\index{get\_const\_scaling\_factors@{get\_const\_scaling\_factors}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_scaling\_factors()}{get\_const\_scaling\_factors()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a019f2a93ec3227b8c60f03bf0757d06e} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+scaling\+\_\+factors (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the scaling factors.    

\begin{DoxyReturn}{Returns}
the pointer to the scaling factors.   
\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_1ScaledPermutation_a23dab0900976e9c5f1a99dc4d9e81366}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!get\_permutation@{get\_permutation}}
\index{get\_permutation@{get\_permutation}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_permutation()}{get\_permutation()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_a23dab0900976e9c5f1a99dc4d9e81366} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+permutation (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the permutation indices. 

\begin{DoxyReturn}{Returns}
the pointer to the permutation indices. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1ScaledPermutation_af6bdc0527426f558a5cf70c3cd30ceee}\index{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}!get\_scaling\_factors@{get\_scaling\_factors}}
\index{get\_scaling\_factors@{get\_scaling\_factors}!gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$@{gko::matrix::ScaledPermutation$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_scaling\_factors()}{get\_scaling\_factors()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1ScaledPermutation_af6bdc0527426f558a5cf70c3cd30ceee} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1ScaledPermutation}{gko::\+matrix::\+\+Scaled\+Permutation}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+scaling\+\_\+factors (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the scaling factors. 

\begin{DoxyReturn}{Returns}
the pointer to the scaling factors. 
\end{DoxyReturn}


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