\hypertarget{group_2group_8h}{\section{ompi/group/group.h File Reference}
\label{group_2group_8h}\index{ompi/group/group.\+h@{ompi/group/group.\+h}}
}


Infrastructure for M\+P\+I group support.  


{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/proc/proc.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}mpi.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+pointer\+\_\+array.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/util/output.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}group\+\_\+dbg.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structompi__group__sporadic__list__t}{ompi\+\_\+group\+\_\+sporadic\+\_\+list\+\_\+t}
\item 
struct \hyperlink{structompi__group__sporadic__data__t}{ompi\+\_\+group\+\_\+sporadic\+\_\+data\+\_\+t}
\item 
struct \hyperlink{structompi__group__strided__data__t}{ompi\+\_\+group\+\_\+strided\+\_\+data\+\_\+t}
\item 
struct \hyperlink{structompi__group__bitmap__data__t}{ompi\+\_\+group\+\_\+bitmap\+\_\+data\+\_\+t}
\item 
struct \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t}
\begin{DoxyCompactList}\small\item\em \hyperlink{classGroup}{Group} structure Currently we have four formats for storing the process pointers that are members of the group. \end{DoxyCompactList}\item 
struct \hyperlink{structompi__predefined__group__t}{ompi\+\_\+predefined\+\_\+group\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group_2group_8h_a403cf3149c084cea115b85c90721039a}{\#define {\bfseries B\+S\+I\+Z\+E}~((int)sizeof(unsigned char)$\ast$8)}\label{group_2group_8h_a403cf3149c084cea115b85c90721039a}

\item 
\#define \hyperlink{group_2group_8h_a11c431f2c6fee471ac1783cf5ba5a494}{P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D}~(sizeof(void$\ast$) $\ast$ 32)
\begin{DoxyCompactList}\small\item\em Padded struct to maintain back compatibiltiy. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_aba99b9d77a9d58a6463c93bfff51af0b}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+S\+\_\+\+I\+N\+T\+R\+I\+N\+S\+I\+C}(\+\_\+group)~((\+\_\+group)-\/$>$grp\+\_\+flags\&O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+N\+T\+R\+I\+N\+S\+I\+C)}\label{group_2group_8h_aba99b9d77a9d58a6463c93bfff51af0b}

\item 
\hypertarget{group_2group_8h_aa30ef990291a3658000a4b89698b0132}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+S\+\_\+\+D\+E\+N\+S\+E}(\+\_\+group)~((\+\_\+group)-\/$>$grp\+\_\+flags \& O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+D\+E\+N\+S\+E)}\label{group_2group_8h_aa30ef990291a3658000a4b89698b0132}

\item 
\hypertarget{group_2group_8h_a1547a741d0b7d10873a5004076208794}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+S\+\_\+\+S\+P\+O\+R\+A\+D\+I\+C}(\+\_\+group)~((\+\_\+group)-\/$>$grp\+\_\+flags \& O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+P\+O\+R\+A\+D\+I\+C)}\label{group_2group_8h_a1547a741d0b7d10873a5004076208794}

\item 
\hypertarget{group_2group_8h_ac7074c4c13f2f7ed72c38613526d10e6}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+S\+\_\+\+S\+T\+R\+I\+D\+E\+D}(\+\_\+group)~((\+\_\+group)-\/$>$grp\+\_\+flags \& O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+T\+R\+I\+D\+E\+D)}\label{group_2group_8h_ac7074c4c13f2f7ed72c38613526d10e6}

\item 
\hypertarget{group_2group_8h_afc677fad87fcb51c1742b53a34b088da}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+S\+\_\+\+B\+I\+T\+M\+A\+P}(\+\_\+group)~((\+\_\+group)-\/$>$grp\+\_\+flags \& O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+B\+I\+T\+M\+A\+P)}\label{group_2group_8h_afc677fad87fcb51c1742b53a34b088da}

