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


COO stores a matrix in the coordinate matrix format.  




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



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


Collaboration diagram for gko::\+matrix::\+Coo\texorpdfstring{$<$}{<} Value\+Type, Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1matrix_1_1Coo__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a4e3cdd13b760cf4816aef0d176551e99}\label{classgko_1_1matrix_1_1Coo_a4e3cdd13b760cf4816aef0d176551e99} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ab7f7b99f477cfb086298104cf90105d2}\label{classgko_1_1matrix_1_1Coo_ab7f7b99f477cfb086298104cf90105d2} 
using {\bfseries index\+\_\+type} = Index\+Type
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_abb30abcce2a2e2ff3ae32b5b5eef7a1a}\label{classgko_1_1matrix_1_1Coo_abb30abcce2a2e2ff3ae32b5b5eef7a1a} 
using {\bfseries transposed\+\_\+type} = Coo$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a52198fe6654bd0a2bec566a65bdc60ac}\label{classgko_1_1matrix_1_1Coo_a52198fe6654bd0a2bec566a65bdc60ac} 
using {\bfseries mat\+\_\+data} = \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ad98ea3bcdb801644d1bac04c61a9815c}\label{classgko_1_1matrix_1_1Coo_ad98ea3bcdb801644d1bac04c61a9815c} 
using {\bfseries device\+\_\+mat\+\_\+data} = \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$Value\+Type, Index\+Type$>$
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a70b752b84bc080854fb6e93b52e7735f}\label{classgko_1_1matrix_1_1Coo_a70b752b84bc080854fb6e93b52e7735f} 
using {\bfseries absolute\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$Coo$>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Coo$<$ default\+\_\+precision, int32 $>$ $>$}}}
\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_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_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Coo$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries absolute\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a6fc91b35730bea0ea1b93e49a6b7343b}\label{classgko_1_1matrix_1_1Coo_a6fc91b35730bea0ea1b93e49a6b7343b} 
void {\bfseries convert\+\_\+to} (Coo$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a7a14b90cb45223984a4601caa0341f4b}\label{classgko_1_1matrix_1_1Coo_a7a14b90cb45223984a4601caa0341f4b} 
void {\bfseries move\+\_\+to} (Coo$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$, Index\+Type $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a209277e9e7c7fe02c810524f758b96e0}\label{classgko_1_1matrix_1_1Coo_a209277e9e7c7fe02c810524f758b96e0} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}other) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a69d13086e01d54027191308f01fe7853}\label{classgko_1_1matrix_1_1Coo_a69d13086e01d54027191308f01fe7853} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr}{Csr}}$<$ Value\+Type, Index\+Type $>$ \texorpdfstring{$\ast$}{*}other) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_afe1da5bbb43e64ced415d90b68e5d87d}\label{classgko_1_1matrix_1_1Coo_afe1da5bbb43e64ced415d90b68e5d87d} 
void {\bfseries convert\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{Dense}}$<$ Value\+Type $>$ \texorpdfstring{$\ast$}{*}other) const override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a0c4d89bb25548925ca9e698bdf00a946}\label{classgko_1_1matrix_1_1Coo_a0c4d89bb25548925ca9e698bdf00a946} 
void {\bfseries move\+\_\+to} (\doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{Dense}}$<$ Value\+Type $>$ \texorpdfstring{$\ast$}{*}other) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ac0d4aeb19d9f55b62bea18bad1a408f5}\label{classgko_1_1matrix_1_1Coo_ac0d4aeb19d9f55b62bea18bad1a408f5} 
void {\bfseries read} (const mat\+\_\+data \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a38b27526371688471f94bfb9cac56c97}\label{classgko_1_1matrix_1_1Coo_a38b27526371688471f94bfb9cac56c97} 
void {\bfseries read} (const device\+\_\+mat\+\_\+data \&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a464f133eebf917eb59241497f1ea5109}\label{classgko_1_1matrix_1_1Coo_a464f133eebf917eb59241497f1ea5109} 
void {\bfseries read} (device\+\_\+mat\+\_\+data \&\&data) override
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ae193466ca1a4a3c7d1383ddc5a2701ab}\label{classgko_1_1matrix_1_1Coo_ae193466ca1a4a3c7d1383ddc5a2701ab} 
void {\bfseries write} (mat\+\_\+data \&data) const override
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a2430e61f85b0d5b71a15281f2480d9ce}{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_1Coo_a77810f90e29b3745f352a4c42c44bcfc}{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 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_af12b1d22ad6851193c0f17e52d650180}{extract\+\_\+diagonal}} () const override
\begin{DoxyCompactList}\small\item\em Extracts the diagonal entries of the matrix into a vector. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ac40e048a11f6eaa698e01fa59dbc82e8}{compute\+\_\+absolute}} () const override
\begin{DoxyCompactList}\small\item\em Gets the Absolute\+Lin\+Op. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_aa3be345b0334650e50857c21837e0e07}{compute\+\_\+absolute\+\_\+inplace}} () override
\begin{DoxyCompactList}\small\item\em Compute absolute inplace on each element. \end{DoxyCompactList}\item 
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_af6903756353277547ac24da81b9b9eba}{get\+\_\+values}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns the values of the matrix. \end{DoxyCompactList}\item 
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_aadb3e83f3f76e9b3e7a5532eced05c86}{get\+\_\+const\+\_\+values}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the values of the matrix.    \end{DoxyCompactList}\item 
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a1da460bd20cc25ce1ae512b6a45243d1}{get\+\_\+col\+\_\+idxs}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns the column indexes of the matrix. \end{DoxyCompactList}\item 
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a2fc6fb6cc3b8dcaa58034f12ff1b6929}{get\+\_\+const\+\_\+col\+\_\+idxs}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the column indexes of the matrix.    \end{DoxyCompactList}\item 
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_af15ca89ba01c50f7d496b6b6ff866700}{get\+\_\+row\+\_\+idxs}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns the row indexes of the matrix. \end{DoxyCompactList}\item 
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ac283078aaa7e8bd72c8dde837d142c44}{get\+\_\+const\+\_\+row\+\_\+idxs}} () const noexcept
\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_aece531e069f8490fd8d2b3ab58f72d09}{get\+\_\+num\+\_\+stored\+\_\+elements}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the number of elements explicitly stored in the matrix. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a7a5b0223520dabfb95dc4efcc602292b}{apply2}} (\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)
\begin{DoxyCompactList}\small\item\em Applies \doxylink{classgko_1_1matrix_1_1Coo}{Coo} matrix axpy to a vector (or a sequence of vectors). \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ac3829de9d2b933db4fee6e2f55d99fda}{apply2}} (\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
\item 
\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a9819e6c9ca0808040b6d24aaa84ac272}{apply2}} (\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, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ x)
\begin{DoxyCompactList}\small\item\em Performs the operation x = alpha \texorpdfstring{$\ast$}{*} \doxylink{classgko_1_1matrix_1_1Coo}{Coo} \texorpdfstring{$\ast$}{*} b + x. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a6b4ee181f90be626ae48ac092823d81b}{apply2}} (\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, \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_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Coo$<$ default\+\_\+precision, int32 $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
const Coo$<$ \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$<$ Coo$<$ 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_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_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_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Coo$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}}
\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}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_ae0b4003c65c6ddaf6eb5119bfe22572e}{create}} (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 $>$\{\}, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} num\+\_\+nonzeros=\{\})
\begin{DoxyCompactList}\small\item\em Creates an uninitialized COO matrix of the specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_af4c0f3034a7fb703cc4593a2cdb2a0fe}{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{classgko_1_1array}{array}}$<$ index\+\_\+type $>$ col\+\_\+idxs, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$ row\+\_\+idxs)
\begin{DoxyCompactList}\small\item\em Creates a COO matrix from already allocated (and initialized) row index, column index and value arrays. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Input\+Value\+Type, typename Input\+Column\+Index\+Type, typename Input\+Row\+Index\+Type$>$ }\\static std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a29f4a59d1696717487f0d64b5d72e975}{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, std::\+initializer\+\_\+list$<$ Input\+Column\+Index\+Type $>$ col\+\_\+idxs, std::\+initializer\+\_\+list$<$ Input\+Row\+Index\+Type $>$ row\+\_\+idxs)
\begin{DoxyCompactList}\small\item\em \doxylink{classgko_1_1matrix_1_1Coo_af4c0f3034a7fb703cc4593a2cdb2a0fe}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, array$<$value\+\_\+type$>$, array$<$index\+\_\+type$>$, array$<$index\+\_\+type$>$)} \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo_a39145d7cd1d44050aa7076b96280b04d}{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, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&col\+\_\+idxs, gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&row\+\_\+idxs)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Coo}{Coo} matrix from a set of constant arrays. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a29c635db859b174df4d1cdc8be3ff2be}\label{classgko_1_1matrix_1_1Coo_a29c635db859b174df4d1cdc8be3ff2be} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Coo, Lin\+Op $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a3962faf971a3df6ff4c9226c61fb24cc}\label{classgko_1_1matrix_1_1Coo_a3962faf971a3df6ff4c9226c61fb24cc} 
class {\bfseries Csr$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a22a84c8f67f946aa60a2fa8bf5835a32}\label{classgko_1_1matrix_1_1Coo_a22a84c8f67f946aa60a2fa8bf5835a32} 
class {\bfseries Dense$<$ Value\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a52291b122923e4e6e062cb896c14ecc3}\label{classgko_1_1matrix_1_1Coo_a52291b122923e4e6e062cb896c14ecc3} 
class {\bfseries Coo\+Builder$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ac0722b28c665c408a55adff82cce5a4b}\label{classgko_1_1matrix_1_1Coo_ac0722b28c665c408a55adff82cce5a4b} 
class {\bfseries Coo$<$ to\+\_\+complex$<$ Value\+Type $>$, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_a86254b0ae570c27f5ba169d64b74e94b}\label{classgko_1_1matrix_1_1Coo_a86254b0ae570c27f5ba169d64b74e94b} 
class {\bfseries Hybrid$<$ Value\+Type, Index\+Type $>$}
\item 
\Hypertarget{classgko_1_1matrix_1_1Coo_ac85feeabdce03a0400226a3c24a8ecf2}\label{classgko_1_1matrix_1_1Coo_ac85feeabdce03a0400226a3c24a8ecf2} 
class {\bfseries Coo$<$ previous\+\_\+precision$<$ Value\+Type $>$, Index\+Type $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$\newline
class gko::\+matrix::\+\+Coo$<$ Value\+Type, Index\+Type $>$}
COO stores a matrix in the coordinate matrix format. 

