|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2001 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include <mpiimpl.h>
|
|
Packit Service |
c5cf8c |
#include <mpir_dataloop.h>
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include <stdio.h>
|
|
Packit Service |
c5cf8c |
#include <stdlib.h>
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
typedef struct external32_basic_size {
|
|
Packit Service |
c5cf8c |
MPI_Datatype el_type;
|
|
Packit Service |
c5cf8c |
MPI_Aint el_size;
|
|
Packit Service |
c5cf8c |
} external32_basic_size_t;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static external32_basic_size_t external32_basic_size_array[] = {
|
|
Packit Service |
c5cf8c |
{MPI_PACKED, 1},
|
|
Packit Service |
c5cf8c |
{MPI_BYTE, 1},
|
|
Packit Service |
c5cf8c |
{MPI_CHAR, 1},
|
|
Packit Service |
c5cf8c |
{MPI_UNSIGNED_CHAR, 1},
|
|
Packit Service |
c5cf8c |
{MPI_SIGNED_CHAR, 1},
|
|
Packit Service |
c5cf8c |
{MPI_WCHAR, 2},
|
|
Packit Service |
c5cf8c |
{MPI_SHORT, 2},
|
|
Packit Service |
c5cf8c |
{MPI_UNSIGNED_SHORT, 2},
|
|
Packit Service |
c5cf8c |
{MPI_INT, 4},
|
|
Packit Service |
c5cf8c |
{MPI_UNSIGNED, 4},
|
|
Packit Service |
c5cf8c |
{MPI_LONG, 4},
|
|
Packit Service |
c5cf8c |
{MPI_UNSIGNED_LONG, 4},
|
|
Packit Service |
c5cf8c |
{MPI_LONG_LONG, 8},
|
|
Packit Service |
c5cf8c |
{MPI_LONG_LONG_INT, 8},
|
|
Packit Service |
c5cf8c |
{MPI_UNSIGNED_LONG_LONG, 8},
|
|
Packit Service |
c5cf8c |
{MPI_FLOAT, 4},
|
|
Packit Service |
c5cf8c |
{MPI_DOUBLE, 8},
|
|
Packit Service |
c5cf8c |
{MPI_LONG_DOUBLE, 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_C_BOOL, 1},
|
|
Packit Service |
c5cf8c |
{MPI_INT8_T, 1},
|
|
Packit Service |
c5cf8c |
{MPI_INT16_T, 2},
|
|
Packit Service |
c5cf8c |
{MPI_INT32_T, 4},
|
|
Packit Service |
c5cf8c |
{MPI_INT64_T, 8},
|
|
Packit Service |
c5cf8c |
{MPI_UINT8_T, 1},
|
|
Packit Service |
c5cf8c |
{MPI_UINT16_T, 2},
|
|
Packit Service |
c5cf8c |
{MPI_UINT32_T, 4},
|
|
Packit Service |
c5cf8c |
{MPI_UINT64_T, 8},
|
|
Packit Service |
c5cf8c |
{MPI_AINT, 8},
|
|
Packit Service |
c5cf8c |
{MPI_COUNT, 8},
|
|
Packit Service |
c5cf8c |
{MPI_OFFSET, 8},
|
|
Packit Service |
c5cf8c |
{MPI_C_COMPLEX, 2 * 4},
|
|
Packit Service |
c5cf8c |
{MPI_C_FLOAT_COMPLEX, 2 * 4},
|
|
Packit Service |
c5cf8c |
{MPI_C_DOUBLE_COMPLEX, 2 * 8},
|
|
Packit Service |
c5cf8c |
{MPI_C_LONG_DOUBLE_COMPLEX, 2 * 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_CHARACTER, 1},
|
|
Packit Service |
c5cf8c |
{MPI_LOGICAL, 4},
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER, 4},
|
|
Packit Service |
c5cf8c |
{MPI_REAL, 4},
|
|
Packit Service |
c5cf8c |
{MPI_DOUBLE_PRECISION, 8},
|
|
Packit Service |
c5cf8c |
{MPI_COMPLEX, 8},
|
|
Packit Service |
c5cf8c |
{MPI_DOUBLE_COMPLEX, 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER1, 1},
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER2, 2},
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER4, 4},
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER8, 8},
|
|
Packit Service |
c5cf8c |
{MPI_INTEGER16, 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_REAL4, 4},
|
|
Packit Service |
c5cf8c |
{MPI_REAL8, 8},
|
|
Packit Service |
c5cf8c |
{MPI_REAL16, 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_COMPLEX8, 2 * 4},
|
|
Packit Service |
c5cf8c |
{MPI_COMPLEX16, 2 * 8},
|
|
Packit Service |
c5cf8c |
{MPI_COMPLEX32, 2 * 16},
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
{MPI_CXX_BOOL, 1},
|
|
Packit Service |
c5cf8c |
{MPI_CXX_FLOAT_COMPLEX, 2 * 4},
|
|
Packit Service |
c5cf8c |
{MPI_CXX_DOUBLE_COMPLEX, 2 * 8},
|
|
Packit Service |
c5cf8c |
{MPI_CXX_LONG_DOUBLE_COMPLEX, 2 * 16}
|
|
Packit Service |
c5cf8c |
};
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
MPI_Aint MPII_Datatype_get_basic_size_external32(MPI_Datatype el_type)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
MPI_Aint ret = (MPI_Aint) 0;
|
|
Packit Service |
c5cf8c |
unsigned int i = 0;
|
|
Packit Service |
c5cf8c |
for (i = 0; i < (sizeof(external32_basic_size_array) / sizeof(external32_basic_size_t)); i++) {
|
|
Packit Service |
c5cf8c |
if (external32_basic_size_array[i].el_type == el_type) {
|
|
Packit Service |
c5cf8c |
ret = external32_basic_size_array[i].el_size;
|
|
Packit Service |
c5cf8c |
break;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
return ret;
|
|
Packit Service |
c5cf8c |
}
|