\item 
\hypertarget{group_2group_8h_a318d555b8161cb3a6d6e45422aacbcf4}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+E\+T\+\_\+\+I\+N\+T\+R\+I\+N\+S\+I\+C}(\+\_\+group)~( (\+\_\+group)-\/$>$grp\+\_\+flags $\vert$= O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+I\+N\+T\+R\+I\+N\+S\+I\+C)}\label{group_2group_8h_a318d555b8161cb3a6d6e45422aacbcf4}

\item 
\hypertarget{group_2group_8h_aa8545e9b54f998fe2b84169c7b69e671}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+E\+T\+\_\+\+D\+E\+N\+S\+E}(\+\_\+group)~( (\+\_\+group)-\/$>$grp\+\_\+flags $\vert$= O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+D\+E\+N\+S\+E)}\label{group_2group_8h_aa8545e9b54f998fe2b84169c7b69e671}

\item 
\hypertarget{group_2group_8h_ac51de812282641761d4565c43ab0d227}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+E\+T\+\_\+\+S\+P\+O\+R\+A\+D\+I\+C}(\+\_\+group)~( (\+\_\+group)-\/$>$grp\+\_\+flags $\vert$= O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+P\+O\+R\+A\+D\+I\+C)}\label{group_2group_8h_ac51de812282641761d4565c43ab0d227}

\item 
\hypertarget{group_2group_8h_aaacb4c54ba122c5e29e52be5a6b5dc18}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+E\+T\+\_\+\+S\+T\+R\+I\+D\+E\+D}(\+\_\+group)~( (\+\_\+group)-\/$>$grp\+\_\+flags $\vert$= O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+T\+R\+I\+D\+E\+D)}\label{group_2group_8h_aaacb4c54ba122c5e29e52be5a6b5dc18}

\item 
\hypertarget{group_2group_8h_aded7a87f869c11b5e1fad4e77d52cde5}{\#define {\bfseries O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+S\+E\+T\+\_\+\+B\+I\+T\+M\+A\+P}(\+\_\+group)~( (\+\_\+group)-\/$>$grp\+\_\+flags $\vert$= O\+M\+P\+I\+\_\+\+G\+R\+O\+U\+P\+\_\+\+B\+I\+T\+M\+A\+P)}\label{group_2group_8h_aded7a87f869c11b5e1fad4e77d52cde5}

\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group_2group_8h_a8f74cb9e318fca60a2233419e9ef7162}{typedef struct \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} {\bfseries ompi\+\_\+group\+\_\+t}}\label{group_2group_8h_a8f74cb9e318fca60a2233419e9ef7162}

\item 
\hypertarget{group_2group_8h_a6dfbf64232569d8fa01c89285296c24d}{typedef struct \\*
\hyperlink{structompi__predefined__group__t}{ompi\+\_\+predefined\+\_\+group\+\_\+t} {\bfseries ompi\+\_\+predefined\+\_\+group\+\_\+t}}\label{group_2group_8h_a6dfbf64232569d8fa01c89285296c24d}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group_2group_8h_a94d543e7676856474504bca52d593bea}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t})}\label{group_2group_8h_a94d543e7676856474504bca52d593bea}

\item 
O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$ \hyperlink{group_2group_8h_a5491b86b0dd8e6bd7d880e305e07fc48}{ompi\+\_\+group\+\_\+allocate} (int group\+\_\+size)
\begin{DoxyCompactList}\small\item\em Allocate a new group structure. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a1acccaa907be0e8aa96d3d769d89faff}{\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$ {\bfseries ompi\+\_\+group\+\_\+allocate\+\_\+sporadic} (int group\+\_\+size)}\label{group_2group_8h_a1acccaa907be0e8aa96d3d769d89faff}

\item 
\hypertarget{group_2group_8h_aa9b8a6e8090ca4504ecb46ae439a8bd9}{\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$ {\bfseries ompi\+\_\+group\+\_\+allocate\+\_\+strided} (void)}\label{group_2group_8h_aa9b8a6e8090ca4504ecb46ae439a8bd9}

