\doxysection{gko::\+experimental::\+distributed::\+Vector\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector}{}\label{classgko_1_1experimental_1_1distributed_1_1Vector}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}


\doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} is a format which explicitly stores (multiple) distributed column vectors in a dense storage format.  




{\ttfamily \+\#include $<$ginkgo/\+core/\+distributed/\+vector.\+hpp$>$}



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


Collaboration diagram for gko::\+experimental::\+distributed::\+Vector\texorpdfstring{$<$}{<} Value\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classgko_1_1experimental_1_1distributed_1_1Vector__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ae6d3d185bc25c21a906f445b42905505}\label{classgko_1_1experimental_1_1distributed_1_1Vector_ae6d3d185bc25c21a906f445b42905505} 
using {\bfseries value\+\_\+type} = Value\+Type
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_aa08d8caac696f7e81d082a746539bf6e}\label{classgko_1_1experimental_1_1distributed_1_1Vector_aa08d8caac696f7e81d082a746539bf6e} 
using {\bfseries absolute\+\_\+type} = \doxymbox{\hyperlink{namespacegko_a107302a750bfa82a2107c77293f791c9}{remove\+\_\+complex}}$<$Vector$>$
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a2fa636a5b005c658af245ae39a5650cc}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a2fa636a5b005c658af245ae39a5650cc} 
using {\bfseries real\+\_\+type} = absolute\+\_\+type
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a96f4300b7aa06d427529d912a5880f3e}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a96f4300b7aa06d427529d912a5880f3e} 
using {\bfseries complex\+\_\+type} = Vector$<$\doxymbox{\hyperlink{namespacegko_a4ad20e5381a84928753efde0b2bc7f85}{to\+\_\+complex}}$<$value\+\_\+type$>$$>$
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a765197fdb26448ac661e6aa33f69222d}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a765197fdb26448ac661e6aa33f69222d} 
using {\bfseries local\+\_\+vector\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1matrix_1_1Dense}{gko::\+matrix::\+\+Dense}}$<$value\+\_\+type$>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnablePolymorphicAssignment}{gko::\+\+Enable\+Polymorphic\+Assignment$<$ Vector$<$ double $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries result\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsection*{Public Types inherited from \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Vector$<$ double $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
using {\bfseries absolute\+\_\+type}
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_adc91ab266a69a9fb6b513a2e31323eac}{read\+\_\+distributed}} (const \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ partition)
\begin{DoxyCompactList}\small\item\em Reads a vector from the \doxylink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data} structure and a global row partition. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a5195b142fa086b50680e18aefe29ab2e}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a5195b142fa086b50680e18aefe29ab2e} 
void {\bfseries read\+\_\+distributed} (const \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ partition)
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ac76ebbb022f6f4185e25c92aa800d136}\label{classgko_1_1experimental_1_1distributed_1_1Vector_ac76ebbb022f6f4185e25c92aa800d136} 
void {\bfseries read\+\_\+distributed} (const \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ partition)
\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a287880ccd4ad788623d3249589b2dc7f}{read\+\_\+distributed}} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ partition)
\begin{DoxyCompactList}\small\item\em Reads a vector from the \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure and a global row partition. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a27fd156bb2ceaa37e7ed0d072e954c84}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a27fd156bb2ceaa37e7ed0d072e954c84} 
void {\bfseries read\+\_\+distributed} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$ partition)
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a06b70b7e01e931b38a1a84a4cb4c88ca}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a06b70b7e01e931b38a1a84a4cb4c88ca} 
void {\bfseries read\+\_\+distributed} (const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ \&data, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}}, \doxymbox{\hyperlink{namespacegko_a16bd14c10900eb804d784908d8aab5ab}{int32}} $>$ $>$ partition)
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a392e898544092f50931a7a19b9b55b49}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a392e898544092f50931a7a19b9b55b49} 
void {\bfseries convert\+\_\+to} (Vector$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$ $>$ \texorpdfstring{$\ast$}{*}result) const override
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a39be62e5ea3f2b6153a14659072eeeac}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a39be62e5ea3f2b6153a14659072eeeac} 
void {\bfseries move\+\_\+to} (Vector$<$ \doxymbox{\hyperlink{namespacegko_aee37f85b217e5e26fe64207d41fa4bac}{next\+\_\+precision}}$<$ Value\+Type $>$ $>$ \texorpdfstring{$\ast$}{*}result) override
\item 
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}{compute\+\_\+absolute}} () const override
\begin{DoxyCompactList}\small\item\em Gets the Absolute\+Lin\+Op. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a7c24911b281d56382a2c280e2cb8019e}{compute\+\_\+absolute\+\_\+inplace}} () override
\begin{DoxyCompactList}\small\item\em Compute absolute inplace on each element. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ complex\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a93cd0c30e4c8493e9022d5542d2aee57}{make\+\_\+complex}} () const
\begin{DoxyCompactList}\small\item\em Creates a complex copy of the original vectors. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a2b5f3cf497e1f2d91b184ce4b8193343}{make\+\_\+complex}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ complex\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Writes a complex copy of the original vectors to given complex vectors. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a3ecafb045e29392b864cae5808e950b9}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a3ecafb045e29392b864cae5808e950b9} 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ {\bfseries get\+\_\+real} () const
\begin{DoxyCompactList}\small\item\em Creates new real vectors and extracts the real part of the original vectors into that. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a7dc76840ffc5b10a41ef0d835fb5ecf3}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a7dc76840ffc5b10a41ef0d835fb5ecf3} 
void {\bfseries get\+\_\+real} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ real\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Extracts the real part of the original vectors into given real vectors. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ab628f642dc2c64d0951b7eb731af464f}\label{classgko_1_1experimental_1_1distributed_1_1Vector_ab628f642dc2c64d0951b7eb731af464f} 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ {\bfseries get\+\_\+imag} () const
\begin{DoxyCompactList}\small\item\em Creates new real vectors and extracts the imaginary part of the original vectors into that. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a9dbe5e69ef085b1a906543e62f1d4702}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a9dbe5e69ef085b1a906543e62f1d4702} 
void {\bfseries get\+\_\+imag} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ real\+\_\+type $>$ result) const
\begin{DoxyCompactList}\small\item\em Extracts the imaginary part of the original vectors into given real vectors. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a4a172e7b6b6088918e0c7f8070d43204}{fill}} (Value\+Type value)
\begin{DoxyCompactList}\small\item\em Fill the distributed vectors with a given value. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_ad5e5752219717ff7360e48b794f86b3e}{scale}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha)
\begin{DoxyCompactList}\small\item\em Scales the vectors with a scalar (aka:\+ BLAS scal). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_abda3edba7d097804468a7bfddd38e70f}{inv\+\_\+scale}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha)
\begin{DoxyCompactList}\small\item\em Scales the vectors with the inverse of a scalar. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_acdafd131787d7c74478000ef8fdd82b8}{add\+\_\+scaled}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b)
\begin{DoxyCompactList}\small\item\em Adds {\ttfamily b} scaled by {\ttfamily alpha} to the vectors (aka:\+ BLAS axpy). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a7ff7ccd5ebf9042bf7840767032551f5}{sub\+\_\+scaled}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ alpha, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b)
\begin{DoxyCompactList}\small\item\em Subtracts {\ttfamily b} scaled by {\ttfamily alpha} from the vectors (aka:\+ BLAS axpy). \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a81adfd6cfe1c585d60d65d95842bcf6a}{compute\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily b} using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aaf7c602e9ef27c7d74a7735286b9ec90}{compute\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily b} using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a72ebeb082d05afea0fb30cfc0aaf3b30}{compute\+\_\+conj\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily conj(b)} using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_afb34c41d7cc90868903aed98a3ff74f9}{compute\+\_\+conj\+\_\+dot}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ b, \doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily conj(b)} using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a7e9df98ba640deae6e9c3a73aff8074d}{compute\+\_\+squared\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the square of the column-\/wise Euclidean ( $L^2$) norm of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a2ee403e1957707f02e1ae4bcfa818ec3}{compute\+\_\+squared\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the square of the column-\/wise Euclidean ( $L^2$) norm of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a1703cac44dc1591cafdd0a576cd55dbd}{compute\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a5e8478fa78a9a9de4ee3a641857416c0}{compute\+\_\+norm2}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a95f68c957368afb25de478336dd3d615}{compute\+\_\+norm1}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this (multi-\/)vector. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_ae49673363b8630674a5a2ce3fc649cc5}{compute\+\_\+norm1}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a0b682993b33f1686d6b81477d2f05a5e}{compute\+\_\+mean}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise mean of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a90beecf68243906d251ac4fe148efd39}{compute\+\_\+mean}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ result, \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ char $>$ \&tmp) const
\begin{DoxyCompactList}\small\item\em Computes the column-\/wise arithmetic mean of this (multi-\/)vector using a global reduction. \end{DoxyCompactList}\item 
value\+\_\+type \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a51e492ab5714013e8d9d3041bdf67143}{at\+\_\+local}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} row, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} col) noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the multi-\/vector. \end{DoxyCompactList}\item 
value\+\_\+type \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a0a7fc0c15ccc227e55a4adc0a244f61a}{at\+\_\+local}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} row, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} col) const noexcept
\item 
Value\+Type \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_ae0624723044ecb3c690a8daf79c5b762}{at\+\_\+local}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} idx) noexcept
\begin{DoxyCompactList}\small\item\em Returns a single element of the multi-\/vector. \end{DoxyCompactList}\item 
Value\+Type \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aebbd31ab961257b915781c71a817ad9a}{at\+\_\+local}} (\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} idx) const noexcept
\item 
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a53719c22da01da00f61703285e4992eb}{get\+\_\+local\+\_\+values}} ()
\begin{DoxyCompactList}\small\item\em Returns a pointer to the array of local values of the multi-\/vector. \end{DoxyCompactList}\item 
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a6f182db5f86018c07d6dc820c5302ce9}{get\+\_\+const\+\_\+local\+\_\+values}} () const
\begin{DoxyCompactList}\small\item\em Returns a pointer to the array of local values of the multi-\/vector.    \end{DoxyCompactList}\item 
const local\+\_\+vector\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_adcb6f24d0faead09c7cef64e8efff86f}{get\+\_\+local\+\_\+vector}} () const
\begin{DoxyCompactList}\small\item\em Direct (read) access to the underlying local local\+\_\+vector\+\_\+type vectors. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ const real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a43b4d0ff148a499ff2ea1ab692ccac93}{create\+\_\+real\+\_\+view}} () const
\begin{DoxyCompactList}\small\item\em Create a real view of the (potentially) complex original multi-\/vector. \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a2c9bbab2a7cacb50dc65b76f75bce8db}{create\+\_\+real\+\_\+view}} ()
\begin{DoxyCompactList}\small\item\em Create a real view of the (potentially) complex original multi-\/vector.    \end{DoxyCompactList}\item 
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aac78e04ed1fadd45b82fc627c97e8110}{create\+\_\+submatrix}} (\doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} rows, \doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}} columns, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ global\+\_\+size)
\begin{DoxyCompactList}\small\item\em Creates a view of a submatrix of this vector. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a06cc70a97b006935b68ac52d5e5757f7}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a06cc70a97b006935b68ac52d5e5757f7} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries get\+\_\+stride} () const noexcept
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1EnableLinOp}{gko::\+\+Enable\+Lin\+Op$<$ Vector$<$ double $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
const Vector$<$ double $>$ \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$<$ Vector$<$ double $>$ $>$}}}
\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_1EnableAbsoluteComputation}{gko::\+\+Enable\+Absolute\+Computation$<$ remove\+\_\+complex$<$ Vector$<$ double $>$ $>$ $>$}}}
\begin{DoxyCompactItemize}
\item 
std::\+unique\+\_\+ptr$<$ \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$ \doxymbox{\hyperlink{classgko_1_1EnableAbsoluteComputation_a4cf4eedb2090f486bdef0a8717142b7c}{compute\+\_\+absolute\+\_\+linop}} () const override
\begin{DoxyCompactList}\small\item\em Gets the absolute \doxylink{classgko_1_1LinOp}{Lin\+Op}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1DistributedBase}{gko::\+experimental::\+distributed::\+\+Distributed\+Base}}}
\begin{DoxyCompactItemize}
\item 
{\bfseries Distributed\+Base} (const Distributed\+Base \&other)=default
\item 
{\bfseries Distributed\+Base} (Distributed\+Base \&\&other)=default
\item 
Distributed\+Base \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1DistributedBase_a1a860e47a3b6baf2c2d9126281d89904}{operator=}} (const Distributed\+Base \&)
\begin{DoxyCompactList}\small\item\em Copy assignment that doesn\textquotesingle{}t change the used \doxylink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}. \end{DoxyCompactList}\item 
Distributed\+Base \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1DistributedBase_a327ee18a0d1ac45d2cc9c5fc93e7dd33}{operator=}} (Distributed\+Base \&\&) noexcept
\begin{DoxyCompactList}\small\item\em Move assignment that doesn\textquotesingle{}t change the used \doxylink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1DistributedBase_ae9bcc14eeaadfcb95c29a931eb1856c4}{get\+\_\+communicator}} () const
\begin{DoxyCompactList}\small\item\em Access the used \doxylink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a4fb7a6f4d348d9d90b0b810783d3a881}{create\+\_\+with\+\_\+config\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector $>$ other)
\begin{DoxyCompactList}\small\item\em Creates a distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same size and stride as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_adfbc64400fc2c689b649a7bef1da272c}{create\+\_\+with\+\_\+type\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector $>$ other, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec)
\begin{DoxyCompactList}\small\item\em Creates an empty \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same type as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}, but on a different executor. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a4b4a204a7aec74a9b7b3e0c16a6e861f}{create\+\_\+with\+\_\+type\+\_\+of}} (\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector $>$ other, std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&global\+\_\+size, const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&local\+\_\+size, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em Creates an \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same type as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}, but on a different executor and with a different size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a1125a62c4ae6ededd1c77029eb0df235}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ global\+\_\+size, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ local\+\_\+size, \doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} stride)
\begin{DoxyCompactList}\small\item\em Creates an empty distributed vector with a specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a3cfb7aeef8d8cb4ce2f1099659d77efd}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ global\+\_\+size=\{\}, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ local\+\_\+size=\{\})
\begin{DoxyCompactList}\small\item\em Creates an empty distributed vector with a specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a9b2acaf039918d545194fc6afd6dffe9}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ global\+\_\+size, std::\+unique\+\_\+ptr$<$ local\+\_\+vector\+\_\+type $>$ local\+\_\+vector)
\begin{DoxyCompactList}\small\item\em Creates a distributed vector from local vectors with a specified size. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_aef6e2c923e595be31980d00101a35658}{create}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, std::\+unique\+\_\+ptr$<$ local\+\_\+vector\+\_\+type $>$ local\+\_\+vector)
\begin{DoxyCompactList}\small\item\em Creates a distributed vector from local vectors. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a3f1392ddb35db1b66f425f9150b31a60}{create\+\_\+const}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ global\+\_\+size, std::\+unique\+\_\+ptr$<$ const local\+\_\+vector\+\_\+type $>$ local\+\_\+vector)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} from a constant local vector. \end{DoxyCompactList}\item 
static std::\+unique\+\_\+ptr$<$ const Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a906d935e7210712127823a0b95d96490}{create\+\_\+const}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, \doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}} comm, std::\+unique\+\_\+ptr$<$ const local\+\_\+vector\+\_\+type $>$ local\+\_\+vector)
\begin{DoxyCompactList}\small\item\em Creates a constant (immutable) distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} from a constant local vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ad1a370e352e35b018f6a10cc5e88d9e3}\label{classgko_1_1experimental_1_1distributed_1_1Vector_ad1a370e352e35b018f6a10cc5e88d9e3} 
class {\bfseries Enable\+Polymorphic\+Object$<$ Vector, Lin\+Op $>$}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_aeff839aab43e6ecd0d2319a5730c71e8}\label{classgko_1_1experimental_1_1distributed_1_1Vector_aeff839aab43e6ecd0d2319a5730c71e8} 
class {\bfseries Vector$<$ to\+\_\+complex$<$ Value\+Type $>$ $>$}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a53d32af9ee3cd436bce9820b4f5804f2}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a53d32af9ee3cd436bce9820b4f5804f2} 
class {\bfseries Vector$<$ remove\+\_\+complex$<$ Value\+Type $>$ $>$}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a385b844382803247279607665bd09aee}\label{classgko_1_1experimental_1_1distributed_1_1Vector_a385b844382803247279607665bd09aee} 
class {\bfseries Vector$<$ previous\+\_\+precision$<$ Value\+Type $>$ $>$}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Value\+Type = double$>$\newline
class gko::\+experimental::\+distributed::\+\+Vector$<$ Value\+Type $>$}
\doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} is a format which explicitly stores (multiple) distributed column vectors in a dense storage format. 

