\doxysection{gko::\+experimental::\+distributed::\+index\+\_\+map\texorpdfstring{$<$}{<} Local\+Index\+Type, Global\+Index\+Type \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map}{}\label{classgko_1_1experimental_1_1distributed_1_1index__map}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}


This class defines mappings between global and local indices.  




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



Inheritance diagram for gko::\+experimental::\+distributed::\+index\+\_\+map\texorpdfstring{$<$}{<} Local\+Index\+Type, Global\+Index\+Type \texorpdfstring{$>$}{>}:\+
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=258pt]{classgko_1_1experimental_1_1distributed_1_1index__map__inherit__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_aa31db12aed0168aa9f7e843b6c7f78d8}\label{classgko_1_1experimental_1_1distributed_1_1index__map_aa31db12aed0168aa9f7e843b6c7f78d8} 
using {\bfseries partition\+\_\+type} = \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1Partition}{Partition}}$<$Local\+Index\+Type, Global\+Index\+Type$>$
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Local\+Index\+Type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a89ea973e18352d2e6689f61d9297b478}{map\+\_\+to\+\_\+local}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \&global\+\_\+ids, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947b}{index\+\_\+space}} index\+\_\+space\+\_\+v) const
\begin{DoxyCompactList}\small\item\em Maps global indices to local indices. \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_afda7597a392bd9c404142e106860d4d1}{map\+\_\+to\+\_\+global}} (const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Local\+Index\+Type $>$ \&local\+\_\+idxs, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947b}{index\+\_\+space}} index\+\_\+space\+\_\+v) const
\begin{DoxyCompactList}\small\item\em Maps local indices to global indices. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a78a1f61d47a1d4d750bda99542dba85f}\label{classgko_1_1experimental_1_1distributed_1_1index__map_a78a1f61d47a1d4d750bda99542dba85f} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries get\+\_\+global\+\_\+size} () const
\begin{DoxyCompactList}\small\item\em get size of the global index space \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a6fd6741d44db285fa6e37b736d2e4f75}\label{classgko_1_1experimental_1_1distributed_1_1index__map_a6fd6741d44db285fa6e37b736d2e4f75} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries get\+\_\+local\+\_\+size} () const
\begin{DoxyCompactList}\small\item\em get size of \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947baf5ddaf0ca7929578b408c909429f68f2}{index\+\_\+space::\+local} \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_aaf514d3c047602e2a1a2419439be2c8b}\label{classgko_1_1experimental_1_1distributed_1_1index__map_aaf514d3c047602e2a1a2419439be2c8b} 
\doxymbox{\hyperlink{namespacegko_a9579c98b1d85bf4ad02d7cb5b96fc771}{size\+\_\+type}} {\bfseries get\+\_\+non\+\_\+local\+\_\+size} () const
\begin{DoxyCompactList}\small\item\em get size of \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947ba9182221a9ec0a65321d5a206c9c174ca}{index\+\_\+space::\+non\+\_\+local} \end{DoxyCompactList}\item 
\doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}{index\+\_\+map}} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec, std::\+shared\+\_\+ptr$<$ const partition\+\_\+type $>$ partition, \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{comm\+\_\+index\+\_\+type}} rank, const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \&recv\+\_\+connections)
\begin{DoxyCompactList}\small\item\em Creates a new index map. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_abede5c53ae9431bcd0b90d908e18f81b}\label{classgko_1_1experimental_1_1distributed_1_1index__map_abede5c53ae9431bcd0b90d908e18f81b} 
{\bfseries index\+\_\+map} (std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ exec)
\begin{DoxyCompactList}\small\item\em Creates an empty index map. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{structgko_1_1segmented__array}{segmented\+\_\+array}}$<$ Global\+Index\+Type $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_ada2c797d87e98769728eafa30a2358b1}{get\+\_\+remote\+\_\+global\+\_\+idxs}} () const
\begin{DoxyCompactList}\small\item\em get the index set $R_k$ for this rank. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{structgko_1_1segmented__array}{segmented\+\_\+array}}$<$ Local\+Index\+Type $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_ade6d462c2a724d3849ee4b06d5293453}{get\+\_\+remote\+\_\+local\+\_\+idxs}} () const
\begin{DoxyCompactList}\small\item\em get the index set $R_k$, but mapped to their respective local index space. \end{DoxyCompactList}\item 
const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{comm\+\_\+index\+\_\+type}} $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a4b88d46f4a3008ec7c7bba74be1ec6c1}{get\+\_\+remote\+\_\+target\+\_\+ids}} () const
\begin{DoxyCompactList}\small\item\em get the rank ids which contain indices accessed by this rank. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_ae221fd76f25d0338844d26a1073be917}\label{classgko_1_1experimental_1_1distributed_1_1index__map_ae221fd76f25d0338844d26a1073be917} 
std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$ {\bfseries get\+\_\+executor} () const
\begin{DoxyCompactList}\small\item\em get the associated executor. \end{DoxyCompactList}\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a48f2116111bf7c77f05f9051548bc200}\label{classgko_1_1experimental_1_1distributed_1_1index__map_a48f2116111bf7c77f05f9051548bc200} 
{\bfseries index\+\_\+map} (const index\+\_\+map \&other)
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a448ccd9a5e59ea257e24b7932e9e4222}\label{classgko_1_1experimental_1_1distributed_1_1index__map_a448ccd9a5e59ea257e24b7932e9e4222} 
{\bfseries index\+\_\+map} (index\+\_\+map \&\&other) noexcept
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_aa01a1af99b593aa3e7e445639712c809}\label{classgko_1_1experimental_1_1distributed_1_1index__map_aa01a1af99b593aa3e7e445639712c809} 
\doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}{index\+\_\+map}} \& {\bfseries operator=} (const \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}{index\+\_\+map}} \&other)
\item 
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a62b1604c534a907cde9cb32d9dec9c70}\label{classgko_1_1experimental_1_1distributed_1_1index__map_a62b1604c534a907cde9cb32d9dec9c70} 
\doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}{index\+\_\+map}} \& {\bfseries operator=} (\doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}{index\+\_\+map}} \&\&other)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$\newline
class gko::\+experimental::\+distributed::\+index\+\_\+map$<$ Local\+Index\+Type, Global\+Index\+Type $>$}
This class defines mappings between global and local indices. 

