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


An array is a container which encapsulates fixed-\/sized arrays, stored on the \doxylink{classgko_1_1Executor}{Executor} tied to the array.  




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



Inheritance diagram for gko::\+array\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classgko_1_1array__inherit__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}\label{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549} 
using {\bfseries value\+\_\+type} = Value\+Type
\begin{DoxyCompactList}\small\item\em The type of elements stored in the array. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1array_a7987c3c644cf27ae9d5dd926e5891f17}\label{classgko_1_1array_a7987c3c644cf27ae9d5dd926e5891f17} 
using {\bfseries default\+\_\+deleter} = \doxymbox{\hyperlink{classgko_1_1executor__deleter}{executor\+\_\+deleter}}$<$\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}}\+[$\,$]\+$>$
\begin{DoxyCompactList}\small\item\em The default deleter type used by array. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1array_a377a6aaf5ee6c2747781b889eea6c226}\label{classgko_1_1array_a377a6aaf5ee6c2747781b889eea6c226} 
using {\bfseries view\+\_\+deleter} = \doxymbox{\hyperlink{classgko_1_1null__deleter}{null\+\_\+deleter}}$<$\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}}\+[$\,$]\+$>$
\begin{DoxyCompactList}\small\item\em The deleter type used for views. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\doxymbox{\hyperlink{classgko_1_1array_ab96931be7058db223821fa73bcf24a7d}{array}} () noexcept
\begin{DoxyCompactList}\small\item\em Creates an empty array not tied to any executor. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_a7b0b51262019434e9e4cec51ccec919c}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec) noexcept
\begin{DoxyCompactList}\small\item\em Creates an empty array tied to the specified \doxylink{classgko_1_1Executor}{Executor}. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_a9da78040715432ea1f88ec7b2078c215}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size)
\begin{DoxyCompactList}\small\item\em Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor}. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Deleter\+Type$>$ }\\\doxymbox{\hyperlink{classgko_1_1array_a83e140ae0fa8e62cac38a13b0e5ed16a}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}data, Deleter\+Type deleter)
\begin{DoxyCompactList}\small\item\em Creates an array from existing memory. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_aaf29a7dee071347b3c9f8b73c67473e5}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Creates an array from existing memory. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Random\+Access\+Iterator$>$ }\\\doxymbox{\hyperlink{classgko_1_1array_af989e24d7c9a3e5b97b124a7de9f5ceb}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, Random\+Access\+Iterator begin, Random\+Access\+Iterator end)
\begin{DoxyCompactList}\small\item\em Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor} and initializes it with values. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T$>$ }\\\doxymbox{\hyperlink{classgko_1_1array_aed42096c88f3c6ba799968064232314c}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, std::\+initializer\+\_\+list$<$ T $>$ init\+\_\+list)
\begin{DoxyCompactList}\small\item\em Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor} and initializes it with values. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_a5739509a139efee8361781329cde68a0}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const array \&other)
\begin{DoxyCompactList}\small\item\em Creates a copy of another array on a different executor. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_af1c0803356eb19bc29414ca9e33269d7}{array}} (const array \&other)
\begin{DoxyCompactList}\small\item\em Creates a copy of another array. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_aff509e1fb1484b6f52da44baea6ae690}{array}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, array \&\&other)
\begin{DoxyCompactList}\small\item\em Moves another array to a different executor. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_a15c81560d947cec07e9e35f1878ed24e}{array}} (array \&\&other)
\begin{DoxyCompactList}\small\item\em Moves another array. \end{DoxyCompactList}\item 
array$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}{as\+\_\+view}} ()
\begin{DoxyCompactList}\small\item\em Returns a non-\/owning view of the memory owned by this array. \end{DoxyCompactList}\item 
detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}{as\+\_\+const\+\_\+view}} () const
\begin{DoxyCompactList}\small\item\em Returns a non-\/owning constant view of the memory owned by this array. \end{DoxyCompactList}\item 
array \& \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=}} (const array \&other)
\begin{DoxyCompactList}\small\item\em Copies data from another array or view. \end{DoxyCompactList}\item 
array \& \doxymbox{\hyperlink{classgko_1_1array_a269dec8a0a24895b4dd521036139335d}{operator=}} (array \&\&other)
\begin{DoxyCompactList}\small\item\em Moves data from another array or view. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Other\+Value\+Type$>$ }\\std::\+enable\+\_\+if\+\_\+t$<$!std::\+is\+\_\+same$<$ Value\+Type, Other\+Value\+Type $>$::\+value, array $>$ \& \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=}} (const array$<$ Other\+Value\+Type $>$ \&other)
\begin{DoxyCompactList}\small\item\em Copies and converts data from another array with another data type. \end{DoxyCompactList}\item 
array \& \doxymbox{\hyperlink{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}{operator=}} (const detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&other)
\begin{DoxyCompactList}\small\item\em Copies data from a const\+\_\+array\+\_\+view. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear}} () noexcept
\begin{DoxyCompactList}\small\item\em Deallocates all data used by the array. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size)
\begin{DoxyCompactList}\small\item\em Resizes the array so it is able to hold the specified number of elements. \end{DoxyCompactList}\item 
std::\+vector$<$ \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} $>$ \doxymbox{\hyperlink{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}{copy\+\_\+to\+\_\+host}} () const
\begin{DoxyCompactList}\small\item\em Copies the data into an std::\+vector. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1array_a81458893928d0be780235bea675ced6a}{fill}} (const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} value)
\begin{DoxyCompactList}\small\item\em Fill the array with the given value. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the number of elements in the array. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291}{get\+\_\+num\+\_\+elems}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the number of elements in the array. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1array_a10eab2ea8b6b4efaae84e6a143d61eed}{get\+\_\+data}} () noexcept
\begin{DoxyCompactList}\small\item\em Returns a pointer to the block of memory used to store the elements of the array. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}{get\+\_\+const\+\_\+data}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns a constant pointer to the block of memory used to store the elements of the array. \end{DoxyCompactList}\item 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor}} () const noexcept
\begin{DoxyCompactList}\small\item\em Returns the \doxylink{classgko_1_1Executor}{Executor} associated with the array. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1array_aba67dcaa3c627446ca187c7a35536cd3}{set\+\_\+executor}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec)
\begin{DoxyCompactList}\small\item\em Changes the \doxylink{classgko_1_1Executor}{Executor} of the array, moving the allocated data to the new \doxylink{classgko_1_1Executor}{Executor}. \end{DoxyCompactList}\item 
bool \doxymbox{\hyperlink{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}{is\+\_\+owning}} ()
\begin{DoxyCompactList}\small\item\em Tells whether this array owns its data or not. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static array \doxymbox{\hyperlink{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}{view}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Creates an array from existing memory. \end{DoxyCompactList}\item 
static detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array_a5c223b741d704bdef319279caaf54159}{const\+\_\+view}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} size, const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) array from existing memory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type$>$\newline
class gko::\+array$<$ Value\+Type $>$}
An array is a container which encapsulates fixed-\/sized arrays, stored on the \doxylink{classgko_1_1Executor}{Executor} tied to the array. 