The nonzero elements are stored in an array row-\/wise (but not necessarily sorted by column index within a row). Two extra arrays contain the row and column indexes of each nonzero element of the matrix.


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & precision of matrix elements \\
\hline
{\em Index\+Type} & precision of matrix indexes \\
\hline
\end{DoxyTemplParams}


\label{doc-func-members}
\Hypertarget{classgko_1_1matrix_1_1Coo_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1matrix_1_1Coo_a9819e6c9ca0808040b6d24aaa84ac272}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!apply2@{apply2}}
\index{apply2@{apply2}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{apply2()}{apply2()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a9819e6c9ca0808040b6d24aaa84ac272} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+apply2 (\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}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{x}{}\end{DoxyParamCaption})}



Performs the operation x = alpha \texorpdfstring{$\ast$}{*} \doxylink{classgko_1_1matrix_1_1Coo}{Coo} \texorpdfstring{$\ast$}{*} b + x. 


\begin{DoxyParams}{Parameters}
{\em alpha} & scaling of the result of \doxylink{classgko_1_1matrix_1_1Coo}{Coo} \texorpdfstring{$\ast$}{*} b \\
\hline
{\em b} & vector(s) on which the operator is applied \\
\hline
{\em x} & output vector(s)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_a6b4ee181f90be626ae48ac092823d81b}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!apply2@{apply2}}
\index{apply2@{apply2}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{apply2()}{apply2()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a6b4ee181f90be626ae48ac092823d81b} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+apply2 (\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}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{x}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Coo_a7a5b0223520dabfb95dc4efcc602292b}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!apply2@{apply2}}
\index{apply2@{apply2}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{apply2()}{apply2()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a7a5b0223520dabfb95dc4efcc602292b} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+apply2 (\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}} $>$}]{x}{}\end{DoxyParamCaption})}



