NewMadeleine

Documentation

« back to PM2 home.
nm_group.h File Reference
#include <nm_public.h>
#include <nm_sendrecv_interface.h>
#include <Padico/Puk.h>
Include dependency graph for nm_group.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

#define NM_GROUP_NULL   ((nm_group_t)NULL)
 
#define NM_GROUP_IDENT   0x01
 
#define NM_GROUP_SIMILAR   0x02
 
#define NM_GROUP_UNEQUAL   0x04
 
typedef nm_gate_vect_t nm_group_t
 type for groups; in practice, a vector of gates
 
nm_group_t nm_group_new (void)
 create a new empty group
 
void nm_group_add_node (nm_group_t p_group, nm_gate_t p_gate)
 
int nm_group_size (nm_group_t group)
 
int nm_group_rank (nm_group_t group)
 
nm_gate_t nm_group_get_gate (nm_group_t p_group, int rank)
 
int nm_group_get_dest (nm_group_t p_group, nm_gate_t p_gate)
 
nm_group_t nm_group_world (void)
 get a new group containing all nodes
 
nm_group_t nm_group_self (void)
 get a new group containing only the local node
 
int nm_group_compare (nm_group_t group1, nm_group_t group2)
 
void nm_group_free (nm_group_t group)
 
nm_group_t nm_group_dup (nm_group_t group)
 
nm_group_t nm_group_incl (nm_group_t group, int n, const int ranks[])
 
nm_group_t nm_group_excl (nm_group_t group, int n, const int ranks[])
 
nm_group_t nm_group_union (nm_group_t group1, nm_group_t group2)
 
nm_group_t nm_group_intersection (nm_group_t group1, nm_group_t group2)
 
nm_group_t nm_group_difference (nm_group_t group1, nm_group_t group2)
 
int nm_group_translate_ranks (nm_group_t p_group1, int n, const int *ranks1, nm_group_t p_group2, int *ranks2)
 

Macro Definition Documentation

◆ NM_GROUP_IDENT

#define NM_GROUP_IDENT   0x01

Definition at line 43 of file nm_group.h.

◆ NM_GROUP_NULL

#define NM_GROUP_NULL   ((nm_group_t)NULL)

Definition at line 41 of file nm_group.h.

◆ NM_GROUP_SIMILAR

#define NM_GROUP_SIMILAR   0x02

Definition at line 44 of file nm_group.h.

◆ NM_GROUP_UNEQUAL

#define NM_GROUP_UNEQUAL   0x04

Definition at line 45 of file nm_group.h.

Function Documentation

◆ nm_group_add_node()

void nm_group_add_node ( nm_group_t  p_group,
nm_gate_t  p_gate 
)
extern

◆ nm_group_compare()

int nm_group_compare ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_difference()

nm_group_t nm_group_difference ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_dup()

nm_group_t nm_group_dup ( nm_group_t  group)
extern

◆ nm_group_excl()

nm_group_t nm_group_excl ( nm_group_t  group,
int  n,
const int  ranks[] 
)
extern

◆ nm_group_free()

void nm_group_free ( nm_group_t  group)
extern

◆ nm_group_get_dest()

int nm_group_get_dest ( nm_group_t  p_group,
nm_gate_t  p_gate 
)
extern
Note
slow, use with care (linear search)

◆ nm_group_get_gate()

nm_gate_t nm_group_get_gate ( nm_group_t  p_group,
int  rank 
)
extern

◆ nm_group_incl()

nm_group_t nm_group_incl ( nm_group_t  group,
int  n,
const int  ranks[] 
)
extern

◆ nm_group_intersection()

nm_group_t nm_group_intersection ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_new()

nm_group_t nm_group_new ( void  )
extern

create a new empty group

◆ nm_group_rank()

int nm_group_rank ( nm_group_t  group)
extern

◆ nm_group_self()

nm_group_t nm_group_self ( void  )
extern

get a new group containing only the local node

◆ nm_group_size()

int nm_group_size ( nm_group_t  group)
extern

◆ nm_group_translate_ranks()

int nm_group_translate_ranks ( nm_group_t  p_group1,
int  n,
const int *  ranks1,
nm_group_t  p_group2,
int *  ranks2 
)
extern

◆ nm_group_union()

nm_group_t nm_group_union ( nm_group_t  group1,
nm_group_t  group2 
)
extern

◆ nm_group_world()

nm_group_t nm_group_world ( void  )
extern

get a new group containing all nodes