47#ifndef XT_IDXLIST_INTERNAL_H
48#define XT_IDXLIST_INTERNAL_H
80 const struct Xt_stripe *,
81 int *,
struct Xt_pos_ext **, int,
90 const Xt_int global_size[ndim],
92 struct Xt_bounds bounds[ndim]);
99 size_t num_stripes_alloc);
124#define xt_idxlist_get_num_indices(idxlist) ((idxlist)->num_indices)
142 const struct Xt_stripe stripes[num_stripes],
145 int single_match_only,
const struct xt_idxlist_vtable * vtable
size_t(* get_pack_size)(Xt_idxlist, MPI_Comm)
Xt_int(* get_max_index)(Xt_idxlist)
int(* get_position_of_index_off)(Xt_idxlist, Xt_int, int *, int)
int(* get_index_at_position)(Xt_idxlist, int, Xt_int *)
Xt_idxlist(* sorted_copy)(Xt_idxlist, Xt_config)
int(* get_indices_at_positions)(Xt_idxlist idxlist, const int *positions, int num, Xt_int *index, Xt_int undef_idx)
void(* get_index_stripes)(Xt_idxlist, struct Xt_stripe *restrict, size_t)
int(* get_pos_exts_of_index_stripes)(Xt_idxlist, int, const struct Xt_stripe *, int *, struct Xt_pos_ext **, int, Xt_config)
void(* pack)(Xt_idxlist, void *, int, int *, MPI_Comm)
Xt_idxlist(* copy)(Xt_idxlist)
int(* get_position_of_index)(Xt_idxlist, Xt_int, int *)
int(* get_num_index_stripes)(Xt_idxlist)
int(* get_sorting)(Xt_idxlist)
void(* get_bounding_box)(Xt_idxlist idxlist, unsigned ndim, const Xt_int global_size[ndim], Xt_int global_start_index, struct Xt_bounds bounds[ndim])
void(* get_indices)(Xt_idxlist, Xt_int *indices)
size_t(* get_positions_of_indices)(Xt_idxlist, Xt_int const *, size_t, int *, int)
Xt_int(* get_min_index)(Xt_idxlist)
int(* get_positions_of_indices_off)(Xt_idxlist, Xt_int const *, int, int *, int *)
opaque configuration object for settings where the default needs to be overridden
struct Xt_config_ * Xt_config
base definitions header file
struct Xt_idxlist_ * Xt_idxlist
static struct xt_gpu_vtable vtable
PPM_DSO_INTERNAL Xt_uid xt_idxlist_new_uid(void)
PPM_DSO_INTERNAL void xt_idxlist_intersection_init(void)
PPM_DSO_INTERNAL void xt_idxlist_get_index_stripes_keep_buf(Xt_idxlist idxlist, struct Xt_stripe *restrict stripes, size_t num_stripes_alloc)
PPM_DSO_INTERNAL Xt_idxlist xt_default_isect(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst, Xt_config config)
static void Xt_idxlist_init(Xt_idxlist idxlist, const struct xt_idxlist_vtable *vtable, int num_indices)
PPM_DSO_INTERNAL bool xt_idxlist_is_stripe_conversion_profitable_(Xt_idxlist idxlist, Xt_config config)
PPM_DSO_INTERNAL int xt_idxlist_get_pos_exts_of_index_stripes_custom(Xt_idxlist idxlist, int num_stripes, const struct Xt_stripe stripes[num_stripes], int *num_ext, struct Xt_pos_ext **pos_ext, int single_match_only, Xt_config config)