The (multi-\/)vector is distributed by row, which is described by a \begin{DoxySeeAlso}{See also}
\doxylink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}. The local vectors are stored using the 

Dense format. The vector should be filled using the \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector_adc91ab266a69a9fb6b513a2e31323eac}{read\+\_\+distributed} method, e.\+g. 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{auto}\ part\ =\ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition_ad17d1164a99bca5df2d2ec0eb5d79c2f}{Partition<...>::build\_from\_mapping}}(...);}
\DoxyCodeLine{\textcolor{keyword}{auto}\ vector\ =\ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector_a1125a62c4ae6ededd1c77029eb0df235}{Vector<...>::create}}(exec,\ comm);}
\DoxyCodeLine{vector-\/>read\_distributed(matrix\_data,\ part);}

\end{DoxyCode}
 Using this approach the size of the global vectors, \doxylink{namespacegko_ae3e355a655feea026a7c46814d37a9c9}{as} well \doxylink{namespacegko_ae3e355a655feea026a7c46814d37a9c9}{as} the size of the local vectors, will be automatically inferred. It is possible to \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector_a1125a62c4ae6ededd1c77029eb0df235}{create} a vector with specified global and local sizes and \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector_a4a172e7b6b6088918e0c7f8070d43204}{fill} the local vectors using the \doxylink{namespacegko_1_1accessor}{accessor} \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector_adcb6f24d0faead09c7cef64e8efff86f}{get\+\_\+local\+\_\+vector}.
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
Operations between two vectors (axpy, dot product, etc.) are only valid if both vectors where created using the same partition.
\end{DoxyNote}