\item 
\hypertarget{group_2group_8h_a00ec40cd7265a1465523269968027f46}{\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$ {\bfseries ompi\+\_\+group\+\_\+allocate\+\_\+bmap} (int orig\+\_\+group\+\_\+size, int group\+\_\+size)}\label{group_2group_8h_a00ec40cd7265a1465523269968027f46}

\item 
O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{group_2group_8h_a9862c3d0aa03419f101faed10c4f1480}{ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group)
\begin{DoxyCompactList}\small\item\em Increment the reference count of the proc structures. \end{DoxyCompactList}\item 
O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void \hyperlink{group_2group_8h_a989e0010a46ddf9c1a3ee8d9d07c1d90}{ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group)
\begin{DoxyCompactList}\small\item\em Decrement the reference count of the proc structures. \end{DoxyCompactList}\item 
int \hyperlink{group_2group_8h_a781b63be949d03cca1c6f3c6f29ed4b7}{ompi\+\_\+group\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize O\+M\+P\+I group infrastructure. \end{DoxyCompactList}\item 
int \hyperlink{group_2group_8h_a3271e97c4ea3e2b095618bbe91c5c0c3}{ompi\+\_\+group\+\_\+finalize} (void)
\begin{DoxyCompactList}\small\item\em Clean up O\+M\+P\+I group infrastructure. \end{DoxyCompactList}\item 
static int \hyperlink{group_2group_8h_a438408e76af0707d20b89004ee0fbab7}{ompi\+\_\+group\+\_\+size} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group)
\begin{DoxyCompactList}\small\item\em Get group size. \end{DoxyCompactList}\item 
static int \hyperlink{group_2group_8h_a51e0b5e5999f89cc815b66b665f1a568}{ompi\+\_\+group\+\_\+rank} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group)
\begin{DoxyCompactList}\small\item\em Get group rank. \end{DoxyCompactList}\item 
void \hyperlink{group_2group_8h_a25a91a532f6d417c865ff94eb58feaab}{ompi\+\_\+set\+\_\+group\+\_\+rank} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, struct \hyperlink{structompi__proc__t}{ompi\+\_\+proc\+\_\+t} $\ast$proc\+\_\+pointer)
\begin{DoxyCompactList}\small\item\em Set group rank in the input group structure. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a5322385bdec5850a00a4dd177f463ad8}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{group_2group_8h_a5322385bdec5850a00a4dd177f463ad8}{ompi\+\_\+group\+\_\+translate\+\_\+ranks} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_a5322385bdec5850a00a4dd177f463ad8}

\begin{DoxyCompactList}\small\item\em Abstracting M\+P\+I\+\_\+\+Group\+\_\+translate\+\_\+ranks to an ompi function for internal use. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a45549374afe83839635a3762973c5cd3}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{group_2group_8h_a45549374afe83839635a3762973c5cd3}{ompi\+\_\+group\+\_\+compare} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$result)}\label{group_2group_8h_a45549374afe83839635a3762973c5cd3}

\begin{DoxyCompactList}\small\item\em Abstracting M\+P\+I\+\_\+\+Group\+\_\+compare to an ompi function for internal use. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a42ed955cc6ee8c44ed56461eaf6322e4}{int \hyperlink{group_2group_8h_a42ed955cc6ee8c44ed56461eaf6322e4}{ompi\+\_\+group\+\_\+free} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$group)}\label{group_2group_8h_a42ed955cc6ee8c44ed56461eaf6322e4}

\begin{DoxyCompactList}\small\item\em Abstracting M\+P\+I\+\_\+\+Group\+\_\+free, since it is required by some internal functions... \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a22494ef6dfd6edb3ab8457de7c2f8809}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{structompi__proc__t}{ompi\+\_\+proc\+\_\+t} $\ast$ \hyperlink{group_2group_8h_a22494ef6dfd6edb3ab8457de7c2f8809}{ompi\+\_\+group\+\_\+get\+\_\+proc\+\_\+ptr} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int rank)}\label{group_2group_8h_a22494ef6dfd6edb3ab8457de7c2f8809}