The array stores and transfers its data as {\bfseries{raw}} memory, which means that the constructors of its elements are not called when constructing, copying or moving the array. Thus, the array class is most suitable for storing POD types.


\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & the type of elements stored in the array \\
\hline
\end{DoxyTemplParams}


\label{doc-constructors}
\Hypertarget{classgko_1_1array_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1array_ab96931be7058db223821fa73bcf24a7d}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [1/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_ab96931be7058db223821fa73bcf24a7d} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Creates an empty array not tied to any executor. 

An array without an assigned executor can only be empty. Attempts to change its size (e.\+g. via the resize\+\_\+and\+\_\+reset method) will result in an exception. If such an array is used as the right hand side of an assignment or move assignment expression, the data of the target array will be cleared, but its executor will not be modified.

The executor can later be set by using the set\+\_\+executor method. If an array with no assigned executor is assigned or moved to, it will inherit the executor of the source array. \Hypertarget{classgko_1_1array_a7b0b51262019434e9e4cec51ccec919c}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [2/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a7b0b51262019434e9e4cec51ccec919c} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}, {\ttfamily [noexcept]}}



Creates an empty array tied to the specified \doxylink{classgko_1_1Executor}{Executor}. 


\begin{DoxyParams}{Parameters}
{\em exec} & the \doxylink{classgko_1_1Executor}{Executor} where the array data is allocated \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_a9da78040715432ea1f88ec7b2078c215}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [3/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a9da78040715432ea1f88ec7b2078c215} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor}. 