\begin{DoxyTemplParams}{Template Parameters}
{\em Value\+Type} & The precision of vector elements. \\
\hline
\end{DoxyTemplParams}


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



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


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





\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ae0624723044ecb3c690a8daf79c5b762}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!at\_local@{at\_local}}
\index{at\_local@{at\_local}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at\_local()}{at\_local()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_ae0624723044ecb3c690a8daf79c5b762} 
template$<$typename Value\+Type = double$>$ \\
Value\+Type \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+at\+\_\+local (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{idx}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}



Returns a single element of the multi-\/vector. 

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


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





\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a51e492ab5714013e8d9d3041bdf67143}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!at\_local@{at\_local}}
\index{at\_local@{at\_local}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{at\_local()}{at\_local()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a51e492ab5714013e8d9d3041bdf67143} 
template$<$typename Value\+Type = double$>$ \\
value\+\_\+type \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+at\+\_\+local (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{row}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{col}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}



Returns a single element of the multi-\/vector. 


\begin{DoxyParams}{Parameters}
{\em row} & the local row of the requested element \\
\hline
{\em col} & the local column of the requested element\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
the method has to be called on the same \doxylink{classgko_1_1Executor}{Executor} the multi-\/vector is stored at (e.\+g. trying to call this method on a GPU multi-\/vector from the OMP results in a runtime error) 
\end{DoxyNote}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!compute\_absolute@{compute\_absolute}}
\index{compute\_absolute@{compute\_absolute}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute()}{compute\_absolute()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_aa3de1addef14239271e4f360c1f046fb} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ absolute\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+compute\+\_\+absolute (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Gets the Absolute\+Lin\+Op. 

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


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

\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a7c24911b281d56382a2c280e2cb8019e}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!compute\_absolute\_inplace@{compute\_absolute\_inplace}}
\index{compute\_absolute\_inplace@{compute\_absolute\_inplace}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{compute\_absolute\_inplace()}{compute\_absolute\_inplace()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a7c24911b281d56382a2c280e2cb8019e} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+compute\+\_\+absolute\+\_\+inplace (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Compute absolute inplace on each element. 



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

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



Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily conj(b)} using a global reduction. 


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



Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily conj(b)} using a global reduction. 


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



Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily b} using a global reduction. 


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