\begin{DoxyCompactList}\small\item\em Functions to handle process pointers for sparse group formats. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a1795aa7ea644c94ae20e46c2ed6306fa}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+sporadic} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_a1795aa7ea644c94ae20e46c2ed6306fa}

\item 
\hypertarget{group_2group_8h_acb88999c9c62933f535437edcd00d1af}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+sporadic\+\_\+reverse} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_acb88999c9c62933f535437edcd00d1af}

\item 
\hypertarget{group_2group_8h_a5eb76ec631250ad19d2b5224d0fde64e}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+strided} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_a5eb76ec631250ad19d2b5224d0fde64e}

\item 
\hypertarget{group_2group_8h_abf765b47aab71efe57d9868b5265e7af}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+strided\+\_\+reverse} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_abf765b47aab71efe57d9868b5265e7af}

\item 
\hypertarget{group_2group_8h_aef1f62fe2a14e08a6df5e1e2a92ea7b2}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+bmap} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_aef1f62fe2a14e08a6df5e1e2a92ea7b2}

\item 
\hypertarget{group_2group_8h_a01001b6d6c434f66a4654d0adaed536b}{int {\bfseries ompi\+\_\+group\+\_\+translate\+\_\+ranks\+\_\+bmap\+\_\+reverse} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, int n\+\_\+ranks, int $\ast$ranks1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, int $\ast$ranks2)}\label{group_2group_8h_a01001b6d6c434f66a4654d0adaed536b}

\item 
O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{group_2group_8h_a668e66b8a8cf3e7fd282e820f02a586b}{ompi\+\_\+group\+\_\+incl} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)
\begin{DoxyCompactList}\small\item\em Prototypes for the group back-\/end functions. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a3ce2f63c462a2b09e12aea9a5211c81f}{int {\bfseries ompi\+\_\+group\+\_\+excl} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a3ce2f63c462a2b09e12aea9a5211c81f}

\item 
\hypertarget{group_2group_8h_a6ee6720bc42b97188b6890de265d5324}{int {\bfseries ompi\+\_\+group\+\_\+range\+\_\+incl} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n\+\_\+triplets, int ranges\mbox{[}$\,$\mbox{]}\mbox{[}3\mbox{]}, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a6ee6720bc42b97188b6890de265d5324}

\item 
\hypertarget{group_2group_8h_a5bcd569f8ddeb9623868c98ba79d9772}{int {\bfseries ompi\+\_\+group\+\_\+range\+\_\+excl} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n\+\_\+triplets, int ranges\mbox{[}$\,$\mbox{]}\mbox{[}3\mbox{]}, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a5bcd569f8ddeb9623868c98ba79d9772}

\item 
\hypertarget{group_2group_8h_ac266332d26b4c63cfa2da87c9d60a83e}{int {\bfseries ompi\+\_\+group\+\_\+union} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_ac266332d26b4c63cfa2da87c9d60a83e}

\item 
\hypertarget{group_2group_8h_a4d167794bcc855df84e97162c4f55461}{int {\bfseries ompi\+\_\+group\+\_\+intersection} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a4d167794bcc855df84e97162c4f55461}

\item 
\hypertarget{group_2group_8h_a3b707d19b497acb04b8c8a9012f52221}{int {\bfseries ompi\+\_\+group\+\_\+difference} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group1, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group2, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a3b707d19b497acb04b8c8a9012f52221}

\item 
\hypertarget{group_2group_8h_a0d7e8dda418dd35f7571516c5917bd9e}{int \hyperlink{group_2group_8h_a0d7e8dda418dd35f7571516c5917bd9e}{ompi\+\_\+group\+\_\+incl\+\_\+plist} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a0d7e8dda418dd35f7571516c5917bd9e}