\begin{DoxyParams}{Parameters}
{\em exec} & the \doxylink{classgko_1_1Executor}{Executor} where the array data will be allocated \\
\hline
{\em size} & the amount of memory (expressed as the number of {\ttfamily \doxylink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} elements) allocated on the \doxylink{classgko_1_1Executor}{Executor} \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_a83e140ae0fa8e62cac38a13b0e5ed16a}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [4/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a83e140ae0fa8e62cac38a13b0e5ed16a} 
template$<$typename Value\+Type$>$ \\
template$<$typename Deleter\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}}]{data}{, }\item[{Deleter\+Type}]{deleter}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates an array from existing memory. 

The memory will be managed by the array, and deallocated using the specified deleter (e.\+g. use std::\+default\+\_\+delete for data allocated with new).


\begin{DoxyTemplParams}{Template Parameters}
{\em Deleter\+Type} & type of the deleter\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & executor where {\ttfamily data} is located \\
\hline
{\em size} & number of elements in {\ttfamily data} \\
\hline
{\em data} & chunk of memory used to create the array \\
\hline
{\em deleter} & the deleter used to free the memory\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxylink{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}{array::\+view()} to create an \doxylink{classgko_1_1array}{array} that does not deallocate memory 

array(std::\+shared\+\_\+ptr$<$cont Executor$>$, size\+\_\+type, value\+\_\+type\texorpdfstring{$\ast$}{*}) to deallocate the memory using \doxylink{classgko_1_1Executor_a0befe43d21c93e199d1620eaae4ccc0c}{Executor::\+free()} method 
\end{DoxySeeAlso}
\Hypertarget{classgko_1_1array_aaf29a7dee071347b3c9f8b73c67473e5}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [5/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_aaf29a7dee071347b3c9f8b73c67473e5} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates an array from existing memory. 

The memory will be managed by the array, and deallocated using the \doxylink{classgko_1_1Executor_a0befe43d21c93e199d1620eaae4ccc0c}{Executor::\+free} method.


\begin{DoxyParams}{Parameters}
{\em exec} & executor where {\ttfamily data} is located \\
\hline
{\em size} & number of elements in {\ttfamily data} \\
\hline
{\em data} & chunk of memory used to create the array \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_af989e24d7c9a3e5b97b124a7de9f5ceb}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [6/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_af989e24d7c9a3e5b97b124a7de9f5ceb} 
template$<$typename Value\+Type$>$ \\
template$<$typename Random\+Access\+Iterator$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{Random\+Access\+Iterator}]{begin}{, }\item[{Random\+Access\+Iterator}]{end}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor} and initializes it with values. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Random\+Access\+Iterator} & type of the iterators\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the \doxylink{classgko_1_1Executor}{Executor} where the array data will be allocated \\
\hline
{\em begin} & start of range of values \\
\hline
{\em end} & end of range of values \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_aed42096c88f3c6ba799968064232314c}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [7/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_aed42096c88f3c6ba799968064232314c} 
template$<$typename Value\+Type$>$ \\
template$<$typename T$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{std::\+initializer\+\_\+list$<$ T $>$}]{init\+\_\+list}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates an array on the specified \doxylink{classgko_1_1Executor}{Executor} and initializes it with values. 


\begin{DoxyTemplParams}{Template Parameters}
{\em T} & type of values used to initialize the array (T has to be implicitly convertible to \doxylink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type})\\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em exec} & the \doxylink{classgko_1_1Executor}{Executor} where the array data will be allocated \\
\hline
{\em init\+\_\+list} & list of values used to initialize the array \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_a5739509a139efee8361781329cde68a0}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [8/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a5739509a139efee8361781329cde68a0} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const array$<$ Value\+Type $>$ \&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates a copy of another array on a different executor. 

This does not invoke the constructors of the elements, instead they are copied as POD types.


\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the new array will be created \\
\hline
{\em other} & the array to copy from \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_af1c0803356eb19bc29414ca9e33269d7}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [9/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_af1c0803356eb19bc29414ca9e33269d7} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{const array$<$ Value\+Type $>$ \&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Creates a copy of another array. 

This does not invoke the constructors of the elements, instead they are copied as POD types.


\begin{DoxyParams}{Parameters}
{\em other} & the array to copy from \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}.