Computes the column-\/wise dot product of this (multi-\/)vector and {\ttfamily b} using a global reduction. 


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



Computes the column-\/wise mean of this (multi-\/)vector using a global reduction. 


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



Computes the column-\/wise arithmetic mean of this (multi-\/)vector using a global reduction. 


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



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


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



Computes the column-\/wise (L\texorpdfstring{$^\wedge$}{\string^}1) norm of this (multi-\/)vector using a global reduction. 


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



Computes the Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this (multi-\/)vector using a global reduction. 


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



Computes the Euclidean (L\texorpdfstring{$^\wedge$}{\string^}2) norm of this (multi-\/)vector using a global reduction. 


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



Computes the square of the column-\/wise Euclidean ( $L^2$) norm of this (multi-\/)vector using a global reduction. 


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



Computes the square of the column-\/wise Euclidean ( $L^2$) norm of this (multi-\/)vector using a global reduction. 


\begin{DoxyParams}{Parameters}
{\em result} & a Dense row vector, used to store the norm (the number of columns in the vector must match the number of columns of this) \\
\hline
{\em tmp} & the temporary storage to use for partial sums during the reduction computation. It may be resized and/\+or reset to the correct executor. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a1125a62c4ae6ededd1c77029eb0df235}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a1125a62c4ae6ededd1c77029eb0df235} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{global\+\_\+size}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{local\+\_\+size}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an empty distributed vector with a specified size. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with vector \\
\hline
{\em comm} & Communicator associated with vector \\
\hline
{\em global\+\_\+size} & Global size of the vector \\
\hline
{\em local\+\_\+size} & Processor-\/local size of the vector \\
\hline
{\em stride} & Stride of the local vector.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a9b2acaf039918d545194fc6afd6dffe9}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a9b2acaf039918d545194fc6afd6dffe9} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{global\+\_\+size}{, }\item[{std::\+unique\+\_\+ptr$<$ local\+\_\+vector\+\_\+type $>$}]{local\+\_\+vector}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a distributed vector from local vectors with a specified size. 