Given an index space $I = [0, \dots, N)$ that is partitioned into $P$ disjoint subsets $I_k, k = 1, \dots, P$, this class defines for each subset an extended global index set $\hat{I}_k \supset I_K$. The extended index set contains the global indices owned by part $k$, as well as remote indices $R_k = \hat{I}_k \setminus I_k$, which are also accessed by part $k$, but owned by parts $l \neq k$. At the core, this class provides mappings from the global index space $I$ into different local index spaces. The combined local index space (\doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947ba507d922378ecab8e10b81dcbc2ff8bf3}{index\+\_\+space::\+combined}) is then defined as $[0, \dots, |\hat{I}_k|)$. Additionally, the combined index space can be separated into locally owned (\doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947baf5ddaf0ca7929578b408c909429f68f2}{index\+\_\+space::\+local}) and non-\/locally owned (\doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947ba9182221a9ec0a65321d5a206c9c174ca}{index\+\_\+space::\+non\+\_\+local}). The locally owned indices are defined as $[0, \dots, |I_k|)$, and the non-\/locally owned as $[0, \dots, |R_k|)$. With these index sets, the following mappings are defined:\+


\begin{DoxyItemize}
\item $c_k : \hat{I}_k \mapsto [0, \dots, |\hat{I}_k|)$ which maps global indices into the combined/\+full local index space (denoted as \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947ba507d922378ecab8e10b81dcbc2ff8bf3}{index\+\_\+space::\+combined}),
\item $l_k: I_k \mapsto [0, \dots, |I_k|)$ which maps global indices into the locally owned index space (denoted as \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947baf5ddaf0ca7929578b408c909429f68f2}{index\+\_\+space::\+local}),
\item $r_k: R_k \mapsto [0, \dots, |R_k|)$ which maps global indices into the non-\/locally owned index space (denoted as \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947ba9182221a9ec0a65321d5a206c9c174ca}{index\+\_\+space::\+non\+\_\+local}).
\end{DoxyItemize}