\Hypertarget{classgko_1_1array_aff509e1fb1484b6f52da44baea6ae690}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [10/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_aff509e1fb1484b6f52da44baea6ae690} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{array$<$ Value\+Type $>$ \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Moves another array to a different executor. 

This does not invoke the constructors of the elements, instead they are copied as POD types.


\begin{DoxyParams}{Parameters}
{\em exec} & the executor where the new array will be moved \\
\hline
{\em other} & the array to move \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_a15c81560d947cec07e9e35f1878ed24e}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!array@{array}}
\index{array@{array}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{array()}{array()}\hspace{0.1cm}{\footnotesize\ttfamily [11/11]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a15c81560d947cec07e9e35f1878ed24e} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+array (\begin{DoxyParamCaption}\item[{array$<$ Value\+Type $>$ \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Moves another array. 

This does not invoke the constructors of the elements, instead they are copied as POD types.


\begin{DoxyParams}{Parameters}
{\em other} & the array to move \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}.



\label{doc-func-members}
\Hypertarget{classgko_1_1array_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!as\_const\_view@{as\_const\_view}}
\index{as\_const\_view@{as\_const\_view}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{as\_const\_view()}{as\_const\_view()}}
{\footnotesize\ttfamily \label{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b} 
template$<$typename Value\+Type$>$ \\
detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+as\+\_\+const\+\_\+view (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns a non-\/owning constant view of the memory owned by this array. 

It can only be used until this array gets deleted, cleared or resized. 

References \doxymbox{\hyperlink{classgko_1_1array_a5c223b741d704bdef319279caaf54159}{const\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}{get\+\_\+const\+\_\+data()}}, \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}, and \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}.

\Hypertarget{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!as\_view@{as\_view}}
\index{as\_view@{as\_view}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{as\_view()}{as\_view()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2} 
template$<$typename Value\+Type$>$ \\
array$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+as\+\_\+view (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Returns a non-\/owning view of the memory owned by this array. 

It can only be used until this array gets deleted, cleared or resized. 

References \doxymbox{\hyperlink{classgko_1_1array_a10eab2ea8b6b4efaae84e6a143d61eed}{get\+\_\+data()}}, \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}, \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}, and \doxymbox{\hyperlink{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}{view()}}.

\Hypertarget{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!clear@{clear}}
\index{clear@{clear}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{clear()}{clear()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68} 
template$<$typename Value\+Type$>$ \\
void \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+clear (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Deallocates all data used by the array. 

The array is left in a valid, but empty state, so the same array can be used to allocate new memory. Calls to \doxylink{classgko_1_1array_a10eab2ea8b6b4efaae84e6a143d61eed}{array::\+get\+\_\+data()} will return a {\ttfamily nullptr}. 

Referenced by \doxymbox{\hyperlink{classgko_1_1array_a269dec8a0a24895b4dd521036139335d}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}{operator=()}}, and \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset()}}.

\Hypertarget{classgko_1_1array_a5c223b741d704bdef319279caaf54159}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!const\_view@{const\_view}}
\index{const\_view@{const\_view}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{const\_view()}{const\_view()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a5c223b741d704bdef319279caaf54159} 
template$<$typename Value\+Type$>$ \\
detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+const\+\_\+view (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates a constant (immutable) array from existing memory. 

The array does not take ownership of the memory, and will not deallocate it once it goes out of scope. This array type cannot use the function {\ttfamily \doxylink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset}} since it does not own the data it should resize.


\begin{DoxyParams}{Parameters}
{\em exec} & executor where {\ttfamily data} is located \\
\hline
{\em size} & number of elements in {\ttfamily data} \\
\hline
{\em data} & chunk of memory used to create the array\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an array constructed from {\ttfamily data} 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}{as\+\_\+const\+\_\+view()}}, and \doxymbox{\hyperlink{namespacegko_a5309c321872a54fc9818ed9f5556eef4}{gko::\+make\+\_\+const\+\_\+array\+\_\+view()}}.

\Hypertarget{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!copy\_to\_host@{copy\_to\_host}}
\index{copy\_to\_host@{copy\_to\_host}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{copy\_to\_host()}{copy\_to\_host()}}
{\footnotesize\ttfamily \label{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613} 
template$<$typename Value\+Type$>$ \\
std::\+vector$<$ \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} $>$ \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+copy\+\_\+to\+\_\+host (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Copies the data into an std::\+vector. 

\begin{DoxyReturn}{Returns}
an std::\+vector containing this array\textquotesingle{}s data. 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}, \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}, \doxymbox{\hyperlink{namespacegko_a752922d291cf7c72e3042cc5b367aa60}{gko::\+make\+\_\+array\+\_\+view()}}, and \doxymbox{\hyperlink{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}{view()}}.