\begin{DoxyNote}{Note}
The data form the local\+\_\+vector will be moved into the new distributed vector. You could either move in a std::\+unique\+\_\+ptr directly, copy a local vector with \doxylink{namespacegko_aa194e34282452493231ca7b01ffb5e64}{gko::\+clone}, or create a unique non-\/owning view of a given local vector with \doxylink{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02}{gko::\+make\+\_\+dense\+\_\+view}.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with this vector \\
\hline
{\em comm} & Communicator associated with this vector \\
\hline
{\em global\+\_\+size} & The global size of the vector \\
\hline
{\em local\+\_\+vector} & The underlying local vector, the data will be moved into this\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a3cfb7aeef8d8cb4ce2f1099659d77efd}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a3cfb7aeef8d8cb4ce2f1099659d77efd} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{global\+\_\+size}{ = {\ttfamily \{\}}, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{local\+\_\+size}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an empty distributed vector with a specified size. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with vector \\
\hline
{\em comm} & Communicator associated with vector \\
\hline
{\em global\+\_\+size} & Global size of the vector \\
\hline
{\em local\+\_\+size} & Processor-\/local size of the vector, uses local\+\_\+size\+[1]\+ as the stride\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_aef6e2c923e595be31980d00101a35658}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create@{create}}
\index{create@{create}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create()}{create()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_aef6e2c923e595be31980d00101a35658} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{std::\+unique\+\_\+ptr$<$ local\+\_\+vector\+\_\+type $>$}]{local\+\_\+vector}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a distributed vector from local vectors. 

