#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <assert.h>
#include <stdlib.h>
#include <mpi.h>
#include <yaxt.h>
#include "tests.h"
#include "test_redist_common.h"
int main(void) {
if (size > 1) {
{
{
int local_size[2] = {
size,size};
local_start[0]);
local_start[1]);
}
{
.stride = 1, .nstrides = 2*size*size};
}
Xt_int index_vector_a[2*size*size], index_vector_b[2*size*size];
Xt_int result[4][2*size*size];
Xt_int result_2[9][2*size*size];
for (int i = 0; i < 9; ++i)
for (int j = 0; j < 2*size*size; ++j)
input[i][j] = (
Xt_int)(index_vector_a[j] + i * 4*size*size);
static const int displacements[4] = {0, 1, 2, 3};
static const int displacements_2[4] = {1, 2, 4, 8};
MPI_Aint extent
= (MPI_Aint)(2*(
size_t)size*(size_t)size *
sizeof(
Xt_int));
PUT_ERR("error in xt_redist_get_MPI_Comm\n");
PUT_ERR("error in xt_redist_get_MPI_Comm\n");
for (int i = 0; i < 4; ++i)
for (int j = 0; j < 2*size*size; ++j)
if (result[i][j] != index_vector_b[j] + i * 4*size*size)
PUT_ERR("ERROR: in first xt_redist_s_exchange1\n");
for (int i = 1; i <= 8; i<<=1)
for (int j = 0; j < 2*size*size; ++j)
if (result_2[i][j] != index_vector_b[j] + i * 4*size*size)
PUT_ERR("ERROR: in second xt_redist_s_exchange1\n");
}
}
MPI_Finalize();
return TEST_EXIT_CODE;
}