\Hypertarget{classgko_1_1array_a81458893928d0be780235bea675ced6a}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!fill@{fill}}
\index{fill@{fill}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{fill()}{fill()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a81458893928d0be780235bea675ced6a} 
template$<$typename Value\+Type$>$ \\
void \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+fill (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}}}]{value}{}\end{DoxyParamCaption})}



Fill the array with the given value. 


\begin{DoxyParams}{Parameters}
{\em value} & the value to be filled \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!get\_const\_data@{get\_const\_data}}
\index{get\_const\_data@{get\_const\_data}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_data()}{get\_const\_data()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a} 
template$<$typename Value\+Type$>$ \\
const \doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+get\+\_\+const\+\_\+data (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a constant pointer to the block of memory used to store the elements of the array. 

\begin{DoxyReturn}{Returns}
a constant pointer to the block of memory used to store the elements of the array 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}{as\+\_\+const\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1strategy__type_a249343543a23e1c50a12373d033904bb}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+strategy\+\_\+type::\+compute\+\_\+ell\+\_\+num\+\_\+stored\+\_\+elements\+\_\+per\+\_\+row()}}, \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1automatical_a97d7160b757fe6d427ba048c349cb034}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+automatical::\+process()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1classical_a2740db9fa954cb7f8f4145a1f87f82a6}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+classical::\+process()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_a0849e0d936dda023474673d7316e73d8}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+process()}}.

\Hypertarget{classgko_1_1array_a10eab2ea8b6b4efaae84e6a143d61eed}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!get\_data@{get\_data}}
\index{get\_data@{get\_data}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_data()}{get\_data()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a10eab2ea8b6b4efaae84e6a143d61eed} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+get\+\_\+data (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns a pointer to the block of memory used to store the elements of the array. 

\begin{DoxyReturn}{Returns}
a pointer to the block of memory used to store the elements of the array 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}{as\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1imbalance__limit_a22b64d0fa749e691b61c15edd9d1c608}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+imbalance\+\_\+limit::\+compute\+\_\+ell\+\_\+num\+\_\+stored\+\_\+elements\+\_\+per\+\_\+row()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_a0849e0d936dda023474673d7316e73d8}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+process()}}.

\Hypertarget{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!get\_executor@{get\_executor}}
\index{get\_executor@{get\_executor}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_executor()}{get\_executor()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7} 
template$<$typename Value\+Type$>$ \\
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+get\+\_\+executor (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the \doxylink{classgko_1_1Executor}{Executor} associated with the array. 

\begin{DoxyReturn}{Returns}
the \doxylink{classgko_1_1Executor}{Executor} associated with the array 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_a15c81560d947cec07e9e35f1878ed24e}{array()}}, \doxymbox{\hyperlink{classgko_1_1array_af1c0803356eb19bc29414ca9e33269d7}{array()}}, \doxymbox{\hyperlink{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}{as\+\_\+const\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}{as\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1strategy__type_ab7b115c95b89badb15eb49fb5974c249}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+strategy\+\_\+type::\+compute\+\_\+hybrid\+\_\+config()}}, \doxymbox{\hyperlink{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}{copy\+\_\+to\+\_\+host()}}, \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1automatical_a97d7160b757fe6d427ba048c349cb034}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+automatical::\+process()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1classical_a2740db9fa954cb7f8f4145a1f87f82a6}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+classical::\+process()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_a0849e0d936dda023474673d7316e73d8}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+process()}}.

\Hypertarget{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!get\_num\_elems@{get\_num\_elems}}
\index{get\_num\_elems@{get\_num\_elems}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_num\_elems()}{get\_num\_elems()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+get\+\_\+num\+\_\+elems (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the number of elements in the array. 

\begin{DoxyReturn}{Returns}
the number of elements in the array 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291}{get\+\_\+num\+\_\+elems()}}, and \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}.



Referenced by \doxymbox{\hyperlink{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291}{get\+\_\+num\+\_\+elems()}}.