The global size will be deduced from the local sizes, which will incur a collective communication.

\begin{DoxyNote}{Note}
The data form the local\+\_\+vector will be moved into the new distributed vector. You could either move in a std::\+unique\+\_\+ptr directly, copy a local vector with \doxylink{namespacegko_aa194e34282452493231ca7b01ffb5e64}{gko::\+clone}, or create a unique non-\/owning view of a given local vector with \doxylink{namespacegko_a6d2de0c8ecbe3736e7d201e6a372be02}{gko::\+make\+\_\+dense\+\_\+view}.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with this vector \\
\hline
{\em comm} & Communicator associated with this vector \\
\hline
{\em local\+\_\+vector} & The underlying local vector, the data will be moved into this.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a3f1392ddb35db1b66f425f9150b31a60}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a3f1392ddb35db1b66f425f9150b31a60} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ const Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+const (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{global\+\_\+size}{, }\item[{std::\+unique\+\_\+ptr$<$ const local\+\_\+vector\+\_\+type $>$}]{local\+\_\+vector}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} from a constant local vector. 


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with this vector \\
\hline
{\em comm} & Communicator associated with this vector \\
\hline
{\em global\+\_\+size} & The global size of the vector \\
\hline
{\em local\+\_\+vector} & The underlying local vector, of which a view is created\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a906d935e7210712127823a0b95d96490}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_const@{create\_const}}
\index{create\_const@{create\_const}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_const()}{create\_const()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a906d935e7210712127823a0b95d96490} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ const Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+const (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{\doxymbox{\hyperlink{classgko_1_1experimental_1_1mpi_1_1communicator}{mpi::\+communicator}}}]{comm}{, }\item[{std::\+unique\+\_\+ptr$<$ const local\+\_\+vector\+\_\+type $>$}]{local\+\_\+vector}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a constant (immutable) distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} from a constant local vector. 

The global size will be deduced from the local sizes, which will incur a collective communication.


\begin{DoxyParams}{Parameters}
{\em exec} & \doxylink{classgko_1_1Executor}{Executor} associated with this vector \\
\hline
{\em comm} & Communicator associated with this vector \\
\hline
{\em local\+\_\+vector} & The underlying local vector, of which a view is created\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A smart pointer to the newly created vector. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a2c9bbab2a7cacb50dc65b76f75bce8db}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_real\_view@{create\_real\_view}}
\index{create\_real\_view@{create\_real\_view}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_real\_view()}{create\_real\_view()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a2c9bbab2a7cacb50dc65b76f75bce8db} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ real\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+real\+\_\+view (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



Create a real view of the (potentially) complex original multi-\/vector.    

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



Create a real view of the (potentially) complex original multi-\/vector. 

If the original vector is real, nothing changes. If the original vector is complex, the result is created by viewing the complex vector with as real with a reinterpret\+\_\+cast with twice the number of columns and double the stride. \Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_aac78e04ed1fadd45b82fc627c97e8110}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_submatrix@{create\_submatrix}}
\index{create\_submatrix@{create\_submatrix}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_submatrix()}{create\_submatrix()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_aac78e04ed1fadd45b82fc627c97e8110} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+submatrix (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}}}]{rows}{, }\item[{\doxymbox{\hyperlink{structgko_1_1local__span}{local\+\_\+span}}}]{columns}{, }\item[{\doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$}]{global\+\_\+size}{}\end{DoxyParamCaption})}



Creates a view of a submatrix of this vector. 