\begin{DoxyCompactList}\small\item\em Include Functions to handle Sparse storage formats. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a95e15401c9f3d23bca46a560471a40b8}{int {\bfseries ompi\+\_\+group\+\_\+incl\+\_\+spor} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a95e15401c9f3d23bca46a560471a40b8}

\item 
\hypertarget{group_2group_8h_a5d9874decb93711e8bd08ce531c734d3}{int {\bfseries ompi\+\_\+group\+\_\+incl\+\_\+strided} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a5d9874decb93711e8bd08ce531c734d3}

\item 
\hypertarget{group_2group_8h_a57548a5f1c59ff723db9cf97b26130ce}{int {\bfseries ompi\+\_\+group\+\_\+incl\+\_\+bmap} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int n, int $\ast$ranks, \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$$\ast$new\+\_\+group)}\label{group_2group_8h_a57548a5f1c59ff723db9cf97b26130ce}

\item 
\hypertarget{group_2group_8h_a2e5c4a85a86dea5b5f0209779755da4e}{int \hyperlink{group_2group_8h_a2e5c4a85a86dea5b5f0209779755da4e}{ompi\+\_\+group\+\_\+calc\+\_\+plist} (int n, int $\ast$ranks)}\label{group_2group_8h_a2e5c4a85a86dea5b5f0209779755da4e}

\begin{DoxyCompactList}\small\item\em Functions to calculate storage spaces. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_ae77197d7fdc1e99461c33e9e7dc427f6}{int {\bfseries ompi\+\_\+group\+\_\+calc\+\_\+strided} (int n, int $\ast$ranks)}\label{group_2group_8h_ae77197d7fdc1e99461c33e9e7dc427f6}

\item 
\hypertarget{group_2group_8h_acd42ca3c6c4efc33ef0d7ab16300c64e}{int {\bfseries ompi\+\_\+group\+\_\+calc\+\_\+sporadic} (int n, int $\ast$ranks)}\label{group_2group_8h_acd42ca3c6c4efc33ef0d7ab16300c64e}

\item 
\hypertarget{group_2group_8h_affe18ad4a39be9be9fccc71ba298dbbb}{int {\bfseries ompi\+\_\+group\+\_\+calc\+\_\+bmap} (int n, int orig\+\_\+size, int $\ast$ranks)}\label{group_2group_8h_affe18ad4a39be9be9fccc71ba298dbbb}

\item 
\hypertarget{group_2group_8h_ab86fb69cd3e7dbe170634ee2bb02d61e}{int \hyperlink{group_2group_8h_ab86fb69cd3e7dbe170634ee2bb02d61e}{ompi\+\_\+group\+\_\+minloc} (int list\mbox{[}$\,$\mbox{]}, int length)}\label{group_2group_8h_ab86fb69cd3e7dbe170634ee2bb02d61e}

\begin{DoxyCompactList}\small\item\em \hyperlink{structFunction}{Function} to return the minimum value in an array. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_aa6f7f4e8b2f1ee5ebd9caebccf594cce}{static struct \hyperlink{structompi__proc__t}{ompi\+\_\+proc\+\_\+t} $\ast$ \hyperlink{group_2group_8h_aa6f7f4e8b2f1ee5ebd9caebccf594cce}{ompi\+\_\+group\+\_\+peer\+\_\+lookup} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int peer\+\_\+id)}\label{group_2group_8h_aa6f7f4e8b2f1ee5ebd9caebccf594cce}

\begin{DoxyCompactList}\small\item\em Inline function to check if sparse groups are enabled and return the direct access to the proc pointer, otherwise the lookup function. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a674182949cfeed5e5544acd162a7fa83}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int \hyperlink{group_2group_8h_a674182949cfeed5e5544acd162a7fa83}{ompi\+\_\+group\+\_\+peer\+\_\+lookup\+\_\+id} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, \hyperlink{structompi__proc__t}{ompi\+\_\+proc\+\_\+t} $\ast$proc)}\label{group_2group_8h_a674182949cfeed5e5544acd162a7fa83}