\Hypertarget{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!get\_size@{get\_size}}
\index{get\_size@{get\_size}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_size()}{get\_size()}}
{\footnotesize\ttfamily \label{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f} 
template$<$typename Value\+Type$>$ \\
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+get\+\_\+size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Returns the number of elements in the array. 

\begin{DoxyReturn}{Returns}
the number of elements in the array 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_ab0ba2a19c43e58e52d33fae70b17ed9b}{as\+\_\+const\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}{as\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1imbalance__bounded__limit_a85c91fd71f1d7313aefb5629cfc81d57}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+imbalance\+\_\+bounded\+\_\+limit::\+compute\+\_\+ell\+\_\+num\+\_\+stored\+\_\+elements\+\_\+per\+\_\+row()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1imbalance__limit_a22b64d0fa749e691b61c15edd9d1c608}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+imbalance\+\_\+limit::\+compute\+\_\+ell\+\_\+num\+\_\+stored\+\_\+elements\+\_\+per\+\_\+row()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1strategy__type_a249343543a23e1c50a12373d033904bb}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+strategy\+\_\+type::\+compute\+\_\+ell\+\_\+num\+\_\+stored\+\_\+elements\+\_\+per\+\_\+row()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Hybrid_1_1strategy__type_ab7b115c95b89badb15eb49fb5974c249}{gko::\+matrix::\+\+Hybrid$<$ Value\+Type, Index\+Type $>$::\+strategy\+\_\+type::\+compute\+\_\+hybrid\+\_\+config()}}, \doxymbox{\hyperlink{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}{copy\+\_\+to\+\_\+host()}}, \doxymbox{\hyperlink{classgko_1_1array_a9c6a40a8a007af8c6e541fbc030d6291}{get\+\_\+num\+\_\+elems()}}, \doxymbox{\hyperlink{classgko_1_1index__set_acea38519c712e560b25b765649c42ea1}{gko::\+index\+\_\+set$<$ Index\+Type $>$::\+index\+\_\+set()}}, \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1automatical_a97d7160b757fe6d427ba048c349cb034}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+automatical::\+process()}}, \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1classical_a2740db9fa954cb7f8f4145a1f87f82a6}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+classical::\+process()}}, and \doxymbox{\hyperlink{classgko_1_1matrix_1_1Csr_1_1load__balance_a0849e0d936dda023474673d7316e73d8}{gko::\+matrix::\+\+Csr$<$ Value\+Type, Index\+Type $>$::\+load\+\_\+balance::\+process()}}.

\Hypertarget{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!is\_owning@{is\_owning}}
\index{is\_owning@{is\_owning}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{is\_owning()}{is\_owning()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187} 
template$<$typename Value\+Type$>$ \\
bool \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+is\+\_\+owning (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Tells whether this array owns its data or not. 

Views do not own their data and this has multiple implications. They cannot be resized since the data is not owned by the array which stores a view. It is also unclear whether custom deleter types are owning types as they could be a user-\/created view-\/type, therefore only proper array which use the {\ttfamily \doxylink{classgko_1_1array_a7987c3c644cf27ae9d5dd926e5891f17}{default\+\_\+deleter}} are considered owning types.

\begin{DoxyReturn}{Returns}
whether this array can be resized or not. 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}{operator=()}}, and \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset()}}.