\begin{DoxyParams}{Parameters}
{\em rows} & The local rows of the submatrix \\
\hline
{\em columns} & The local columns of the submatrix \\
\hline
{\em global\+\_\+size} & The global size of the submatrix\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A view of a submatrix. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a4fb7a6f4d348d9d90b0b810783d3a881}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_with\_config\_of@{create\_with\_config\_of}}
\index{create\_with\_config\_of@{create\_with\_config\_of}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_config\_of()}{create\_with\_config\_of()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a4fb7a6f4d348d9d90b0b810783d3a881} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+config\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector$<$ Value\+Type $>$ $>$}]{other}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates a distributed \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same size and stride as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}. 


\begin{DoxyParams}{Parameters}
{\em other} & The other vector whose configuration needs to copied. \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_adfbc64400fc2c689b649a7bef1da272c}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_with\_type\_of@{create\_with\_type\_of}}
\index{create\_with\_type\_of@{create\_with\_type\_of}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_type\_of()}{create\_with\_type\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_adfbc64400fc2c689b649a7bef1da272c} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+type\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector$<$ Value\+Type $>$ $>$}]{other}{, }\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an empty \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same type as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}, but on a different executor. 


\begin{DoxyParams}{Parameters}
{\em other} & The other multi-\/vector whose type we target. \\
\hline
{\em exec} & The executor of the new multi-\/vector.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The new multi-\/vector uses the same communicator as other.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
an empty \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the type of other. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a4b4a204a7aec74a9b7b3e0c16a6e861f}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!create\_with\_type\_of@{create\_with\_type\_of}}
\index{create\_with\_type\_of@{create\_with\_type\_of}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{create\_with\_type\_of()}{create\_with\_type\_of()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a4b4a204a7aec74a9b7b3e0c16a6e861f} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ Vector $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+create\+\_\+with\+\_\+type\+\_\+of (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const Vector$<$ Value\+Type $>$ $>$}]{other}{, }\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{global\+\_\+size}{, }\item[{const \doxymbox{\hyperlink{structgko_1_1dim}{dim}}$<$ 2 $>$ \&}]{local\+\_\+size}{, }\item[{\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}}}]{stride}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Creates an \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} with the same type as another \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector}, but on a different executor and with a different size. 


\begin{DoxyParams}{Parameters}
{\em other} & The other multi-\/vector whose type we target. \\
\hline
{\em exec} & The executor of the new multi-\/vector. \\
\hline
{\em global\+\_\+size} & The global size of the multi-\/vector. \\
\hline
{\em local\+\_\+size} & The local size of the multi-\/vector. \\
\hline
{\em stride} & The stride of the new multi-\/vector.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a \doxylink{classgko_1_1experimental_1_1distributed_1_1Vector}{Vector} of specified size with the type of other. 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a4a172e7b6b6088918e0c7f8070d43204}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!fill@{fill}}
\index{fill@{fill}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{fill()}{fill()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a4a172e7b6b6088918e0c7f8070d43204} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+fill (\begin{DoxyParamCaption}\item[{Value\+Type}]{value}{}\end{DoxyParamCaption})}



Fill the distributed vectors with a given value. 


\begin{DoxyParams}{Parameters}
{\em value} & the value to be filled \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a6f182db5f86018c07d6dc820c5302ce9}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!get\_const\_local\_values@{get\_const\_local\_values}}
\index{get\_const\_local\_values@{get\_const\_local\_values}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_const\_local\_values()}{get\_const\_local\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a6f182db5f86018c07d6dc820c5302ce9} 
template$<$typename Value\+Type = double$>$ \\
const value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+get\+\_\+const\+\_\+local\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Returns a pointer to the array of local values of the multi-\/vector.    

\begin{DoxyReturn}{Returns}
the pointer to the array of local values   
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This is the constant version of the function, which can be significantly more memory efficient than the non-\/constant version, so always prefer this version. 
\end{DoxyNote}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a53719c22da01da00f61703285e4992eb}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!get\_local\_values@{get\_local\_values}}
\index{get\_local\_values@{get\_local\_values}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_local\_values()}{get\_local\_values()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a53719c22da01da00f61703285e4992eb} 
template$<$typename Value\+Type = double$>$ \\
value\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+get\+\_\+local\+\_\+values (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



Returns a pointer to the array of local values of the multi-\/vector. 

\begin{DoxyReturn}{Returns}
the pointer to the array of local values 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_adcb6f24d0faead09c7cef64e8efff86f}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!get\_local\_vector@{get\_local\_vector}}
\index{get\_local\_vector@{get\_local\_vector}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{get\_local\_vector()}{get\_local\_vector()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_adcb6f24d0faead09c7cef64e8efff86f} 
template$<$typename Value\+Type = double$>$ \\
const local\+\_\+vector\+\_\+type \texorpdfstring{$\ast$}{*} \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+get\+\_\+local\+\_\+vector (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Direct (read) access to the underlying local local\+\_\+vector\+\_\+type vectors. 

\begin{DoxyReturn}{Returns}
a constant pointer to the underlying local\+\_\+vector\+\_\+type vectors 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_abda3edba7d097804468a7bfddd38e70f}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!inv\_scale@{inv\_scale}}
\index{inv\_scale@{inv\_scale}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{inv\_scale()}{inv\_scale()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_abda3edba7d097804468a7bfddd38e70f} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+inv\+\_\+scale (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{}\end{DoxyParamCaption})}