Applies \doxylink{classgko_1_1matrix_1_1Coo}{Coo} matrix axpy to a vector (or a sequence of vectors). 

Performs the operation x = \doxylink{classgko_1_1matrix_1_1Coo}{Coo} \texorpdfstring{$\ast$}{*} b + x


\begin{DoxyParams}{Parameters}
{\em b} & the input vector(s) on which the operator is applied \\
\hline
{\em x} & the output vector(s) where the result is stored\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_ac3829de9d2b933db4fee6e2f55d99fda}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!apply2@{apply2}}
\index{apply2@{apply2}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{apply2()}{apply2()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_ac3829de9d2b933db4fee6e2f55d99fda} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+apply2 (\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}} $>$}]{x}{}\end{DoxyParamCaption}) const}





\Hypertarget{classgko_1_1matrix_1_1Coo_ac40e048a11f6eaa698e01fa59dbc82e8}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_ac40e048a11f6eaa698e01fa59dbc82e8} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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$<$ Coo$<$ default\+\_\+precision, int32 $>$ $>$ $>$}}.

\Hypertarget{classgko_1_1matrix_1_1Coo_aa3be345b0334650e50857c21837e0e07}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!compute\_absolute\_inplace@{compute\_absolute\_inplace}}
\index{compute\_absolute\_inplace@{compute\_absolute\_inplace}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute\_inplace()}{compute\_absolute\_inplace()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_aa3be345b0334650e50857c21837e0e07} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
void \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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_1Coo_a77810f90e29b3745f352a4c42c44bcfc}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!conj\_transpose@{conj\_transpose}}
\index{conj\_transpose@{conj\_transpose}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{conj\_transpose()}{conj\_transpose()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a77810f90e29b3745f352a4c42c44bcfc} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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_1Coo_af4c0f3034a7fb703cc4593a2cdb2a0fe}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_af4c0f3034a7fb703cc4593a2cdb2a0fe} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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{classgko_1_1array}{array}}$<$ index\+\_\+type $>$}]{col\+\_\+idxs}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ index\+\_\+type $>$}]{row\+\_\+idxs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a COO matrix from already allocated (and initialized) row index, column index and value arrays. 


\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 col\+\_\+idxs} & array of column indexes \\
\hline
{\em row\+\_\+idxs} & array of row pointers\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
If one of {\ttfamily row\+\_\+idxs}, {\ttfamily col\+\_\+idxs} or {\ttfamily values} is not an rvalue, not an array of Index\+Type, Index\+Type and Value\+Type, respectively, or is on the wrong executor, an internal copy of that array 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 matrix wrapping the input arrays (if they reside on the same executor as the matrix) or a copy of these arrays on the correct executor. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_a29f4a59d1696717487f0d64b5d72e975}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a29f4a59d1696717487f0d64b5d72e975} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
template$<$typename Input\+Value\+Type, typename Input\+Column\+Index\+Type, typename Input\+Row\+Index\+Type$>$ \\
std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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[{std::\+initializer\+\_\+list$<$ Input\+Column\+Index\+Type $>$}]{col\+\_\+idxs}{, }\item[{std::\+initializer\+\_\+list$<$ Input\+Row\+Index\+Type $>$}]{row\+\_\+idxs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



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

\doxylink{classgko_1_1matrix_1_1Coo_af4c0f3034a7fb703cc4593a2cdb2a0fe}{create(std::\+shared\+\_\+ptr$<$const Executor$>$,const dim$<$2$>$\&, array$<$value\+\_\+type$>$, array$<$index\+\_\+type$>$, array$<$index\+\_\+type$>$)} \Hypertarget{classgko_1_1matrix_1_1Coo_ae0b4003c65c6ddaf6eb5119bfe22572e}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!create@{create}}
\index{create@{create}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_ae0b4003c65c6ddaf6eb5119bfe22572e} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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 \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$~2~$>$\{\}}, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{num\+\_\+nonzeros}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an uninitialized COO 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 num\+\_\+nonzeros} & number of nonzeros\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created matrix. 
\end{DoxyReturn}


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