\Hypertarget{classgko_1_1array_a269dec8a0a24895b4dd521036139335d}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a269dec8a0a24895b4dd521036139335d} 
template$<$typename Value\+Type$>$ \\
array \& \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{array$<$ Value\+Type $>$ \&\&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Moves data from another array or view. 

Only the pointer and deleter type change, a copy only happens when targeting another executor\textquotesingle{}s data. This means that in the following situation:\+ 
\begin{DoxyCode}{0}
\DoxyCodeLine{\doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af1f713c9e000f5d3f280adbd124df4f5}{gko::array<int>}}\ a;\ \textcolor{comment}{//\ an\ existing\ array\ or\ view}}
\DoxyCodeLine{\doxymbox{\hyperlink{namespacegko_ae749a5ea11a93c1bcc9158d9a6e9fb68af1f713c9e000f5d3f280adbd124df4f5}{gko::array<int>}}\ b;\ \textcolor{comment}{//\ an\ existing\ array\ or\ view}}
\DoxyCodeLine{b\ =\ std::move(a);}

\end{DoxyCode}
 Depending on whether {\ttfamily a} and {\ttfamily b} are array or view, this happens:\+
\begin{DoxyItemize}
\item {\ttfamily a} and {\ttfamily b} are views, {\ttfamily b} becomes the only valid view of {\ttfamily a};
\item {\ttfamily a} and {\ttfamily b} are arrays, {\ttfamily b} becomes the only valid array of {\ttfamily a};
\item {\ttfamily a} is a view and {\ttfamily b} is an array, {\ttfamily b} frees its data and becomes the only valid view of {\ttfamily a} ();
\item {\ttfamily a} is an array and {\ttfamily b} is a view, {\ttfamily b} becomes the only valid array of {\ttfamily a}.
\end{DoxyItemize}

In all the previous cases, {\ttfamily a} becomes empty (e.\+g., a {\ttfamily nullptr}).

This does not invoke the constructors of the elements, instead they are copied as POD types.

The executor of this is preserved. In case this does not have an assigned executor, it will inherit the executor of other.


\begin{DoxyParams}{Parameters}
{\em other} & the array to move data from\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear()}}.

\Hypertarget{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188} 
template$<$typename Value\+Type$>$ \\
array \& \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{const array$<$ Value\+Type $>$ \&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Copies data from another array or view. 

In the case of an array target, the array is resized to match the source\textquotesingle{}s size. In the case of a view target, if the dimensions are not compatible a \doxylink{classgko_1_1OutOfBoundsError}{gko::\+\+Out\+Of\+Bounds\+Error} is thrown.

This does not invoke the constructors of the elements, instead they are copied as POD types.

The executor of this is preserved. In case this does not have an assigned executor, it will inherit the executor of other.


\begin{DoxyParams}{Parameters}
{\em other} & the array to copy from\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear()}}, \doxymbox{\hyperlink{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}{get\+\_\+const\+\_\+data()}}, \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}, \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}, \doxymbox{\hyperlink{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}{is\+\_\+owning()}}, and \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset()}}.

\Hypertarget{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978} 
template$<$typename Value\+Type$>$ \\
template$<$typename Other\+Value\+Type$>$ \\
std::\+enable\+\_\+if\+\_\+t$<$!std::\+is\+\_\+same$<$ Value\+Type, Other\+Value\+Type $>$::\+value, array $>$ \& \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{const array$<$ Other\+Value\+Type $>$ \&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Copies and converts data from another array with another data type. 

In the case of an array target, the array is resized to match the source\textquotesingle{}s size. In the case of a view target, if the dimensions are not compatible a \doxylink{classgko_1_1OutOfBoundsError}{gko::\+\+Out\+Of\+Bounds\+Error} is thrown.

This does not invoke the constructors of the elements, instead they are copied as POD types.

The executor of this is preserved. In case this does not have an assigned executor, it will inherit the executor of other.


\begin{DoxyParams}{Parameters}
{\em other} & the array to copy from \\
\hline
\end{DoxyParams}

\begin{DoxyTemplParams}{Template Parameters}
{\em Other\+Value\+Type} & the value type of {\ttfamily other}\\
\hline
\end{DoxyTemplParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear()}}, \doxymbox{\hyperlink{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}{get\+\_\+const\+\_\+data()}}, \doxymbox{\hyperlink{classgko_1_1array_a169a0f4e9fc1aa81b8e7fef15de57af7}{get\+\_\+executor()}}, \doxymbox{\hyperlink{classgko_1_1array_ad38e4c252d698a4581ffa0833ab98c3f}{get\+\_\+size()}}, \doxymbox{\hyperlink{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}{is\+\_\+owning()}}, and \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset()}}.

\Hypertarget{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!operator=@{operator=}}
\index{operator=@{operator=}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea} 
template$<$typename Value\+Type$>$ \\
array \& \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+operator= (\begin{DoxyParamCaption}\item[{const detail::\+const\+\_\+array\+\_\+view$<$ Value\+Type $>$ \&}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Copies data from a const\+\_\+array\+\_\+view. 

In the case of an array target, the array is resized to match the source\textquotesingle{}s size. In the case of a view target, if the dimensions are not compatible a \doxylink{classgko_1_1OutOfBoundsError}{gko::\+\+Out\+Of\+Bounds\+Error} is thrown.

This does not invoke the constructors of the elements, instead they are copied as POD types.

The executor of this is preserved. In case this does not have an assigned executor, it will inherit the executor of other.


\begin{DoxyParams}{Parameters}
{\em other} & the const\+\_\+array\+\_\+view to copy from\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
this 
\end{DoxyReturn}


References \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear()}}, \doxymbox{\hyperlink{classgko_1_1array_a699ce7bef6d2838c8acd10d04f775e2a}{get\+\_\+const\+\_\+data()}}, \doxymbox{\hyperlink{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}{is\+\_\+owning()}}, and \doxymbox{\hyperlink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset()}}.