\begin{DoxyCompactList}\small\item\em Determine the rank of the specified process in this group. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a21e137a4b4f197c00b492acee81ee970}{int \hyperlink{group_2group_8h_a21e137a4b4f197c00b492acee81ee970}{ompi\+\_\+group\+\_\+dump} (\hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group)}\label{group_2group_8h_a21e137a4b4f197c00b492acee81ee970}

\begin{DoxyCompactList}\small\item\em \hyperlink{structFunction}{Function} to print the group info. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a5990fd97486eedbdf62df95368cc6d45}{int \hyperlink{group_2group_8h_a5990fd97486eedbdf62df95368cc6d45}{ompi\+\_\+group\+\_\+div\+\_\+ceil} (int num, int den)}\label{group_2group_8h_a5990fd97486eedbdf62df95368cc6d45}

\begin{DoxyCompactList}\small\item\em Ceil \hyperlink{structFunction}{Function} so not to include the math.\+h lib. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group_2group_8h_a9ba1ecd1495efaf4dfd1c25544e119a5}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C struct \\*
\hyperlink{structopal__pointer__array__t}{opal\+\_\+pointer\+\_\+array\+\_\+t} \hyperlink{group_2group_8h_a9ba1ecd1495efaf4dfd1c25544e119a5}{ompi\+\_\+group\+\_\+f\+\_\+to\+\_\+c\+\_\+table}}\label{group_2group_8h_a9ba1ecd1495efaf4dfd1c25544e119a5}

\begin{DoxyCompactList}\small\item\em Table for Fortran $<$-\/$>$ C group handle conversion. \end{DoxyCompactList}\item 
\hypertarget{group_2group_8h_a95c31c5049025941e7cc418d286c6747}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C struct \\*
\hyperlink{structompi__predefined__group__t}{ompi\+\_\+predefined\+\_\+group\+\_\+t} {\bfseries ompi\+\_\+mpi\+\_\+group\+\_\+null}}\label{group_2group_8h_a95c31c5049025941e7cc418d286c6747}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Infrastructure for M\+P\+I group support. 



\subsection{Macro Definition Documentation}
\hypertarget{group_2group_8h_a11c431f2c6fee471ac1783cf5ba5a494}{\index{group/group.\+h@{group/group.\+h}!P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D@{P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D}}
\index{P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D@{P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D}!group/group.\+h@{group/group.\+h}}
\subsubsection[{P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\+R\+E\+D\+E\+F\+I\+N\+E\+D\+\_\+\+G\+R\+O\+U\+P\+\_\+\+P\+A\+D~(sizeof(void$\ast$) $\ast$ 32)}}\label{group_2group_8h_a11c431f2c6fee471ac1783cf5ba5a494}


Padded struct to maintain back compatibiltiy. 

See \hyperlink{communicator_8h_source}{ompi/communicator/communicator.\+h} comments with struct \hyperlink{structompi__communicator__t}{ompi\+\_\+communicator\+\_\+t} for full explanation why we chose the following padding construct for predefines. 

\subsection{Function Documentation}
\hypertarget{group_2group_8h_a5491b86b0dd8e6bd7d880e305e07fc48}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+allocate@{ompi\+\_\+group\+\_\+allocate}}
\index{ompi\+\_\+group\+\_\+allocate@{ompi\+\_\+group\+\_\+allocate}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+allocate}]{\setlength{\rightskip}{0pt plus 5cm}O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C {\bf ompi\+\_\+group\+\_\+t}$\ast$ ompi\+\_\+group\+\_\+allocate (
\begin{DoxyParamCaption}
\item[{int}]{group\+\_\+size}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a5491b86b0dd8e6bd7d880e305e07fc48}


Allocate a new group structure. 


\begin{DoxyParams}{Parameters}
{\em group\+\_\+size} & Number of M\+P\+I processes in the group\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Pointer to new group structure 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+f\+\_\+to\+\_\+c\+\_\+index, ompi\+\_\+group\+\_\+t\+::grp\+\_\+my\+\_\+rank, ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+pointers, and O\+B\+J\+\_\+\+R\+E\+L\+E\+A\+S\+E.



Referenced by ompi\+\_\+group\+\_\+incl\+\_\+plist().

\hypertarget{group_2group_8h_a989e0010a46ddf9c1a3ee8d9d07c1d90}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count@{ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count}}
\index{ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count@{ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count}]{\setlength{\rightskip}{0pt plus 5cm}O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void ompi\+\_\+group\+\_\+decrement\+\_\+proc\+\_\+count (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a989e0010a46ddf9c1a3ee8d9d07c1d90}


Decrement the reference count of the proc structures. 


\begin{DoxyParams}{Parameters}
{\em group} & Pointer to \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} structute (I\+N) \\
\hline
\end{DoxyParams}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, O\+B\+J\+\_\+\+R\+E\+L\+E\+A\+S\+E, and ompi\+\_\+group\+\_\+peer\+\_\+lookup().