The required map can be selected by passing the appropriate type of an \doxylink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947b}{index\+\_\+space}.

The index map for $I_k$ has no knowledge about any other index maps for $I_l, l \neq k$. In particular, any global index passed to the {\ttfamily \doxylink{classgko_1_1experimental_1_1distributed_1_1index__map_a89ea973e18352d2e6689f61d9297b478}{map\+\_\+to\+\_\+local}} map that is not part of the specified index space, will be mapped to an invalid\+\_\+index.


\begin{DoxyTemplParams}{Template Parameters}
{\em Local\+Index\+Type} & type for local indices \\
\hline
{\em Global\+Index\+Type} & type for global indices \\
\hline
\end{DoxyTemplParams}


\label{doc-constructors}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_doc-constructors}
\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!index\_map@{index\_map}}
\index{index\_map@{index\_map}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{index\_map()}{index\_map()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_a23bd5f3345c6534838ddbfc90334d1d6} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
\doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+index\+\_\+map (\begin{DoxyParamCaption}\item[{std::\+shared\+\_\+ptr$<$ const \doxymbox{\hyperlink{classgko_1_1Executor}{Executor}} $>$}]{exec}{, }\item[{std::\+shared\+\_\+ptr$<$ const partition\+\_\+type $>$}]{partition}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{comm\+\_\+index\+\_\+type}}}]{rank}{, }\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \&}]{recv\+\_\+connections}{}\end{DoxyParamCaption})}



Creates a new index map. 

The passed in recv\+\_\+connections may contain duplicates, which will be filtered out.


\begin{DoxyParams}{Parameters}
{\em exec} & the executor \\
\hline
{\em partition} & the partition of the global index set \\
\hline
{\em rank} & the id of the global index space subset \\
\hline
{\em recv\+\_\+connections} & the global indices that are not owned by this rank, but accessed by it \\
\hline
\end{DoxyParams}


Referenced by \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map_ae221fd76f25d0338844d26a1073be917}{get\+\_\+executor()}}.



\label{doc-func-members}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_ada2c797d87e98769728eafa30a2358b1}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!get\_remote\_global\_idxs@{get\_remote\_global\_idxs}}
\index{get\_remote\_global\_idxs@{get\_remote\_global\_idxs}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_remote\_global\_idxs()}{get\_remote\_global\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_ada2c797d87e98769728eafa30a2358b1} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
const \doxymbox{\hyperlink{structgko_1_1segmented__array}{segmented\+\_\+array}}$<$ Global\+Index\+Type $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+get\+\_\+remote\+\_\+global\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



get the index set $R_k$ for this rank. 