\Hypertarget{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!resize\_and\_reset@{resize\_and\_reset}}
\index{resize\_and\_reset@{resize\_and\_reset}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{resize\_and\_reset()}{resize\_and\_reset()}}
{\footnotesize\ttfamily \label{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e} 
template$<$typename Value\+Type$>$ \\
void \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+resize\+\_\+and\+\_\+reset (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Resizes the array so it is able to hold the specified number of elements. 

For a view and other non-\/owning array types, this throws an exception since these types cannot be resized.

All data stored in the array will be lost.

If the array is not assigned an executor, an exception will be thrown.


\begin{DoxyParams}{Parameters}
{\em size} & the amount of memory (expressed as the number of {\ttfamily \doxylink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} elements) allocated on the \doxylink{classgko_1_1Executor}{Executor} \\
\hline
\end{DoxyParams}


References \doxymbox{\hyperlink{classgko_1_1array_a38fcf9307191a64064580fba0e32ef68}{clear()}}, and \doxymbox{\hyperlink{classgko_1_1array_a6fe24edd5e764e99ba724d8c0398b187}{is\+\_\+owning()}}.



Referenced by \doxymbox{\hyperlink{classgko_1_1array_ab9656cf55cdab80a0dbeaa74edc50188}{operator=()}}, \doxymbox{\hyperlink{classgko_1_1array_a09e8debb2e05c90e2703a623c19ce978}{operator=()}}, and \doxymbox{\hyperlink{classgko_1_1array_afa269c52f25fb48fa886fdedfd869bea}{operator=()}}.

\Hypertarget{classgko_1_1array_aba67dcaa3c627446ca187c7a35536cd3}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!set\_executor@{set\_executor}}
\index{set\_executor@{set\_executor}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{set\_executor()}{set\_executor()}}
{\footnotesize\ttfamily \label{classgko_1_1array_aba67dcaa3c627446ca187c7a35536cd3} 
template$<$typename Value\+Type$>$ \\
void \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+set\+\_\+executor (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Changes the \doxylink{classgko_1_1Executor}{Executor} of the array, moving the allocated data to the new \doxylink{classgko_1_1Executor}{Executor}. 


\begin{DoxyParams}{Parameters}
{\em exec} & the \doxylink{classgko_1_1Executor}{Executor} where the data will be moved to \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635}\index{gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}!view@{view}}
\index{view@{view}!gko::array$<$ ValueType $>$@{gko::array$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{view()}{view()}}
{\footnotesize\ttfamily \label{classgko_1_1array_aac2a7c2d59045e56fb751b18712a4635} 
template$<$typename Value\+Type$>$ \\
array \doxymbox{\hyperlink{classgko_1_1array}{gko::\+array}}$<$ Value\+Type $>$::\+view (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{size}{, }\item[{\doxymbox{\hyperlink{classgko_1_1array_a9a8aebb3d68396889cf98ca877808549}{value\+\_\+type}} \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Creates an array from existing memory. 

The array does not take ownership of the memory, and will not deallocate it once it goes out of scope. This array type cannot use the function {\ttfamily \doxylink{classgko_1_1array_a085b8df0daa446f48d14c47d1fa49f9e}{resize\+\_\+and\+\_\+reset}} since it does not own the data it should resize.


\begin{DoxyParams}{Parameters}
{\em exec} & executor where {\ttfamily data} is located \\
\hline
{\em size} & number of elements in {\ttfamily data} \\
\hline
{\em data} & chunk of memory used to create the array\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an array constructed from {\ttfamily data} 
\end{DoxyReturn}


Referenced by \doxymbox{\hyperlink{classgko_1_1array_a95c5260cdbaeac6f1abad5f3e0f9f6f2}{as\+\_\+view()}}, \doxymbox{\hyperlink{classgko_1_1array_ae5a34914d9d54a6be5008162fb0aa613}{copy\+\_\+to\+\_\+host()}}, and \doxymbox{\hyperlink{namespacegko_a752922d291cf7c72e3042cc5b367aa60}{gko::\+make\+\_\+array\+\_\+view()}}.



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