\Hypertarget{classgko_1_1matrix_1_1Coo_a39145d7cd1d44050aa7076b96280b04d}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a39145d7cd1d44050aa7076b96280b04d} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ const Coo $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&}]{col\+\_\+idxs}{, }\item[{gko::\+detail::\+const\+\_\+array\+\_\+view$<$ Index\+Type $>$ \&\&}]{row\+\_\+idxs}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) \doxylink{classgko_1_1matrix_1_1Coo}{Coo} matrix from a set of constant arrays. 


\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 col\+\_\+idxs} & the column index array of the matrix \\
\hline
{\em row\+\_\+ptrs} & the row index array of the matrix\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the constant matrix wrapping the input arrays (if they reside on the same executor as the matrix) or a copy of these arrays on the correct executor. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_af12b1d22ad6851193c0f17e52d650180}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!extract\_diagonal@{extract\_diagonal}}
\index{extract\_diagonal@{extract\_diagonal}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{extract\_diagonal()}{extract\_diagonal()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_af12b1d22ad6851193c0f17e52d650180} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Diagonal}{Diagonal}}$<$ Value\+Type $>$ $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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_1Coo_a1da460bd20cc25ce1ae512b6a45243d1}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_col\_idxs@{get\_col\_idxs}}
\index{get\_col\_idxs@{get\_col\_idxs}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_col\_idxs()}{get\_col\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a1da460bd20cc25ce1ae512b6a45243d1} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+col\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the column indexes of the matrix. 