Scales the vectors with the inverse of a scalar. 


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 Dense matrix, the all vectors are scaled by 1 /\+ alpha. If it is a Dense row vector of values, then i-\/th column vector is scaled with the inverse of the i-\/th element of alpha (the number of columns of alpha has to match the number of vectors). \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a93cd0c30e4c8493e9022d5542d2aee57}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!make\_complex@{make\_complex}}
\index{make\_complex@{make\_complex}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{make\_complex()}{make\_complex()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a93cd0c30e4c8493e9022d5542d2aee57} 
template$<$typename Value\+Type = double$>$ \\
std::\+unique\+\_\+ptr$<$ complex\+\_\+type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+make\+\_\+complex (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



Creates a complex copy of the original vectors. 

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



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

If the original vectors were real, the imaginary part of the result will be zero. \Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_adc91ab266a69a9fb6b513a2e31323eac}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!read\_distributed@{read\_distributed}}
\index{read\_distributed@{read\_distributed}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{read\_distributed()}{read\_distributed()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_adc91ab266a69a9fb6b513a2e31323eac} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+read\+\_\+distributed (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&}]{data}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{partition}{}\end{DoxyParamCaption})}



Reads a vector from the \doxylink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data} structure and a global row partition. 

The number of rows of the matrix data is ignored, only its number of columns is relevant. Both the number of local and global rows are inferred from the row partition.

\begin{DoxyNote}{Note}
The matrix data can contain entries for rows other than those owned by the process. Entries for those rows are discarded.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em data} & The \doxylink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data} structure \\
\hline
{\em partition} & The global row partition \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a287880ccd4ad788623d3249589b2dc7f}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!read\_distributed@{read\_distributed}}
\index{read\_distributed@{read\_distributed}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{read\_distributed()}{read\_distributed()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a287880ccd4ad788623d3249589b2dc7f} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+read\+\_\+distributed (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{structgko_1_1matrix__data}{matrix\+\_\+data}}$<$ Value\+Type, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ \&}]{data}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$ \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}}, \doxymbox{\hyperlink{namespacegko_a913ec044df518649fa5a891f8dffae34}{int64}} $>$ $>$}]{partition}{}\end{DoxyParamCaption})}



Reads a vector from the \doxylink{structgko_1_1matrix__data}{matrix\+\_\+data} structure and a global row partition. 

See @read\+\_\+distributed

\begin{DoxyNote}{Note}
For efficiency it is advised to use the \doxylink{classgko_1_1device__matrix__data}{device\+\_\+matrix\+\_\+data} overload. 
\end{DoxyNote}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_ad5e5752219717ff7360e48b794f86b3e}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!scale@{scale}}
\index{scale@{scale}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{scale()}{scale()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_ad5e5752219717ff7360e48b794f86b3e} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+scale (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{}\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 Dense matrx, the all vectors are scaled by alpha. If it is a Dense row vector of values, then i-\/th column vector is scaled with the i-\/th element of alpha (the number of columns of alpha has to match the number of vectors). \\
\hline
\end{DoxyParams}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1Vector_a7ff7ccd5ebf9042bf7840767032551f5}\index{gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}!sub\_scaled@{sub\_scaled}}
\index{sub\_scaled@{sub\_scaled}!gko::experimental::distributed::Vector$<$ ValueType $>$@{gko::experimental::distributed::Vector$<$ ValueType $>$}}
\doxysubsubsection{\texorpdfstring{sub\_scaled()}{sub\_scaled()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1Vector_a7ff7ccd5ebf9042bf7840767032551f5} 
template$<$typename Value\+Type = double$>$ \\
void \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Vector}{gko::\+experimental::\+distributed::\+\+Vector}}$<$ Value\+Type $>$::\+sub\+\_\+scaled (\begin{DoxyParamCaption}\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{alpha}{, }\item[{\doxymbox{\hyperlink{classgko_1_1ptr__param}{ptr\+\_\+param}}$<$ const \doxymbox{\hyperlink{classgko_1_1LinOp}{Lin\+Op}} $>$}]{b}{}\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em alpha} & If alpha is 1x1 Dense matrix, the all vectors of b are scaled by alpha. If it is a Dense row vector of values, then i-\/th column vector of b is scaled with the i-\/th element of alpha (the number of c \\
\hline
{\em b} & a (multi-\/)vector of the same dimension as this \\
\hline
\end{DoxyParams}


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