Referenced by ompi\+\_\+group\+\_\+free().

\hypertarget{group_2group_8h_a3271e97c4ea3e2b095618bbe91c5c0c3}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+finalize@{ompi\+\_\+group\+\_\+finalize}}
\index{ompi\+\_\+group\+\_\+finalize@{ompi\+\_\+group\+\_\+finalize}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+finalize}]{\setlength{\rightskip}{0pt plus 5cm}int ompi\+\_\+group\+\_\+finalize (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a3271e97c4ea3e2b095618bbe91c5c0c3}


Clean up O\+M\+P\+I group infrastructure. 

\begin{DoxyReturn}{Returns}
Error code 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+flags, O\+B\+J\+\_\+\+D\+E\+S\+T\+R\+U\+C\+T, and O\+B\+J\+\_\+\+R\+E\+L\+E\+A\+S\+E.



Referenced by ompi\+\_\+mpi\+\_\+finalize().

\hypertarget{group_2group_8h_a668e66b8a8cf3e7fd282e820f02a586b}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+incl@{ompi\+\_\+group\+\_\+incl}}
\index{ompi\+\_\+group\+\_\+incl@{ompi\+\_\+group\+\_\+incl}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+incl}]{\setlength{\rightskip}{0pt plus 5cm}O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C int ompi\+\_\+group\+\_\+incl (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group, }
\item[{int}]{n, }
\item[{int $\ast$}]{ranks, }
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$$\ast$}]{new\+\_\+group}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a668e66b8a8cf3e7fd282e820f02a586b}


Prototypes for the group back-\/end functions. 

Argument lists are similar to the according C M\+P\+I functions. 

References ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, ompi\+\_\+group\+\_\+calc\+\_\+plist(), ompi\+\_\+group\+\_\+incl\+\_\+plist(), and ompi\+\_\+group\+\_\+minloc().

\hypertarget{group_2group_8h_a9862c3d0aa03419f101faed10c4f1480}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count@{ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count}}
\index{ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count@{ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count}]{\setlength{\rightskip}{0pt plus 5cm}O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C void ompi\+\_\+group\+\_\+increment\+\_\+proc\+\_\+count (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a9862c3d0aa03419f101faed10c4f1480}


Increment the reference count of the proc structures. 


\begin{DoxyParams}{Parameters}
{\em group} & Pointer to \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} structute (I\+N) \\
\hline
\end{DoxyParams}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, O\+B\+J\+\_\+\+R\+E\+T\+A\+I\+N, and ompi\+\_\+group\+\_\+peer\+\_\+lookup().



Referenced by ompi\+\_\+group\+\_\+incl\+\_\+plist().

\hypertarget{group_2group_8h_a781b63be949d03cca1c6f3c6f29ed4b7}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+init@{ompi\+\_\+group\+\_\+init}}
\index{ompi\+\_\+group\+\_\+init@{ompi\+\_\+group\+\_\+init}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+init}]{\setlength{\rightskip}{0pt plus 5cm}int ompi\+\_\+group\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a781b63be949d03cca1c6f3c6f29ed4b7}