\begin{DoxyReturn}{Returns}
the column indexes of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_a2fc6fb6cc3b8dcaa58034f12ff1b6929}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_const\_col\_idxs@{get\_const\_col\_idxs}}
\index{get\_const\_col\_idxs@{get\_const\_col\_idxs}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_col\_idxs()}{get\_const\_col\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a2fc6fb6cc3b8dcaa58034f12ff1b6929} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+col\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the column indexes of the matrix.    

\begin{DoxyReturn}{Returns}
the column indexes of the matrix.   
\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_1Coo_ac283078aaa7e8bd72c8dde837d142c44}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_const\_row\_idxs@{get\_const\_row\_idxs}}
\index{get\_const\_row\_idxs@{get\_const\_row\_idxs}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_row\_idxs()}{get\_const\_row\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_ac283078aaa7e8bd72c8dde837d142c44} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+row\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}





\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_1Coo_aadb3e83f3f76e9b3e7a5532eced05c86}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_const\_values@{get\_const\_values}}
\index{get\_const\_values@{get\_const\_values}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_values()}{get\_const\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_aadb3e83f3f76e9b3e7a5532eced05c86} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+const\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the values of the matrix.    

\begin{DoxyReturn}{Returns}
the values of the matrix.   
\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_1Coo_aece531e069f8490fd8d2b3ab58f72d09}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_num\_stored\_elements@{get\_num\_stored\_elements}}
\index{get\_num\_stored\_elements@{get\_num\_stored\_elements}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_stored\_elements()}{get\_num\_stored\_elements()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_aece531e069f8490fd8d2b3ab58f72d09} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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_1Coo_af15ca89ba01c50f7d496b6b6ff866700}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_row\_idxs@{get\_row\_idxs}}
\index{get\_row\_idxs@{get\_row\_idxs}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_row\_idxs()}{get\_row\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_af15ca89ba01c50f7d496b6b6ff866700} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
index\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+row\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the row indexes of the matrix. 

\begin{DoxyReturn}{Returns}
the row indexes of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_af6903756353277547ac24da81b9b9eba}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!get\_values@{get\_values}}
\index{get\_values@{get\_values}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_values()}{get\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_af6903756353277547ac24da81b9b9eba} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+Type $>$::\+get\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the values of the matrix. 

\begin{DoxyReturn}{Returns}
the values of the matrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1matrix_1_1Coo_a2430e61f85b0d5b71a15281f2480d9ce}\index{gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}!transpose@{transpose}}
\index{transpose@{transpose}!gko::matrix::Coo$<$ ValueType, IndexType $>$@{gko::matrix::Coo$<$ ValueType, IndexType $>$}}
\doxysubsubsection{\texorpdfstring{transpose()}{transpose()}}
{\footnotesize\ttfamily \label{classgko_1_1matrix_1_1Coo_a2430e61f85b0d5b71a15281f2480d9ce} 
template$<$typename Value\+Type = default\+\_\+precision, typename Index\+Type = int32$>$ \\
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1matrix_1_1Coo}{gko::\+matrix::\+\+Coo}}$<$ Value\+Type, Index\+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}}.



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