The indices are ordered by their owning rank and global index. \Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_ade6d462c2a724d3849ee4b06d5293453}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!get\_remote\_local\_idxs@{get\_remote\_local\_idxs}}
\index{get\_remote\_local\_idxs@{get\_remote\_local\_idxs}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_remote\_local\_idxs()}{get\_remote\_local\_idxs()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_ade6d462c2a724d3849ee4b06d5293453} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
const \doxymbox{\hyperlink{structgko_1_1segmented__array}{segmented\+\_\+array}}$<$ Local\+Index\+Type $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+get\+\_\+remote\+\_\+local\+\_\+idxs (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



get the index set $R_k$, but mapped to their respective local index space. 

The indices are grouped by their owning rank and sorted according to their global index within each group.

The set $R_k = \hat{I}_k \setminus I_k$ can also be written as the union of the intersection of $\hat{I}_k$ with other disjoint sets $I_l, l \neq k$, i.\+e.  $R_k = \bigcup_{j \neq k} \hat{I}_k \cap I_j = \bigcup_{j \neq k}
R_{k,j}$. The set $R_{k,j}$ can then be mapped by $l_j$ to get the local indices wrt. part $j$. The indices here are mapped by $l_j$. \Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a4b88d46f4a3008ec7c7bba74be1ec6c1}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!get\_remote\_target\_ids@{get\_remote\_target\_ids}}
\index{get\_remote\_target\_ids@{get\_remote\_target\_ids}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{get\_remote\_target\_ids()}{get\_remote\_target\_ids()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_a4b88d46f4a3008ec7c7bba74be1ec6c1} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ \doxymbox{\hyperlink{namespacegko_1_1experimental_1_1mpi_a13b7760affb031fee59d385754eaaffb}{comm\+\_\+index\+\_\+type}} $>$ \& \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+get\+\_\+remote\+\_\+target\+\_\+ids (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const}



get the rank ids which contain indices accessed by this rank. 

The order matches the order of the sets in get\+\_\+remote\+\_\+global\+\_\+idxs and get\+\_\+remote\+\_\+local\+\_\+idxs. \Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_afda7597a392bd9c404142e106860d4d1}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!map\_to\_global@{map\_to\_global}}
\index{map\_to\_global@{map\_to\_global}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{map\_to\_global()}{map\_to\_global()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_afda7597a392bd9c404142e106860d4d1} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+map\+\_\+to\+\_\+global (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Local\+Index\+Type $>$ \&}]{local\+\_\+idxs}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947b}{index\+\_\+space}}}]{index\+\_\+space\+\_\+v}{}\end{DoxyParamCaption}) const}



Maps local indices to global indices. 


\begin{DoxyParams}{Parameters}
{\em local\+\_\+idxs} & the local indices to map \\
\hline
{\em index\+\_\+space\+\_\+v} & the index space in which the passed-\/in local indices are defined\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the mapped global indices. Any local index that is not in the specified index space is mapped to invalid\+\_\+index 
\end{DoxyReturn}
\Hypertarget{classgko_1_1experimental_1_1distributed_1_1index__map_a89ea973e18352d2e6689f61d9297b478}\index{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}!map\_to\_local@{map\_to\_local}}
\index{map\_to\_local@{map\_to\_local}!gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$@{gko::experimental::distributed::index\_map$<$ LocalIndexType, GlobalIndexType $>$}}
\doxysubsubsection{\texorpdfstring{map\_to\_local()}{map\_to\_local()}}
{\footnotesize\ttfamily \label{classgko_1_1experimental_1_1distributed_1_1index__map_a89ea973e18352d2e6689f61d9297b478} 
template$<$typename Local\+Index\+Type, typename Global\+Index\+Type = int64$>$ \\
\doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Local\+Index\+Type $>$ \doxymbox{\hyperlink{classgko_1_1experimental_1_1distributed_1_1index__map}{gko::\+experimental::\+distributed::\+index\+\_\+map}}$<$ Local\+Index\+Type, Global\+Index\+Type $>$::\+map\+\_\+to\+\_\+local (\begin{DoxyParamCaption}\item[{const \doxymbox{\hyperlink{classgko_1_1array}{array}}$<$ Global\+Index\+Type $>$ \&}]{global\+\_\+ids}{, }\item[{\doxymbox{\hyperlink{namespacegko_1_1experimental_1_1distributed_a3d50932cfebdde844b88d2c82b96947b}{index\+\_\+space}}}]{index\+\_\+space\+\_\+v}{}\end{DoxyParamCaption}) const}



Maps global indices to local indices. 


\begin{DoxyParams}{Parameters}
{\em global\+\_\+ids} & the global indices to map \\
\hline
{\em index\+\_\+space\+\_\+v} & the index space in which the returned local indices are defined\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the mapped local indices. Any global index that is not in the specified index space is mapped to invalid\+\_\+index. 
\end{DoxyReturn}


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