Initialize O\+M\+P\+I group infrastructure. 

\begin{DoxyReturn}{Returns}
Error code 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+flags, ompi\+\_\+group\+\_\+t\+::grp\+\_\+my\+\_\+rank, ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+pointers, O\+B\+J\+\_\+\+C\+O\+N\+S\+T\+R\+U\+C\+T, and opal\+\_\+pointer\+\_\+array\+\_\+init().



Referenced by ompi\+\_\+mpi\+\_\+init().

\hypertarget{group_2group_8h_a51e0b5e5999f89cc815b66b665f1a568}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+rank@{ompi\+\_\+group\+\_\+rank}}
\index{ompi\+\_\+group\+\_\+rank@{ompi\+\_\+group\+\_\+rank}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+rank}]{\setlength{\rightskip}{0pt plus 5cm}static int ompi\+\_\+group\+\_\+rank (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group_2group_8h_a51e0b5e5999f89cc815b66b665f1a568}


Get group rank. 


\begin{DoxyParams}{Parameters}
{\em group} & Pointer to \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} structure (I\+N)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classGroup}{Group} rank 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+my\+\_\+rank.

\hypertarget{group_2group_8h_a438408e76af0707d20b89004ee0fbab7}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+group\+\_\+size@{ompi\+\_\+group\+\_\+size}}
\index{ompi\+\_\+group\+\_\+size@{ompi\+\_\+group\+\_\+size}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+group\+\_\+size}]{\setlength{\rightskip}{0pt plus 5cm}static int ompi\+\_\+group\+\_\+size (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group_2group_8h_a438408e76af0707d20b89004ee0fbab7}


Get group size. 


\begin{DoxyParams}{Parameters}
{\em group} & Pointer to \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} structute (I\+N)\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classGroup}{Group} size 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count.

\hypertarget{group_2group_8h_a25a91a532f6d417c865ff94eb58feaab}{\index{group/group.\+h@{group/group.\+h}!ompi\+\_\+set\+\_\+group\+\_\+rank@{ompi\+\_\+set\+\_\+group\+\_\+rank}}
\index{ompi\+\_\+set\+\_\+group\+\_\+rank@{ompi\+\_\+set\+\_\+group\+\_\+rank}!group/group.\+h@{group/group.\+h}}
\subsubsection[{ompi\+\_\+set\+\_\+group\+\_\+rank}]{\setlength{\rightskip}{0pt plus 5cm}void ompi\+\_\+set\+\_\+group\+\_\+rank (
\begin{DoxyParamCaption}
\item[{{\bf ompi\+\_\+group\+\_\+t} $\ast$}]{group, }
\item[{struct {\bf ompi\+\_\+proc\+\_\+t} $\ast$}]{proc\+\_\+pointer}
\end{DoxyParamCaption}
)}}\label{group_2group_8h_a25a91a532f6d417c865ff94eb58feaab}


Set group rank in the input group structure. 


\begin{DoxyParams}{Parameters}
{\em group} & \hyperlink{classGroup}{Group} Pointer to \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} structure (I\+N\+O\+U\+T) \\
\hline
{\em proc\+\_\+pointer} & Pointer to \hyperlink{structompi__proc__t}{ompi\+\_\+proc\+\_\+t} structure for process. M\+P\+I\+\_\+\+P\+R\+O\+C\+\_\+\+N\+U\+L\+L may be used to indicate proc not in group\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Error code 
\end{DoxyReturn}


References ompi\+\_\+group\+\_\+t\+::grp\+\_\+my\+\_\+rank, ompi\+\_\+group\+\_\+t\+::grp\+\_\+proc\+\_\+count, and ompi\+\_\+group\+\_\+peer\+\_\+lookup().



Referenced by ompi\+\_\+group\+\_\+incl\+\_\+plist().

