Yet Another eXchange Tool
0.9.0
|
#include <assert.h>
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "xt_arithmetic_util.h"
#include "xt/xt_idxlist.h"
#include "xt_idxlist_internal.h"
#include "xt/xt_idxempty.h"
#include "xt/xt_idxvec.h"
#include "xt/xt_idxsection.h"
#include "xt_idxsection_internal.h"
#include "xt/xt_mpi.h"
#include "xt/mergesort.h"
#include "xt/quicksort.h"
#include "xt_idxlist_unpack.h"
#include "core/ppm_xfuncs.h"
#include "core/core.h"
#include "instr.h"
Go to the source code of this file.
Classes | |
struct | dim_desc |
struct | Xt_idxsection_ |
Typedefs | |
typedef struct Xt_idxsection_ * | Xt_idxsection |
Functions | |
static void | idxsection_delete (Xt_idxlist data) |
static size_t | idxsection_get_pack_size (Xt_idxlist data, MPI_Comm comm) |
static void | idxsection_pack (Xt_idxlist data, void *buffer, int buffer_size, int *position, MPI_Comm comm) |
static Xt_idxlist | idxsection_copy (Xt_idxlist idxlist) |
static void | idxsection_get_indices (Xt_idxlist idxlist, Xt_int *indices) |
static const Xt_int * | idxsection_get_indices_const (Xt_idxlist idxlist) |
static void | idxsection_get_index_stripes (Xt_idxlist idxlist, struct Xt_stripe **stripes, int *num_stripes) |
static int | idxsection_get_index_at_position (Xt_idxlist idxlist, int position, Xt_int *index) |
static int | idxsection_get_position_of_index (Xt_idxlist idxlist, Xt_int index, int *position) |
static int | idxsection_get_position_of_index_off (Xt_idxlist idxlist, Xt_int index, int *position, int offset) |
static int | idxsection_get_positions_of_indices (Xt_idxlist body_idxlist, Xt_int const *selection_idx, int num_selection, int *positions, int single_match_only) |
static Xt_int | idxsection_get_min_index (Xt_idxlist idxlist) |
static Xt_int | idxsection_get_max_index (Xt_idxlist idxlist) |
static int | idxsection_get_num_indices (Xt_idxsection section) |
void | xt_idxsection_initialize (void) |
void | xt_idxsection_finalize (void) |
Xt_idxlist | xt_idxsection_new (Xt_int start, int num_dimensions, const Xt_int global_size[num_dimensions], const int local_size[num_dimensions], const Xt_int local_start[num_dimensions]) |
Xt_idxlist | xt_idxsection_unpack (void *buffer, int buffer_size, int *position, MPI_Comm comm) |
Xt_idxlist | xt_idxsection_get_intersection_with_other_idxlist (Xt_idxlist src_idxsection, Xt_idxlist dst_idxlist) |
Xt_idxlist | xt_idxsection_get_intersection (Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst) |
static int | idxsection_get_indices_any (Xt_int start_index, Xt_int *indices, int ndim, struct dim_desc dims[ndim]) |
static int | idxsection_get_positions_of_indices_v1 (Xt_idxlist body_idxlist, const Xt_int selection_idx[], int num_selection, int positions[], int single_match_only) |
static int | idxsection_get_positions_of_indices_v2 (Xt_idxlist body_idxlist, const Xt_int selection_idx[], int num_selection, int positions[], int single_match_only) |
static size_t | idxsection_get_positions_of_indices_recursive (Xt_int index_offset, int position_offset, const Xt_int indices[], size_t num_indices, int positions[], int ndim, struct dim_desc dims[ndim]) |
static int | idxsection_get_positions_of_indices_v3 (Xt_idxlist body_idxlist, const Xt_int *restrict selection_idx, int num_selection, int *restrict positions, int single_match_only) |
Variables | |
static const struct xt_idxlist_vtable | idxsection_vtable |
static MPI_Datatype | dim_desc_dt |
Definition in file xt_idxsection.c.
typedef struct Xt_idxsection_* Xt_idxsection |
Definition at line 146 of file xt_idxsection.c.
|
static |
Definition at line 560 of file xt_idxsection.c.
|
static |
Definition at line 302 of file xt_idxsection.c.
|
static |
Definition at line 740 of file xt_idxsection.c.
|
static |
Definition at line 676 of file xt_idxsection.c.
|
static |
Definition at line 630 of file xt_idxsection.c.
|
static |
Definition at line 664 of file xt_idxsection.c.
|
static |
Definition at line 1359 of file xt_idxsection.c.
|
static |
Definition at line 1352 of file xt_idxsection.c.
|
static |
|
static |
Definition at line 313 of file xt_idxsection.c.
|
static |
|
static |
|
static |
Definition at line 1282 of file xt_idxsection.c.
|
static |
Definition at line 839 of file xt_idxsection.c.
|
static |
Definition at line 928 of file xt_idxsection.c.
|
static |
Definition at line 1188 of file xt_idxsection.c.
|
static |
Definition at line 329 of file xt_idxsection.c.
void xt_idxsection_finalize | ( | void | ) |
Xt_idxlist xt_idxsection_get_intersection | ( | Xt_idxlist | idxlist_src, |
Xt_idxlist | idxlist_dst | ||
) |
Xt_idxlist xt_idxsection_get_intersection_with_other_idxlist | ( | Xt_idxlist | src_idxsection, |
Xt_idxlist | dst_idxlist | ||
) |
Definition at line 398 of file xt_idxsection.c.
void xt_idxsection_initialize | ( | void | ) |
Xt_idxlist xt_idxsection_new | ( | Xt_int | start, |
int | num_dimensions, | ||
const Xt_int | global_size[num_dimensions], | ||
const int | local_size[num_dimensions], | ||
const Xt_int | local_start[num_dimensions] | ||
) |
generates an index list that is comprised of a section of a set of indices that are arranged in an n-dimensional cartesian coordinate system. The linear index correspondence is computed such that the right-most dimension is the one where indices increase fastest (i.e. according to C convention).
[in] | start | lowest index of the global array (typically 0 or 1) |
[in] | num_dimensions | number of dimensions |
[in] | global_size | global size of each dimension |
[in] | local_size | size of the local section in each dimension |
[in] | local_start | vector with the lowest position in each dimension of the local window within the global index space |
Definition at line 199 of file xt_idxsection.c.
Xt_idxlist xt_idxsection_unpack | ( | void * | buffer, |
int | buffer_size, | ||
int * | position, | ||
MPI_Comm | comm | ||
) |
|
static |
Definition at line 143 of file xt_idxsection.c.
|
static |
Definition at line 114 of file xt_idxsection.c.