102 int * position,
int offset);
106 int num_indices,
int *positions,
107 int single_match_only);
115 int single_match_only);
119 int num_indices,
int * positions,
145 .get_bounding_box = NULL,
146 .idxlist_pack_code =
EMPTY,
176 xt_mpi_call(MPI_Pack_size(1, MPI_INT, comm, &size_int_type), comm);
178 return (
size_t)size_int_type;
188 buffer_size, position, comm), comm);
241 assert(num_pos >= 0);
243 for (
int i = 0; i < num_pos; ++i)
244 index[i] = undef_idx;
271 return num_selection;
284 unsigned num_idx = 0;
286 for (
size_t i = 0; i < (size_t)num_stripes; ++i)
287 num_idx += (
unsigned)stripes[i].
nstrides;
304 die(
"idxempty_get_min_index: empty index list");
313 die(
"idxempty_get_max_index: empty index list");
static int idxempty_get_index_at_position(Xt_idxlist idxlist, int position, Xt_int *index)
base definitions header file
static Xt_int idxempty_get_max_index(Xt_idxlist idxlist)
void xt_idxempty_init(void)
static int idxempty_get_position_of_index(Xt_idxlist idxlist, Xt_int index, int *position)
static int idxempty_get_indices_at_positions(Xt_idxlist idxlist, const int *positions, int num, Xt_int *index, Xt_int undef_idx)
static Xt_int const * idxempty_get_indices_const(Xt_idxlist idxlist)
add versions of standard API functions not returning on error
static int idxempty_get_positions_of_indices_off(Xt_idxlist idxlist, Xt_int const *indices, int num_indices, int *positions, int *offsets)
static int idxempty_get_position_of_index_off(Xt_idxlist idxlist, Xt_int index, int *position, int offset)
Xt_idxlist xt_idxempty_new(void)
static int idxempty_get_positions_of_indices(Xt_idxlist idxlist, Xt_int const *indices, int num_indices, int *positions, int single_match_only)
Provide non-public declarations common to all index lists.
static struct xt_idxempty idxempty
static Xt_idxlist idxempty_copy(Xt_idxlist idxlist)
static void Xt_idxlist_init(Xt_idxlist idxlist, const struct xt_idxlist_vtable *vtable, int num_indices)
static void idxempty_pack(Xt_idxlist data, void *buffer, int buffer_size, int *position, MPI_Comm comm)
static void idxempty_get_indices(Xt_idxlist idxlist, Xt_int *indices)
void(* delete)(Xt_idxlist)
static Xt_int idxempty_get_min_index(Xt_idxlist idxlist)
static size_t idxempty_get_pack_size(Xt_idxlist data, MPI_Comm comm)
static int idxempty_get_pos_exts_of_index_stripes(Xt_idxlist idxlist, int num_stripes, const struct Xt_stripe *stripes, int *num_ext, struct Xt_pos_ext **pos_ext, int single_match_only)
#define xt_mpi_call(call, comm)
Xt_idxlist xt_idxempty_unpack(void *XT_UNUSED(buffer), int XT_UNUSED(buffer_size), int *XT_UNUSED(position), MPI_Comm XT_UNUSED(comm))
static void idxempty_delete(Xt_idxlist data)
static const struct xt_idxlist_vtable idxempty_vtable
void xt_idxempty_finalize(void)
struct Xt_idxlist_ parent
static void idxempty_get_index_stripes(Xt_idxlist idxlist, struct Xt_stripe **stripes, int *num_stripes)