libxmp/libxmpf in Omni Compiler  1.3.4
xmp_array_section.c File Reference
#include <string.h>
#include "xmp_internal.h"
#include "xmp_math_function.h"
Include dependency graph for xmp_array_section.c:

Macros

#define _XMPC_SM_PACK_ARRAY_1(_type)
 
#define _XMPC_SM_PACK_ARRAY_2(_type)
 
#define _XMPC_SM_PACK_ARRAY_3(_type)
 
#define _XMPC_SM_PACK_ARRAY_4(_type)
 
#define _XMPC_SM_PACK_ARRAY_5(_type)
 
#define _XMPC_SM_PACK_ARRAY_6(_type)
 
#define _XMPC_SM_PACK_ARRAY_7(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_1(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_2(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_3(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_4(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_5(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_6(_type)
 
#define _XMPC_SM_UNPACK_ARRAY_7(_type)
 

Functions

void _XMP_normalize_array_section (_XMP_gmv_desc_t *gmv_desc, int idim, int *lower, int *upper, int *stride)
 
void _XMPC_pack_array_BASIC (void *buffer, void *src, int array_type, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 
void _XMPC_pack_array_GENERAL (void *buffer, void *src, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 
void _XMPC_unpack_array_BASIC (void *dst, void *buffer, int array_type, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 
void _XMPC_unpack_array_GENERAL (void *dst, void *buffer, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 
void _XMPC_pack_array (void *buffer, void *src, int array_type, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 
void _XMPC_unpack_array (void *dst, void *buffer, int array_type, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
 

Macro Definition Documentation

◆ _XMPC_SM_PACK_ARRAY_1

#define _XMPC_SM_PACK_ARRAY_1 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int src_lower, int src_upper, int src_stride) { \
for (int i = src_lower; i <= src_upper; i += src_stride) { \
*buf_addr = src_addr[i]; \
buf_addr++; \
} \
}

◆ _XMPC_SM_PACK_ARRAY_2

#define _XMPC_SM_PACK_ARRAY_2 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; \
for (int j = src_lower0; j <= src_upper0; j += src_stride0) { \
_type *addr = src_addr + (j * src_dim_acc0); \
for (int i = src_lower1; i <= src_upper1; i += src_stride1) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
}

◆ _XMPC_SM_PACK_ARRAY_3

#define _XMPC_SM_PACK_ARRAY_3 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; unsigned long long src_dim_acc1 = d[1]; \
int src_lower2 = l[2]; int src_upper2 = u[2]; int src_stride2 = s[2]; \
for (int k = src_lower0; k <= src_upper0; k += src_stride0) { \
for (int j = src_lower1; j <= src_upper1; j += src_stride1) { \
_type *addr = src_addr + (k * src_dim_acc0) + (j * src_dim_acc1); \
for (int i = src_lower2; i <= src_upper2; i += src_stride2) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
} \
}

◆ _XMPC_SM_PACK_ARRAY_4

#define _XMPC_SM_PACK_ARRAY_4 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; unsigned long long src_dim_acc1 = d[1]; \
int src_lower2 = l[2]; int src_upper2 = u[2]; int src_stride2 = s[2]; unsigned long long src_dim_acc2 = d[2]; \
int src_lower3 = l[3]; int src_upper3 = u[3]; int src_stride3 = s[3]; \
for (int l = src_lower0; l <= src_upper0; l += src_stride0) { \
for (int k = src_lower1; k <= src_upper1; k += src_stride1) { \
for (int j = src_lower2; j <= src_upper2; j += src_stride2) { \
_type *addr = src_addr + (l * src_dim_acc0) + (k * src_dim_acc1) + (j * src_dim_acc2); \
for (int i = src_lower3; i <= src_upper3; i += src_stride3) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
} \
} \
}

◆ _XMPC_SM_PACK_ARRAY_5

#define _XMPC_SM_PACK_ARRAY_5 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; unsigned long long src_dim_acc1 = d[1]; \
int src_lower2 = l[2]; int src_upper2 = u[2]; int src_stride2 = s[2]; unsigned long long src_dim_acc2 = d[2]; \
int src_lower3 = l[3]; int src_upper3 = u[3]; int src_stride3 = s[3]; unsigned long long src_dim_acc3 = d[3]; \
int src_lower4 = l[4]; int src_upper4 = u[4]; int src_stride4 = s[4]; \
for (int m = src_lower0; m <= src_upper0; m += src_stride0) { \
for (int l = src_lower1; l <= src_upper1; l += src_stride1) { \
for (int k = src_lower2; k <= src_upper2; k += src_stride2) { \
for (int j = src_lower3; j <= src_upper3; j += src_stride3) { \
_type *addr = src_addr + (m * src_dim_acc0) + (l * src_dim_acc1) + (k * src_dim_acc2) + (j * src_dim_acc3); \
for (int i = src_lower4; i <= src_upper4; i += src_stride4) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
} \
} \
} \
}

◆ _XMPC_SM_PACK_ARRAY_6

#define _XMPC_SM_PACK_ARRAY_6 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; unsigned long long src_dim_acc1 = d[1]; \
int src_lower2 = l[2]; int src_upper2 = u[2]; int src_stride2 = s[2]; unsigned long long src_dim_acc2 = d[2]; \
int src_lower3 = l[3]; int src_upper3 = u[3]; int src_stride3 = s[3]; unsigned long long src_dim_acc3 = d[3]; \
int src_lower4 = l[4]; int src_upper4 = u[4]; int src_stride4 = s[4]; unsigned long long src_dim_acc4 = d[4]; \
int src_lower5 = l[5]; int src_upper5 = u[5]; int src_stride5 = s[5]; \
for (int n = src_lower0; n <= src_upper0; n += src_stride0) { \
for (int m = src_lower1; m <= src_upper1; m += src_stride1) { \
for (int l = src_lower2; l <= src_upper2; l += src_stride2) { \
for (int k = src_lower3; k <= src_upper3; k += src_stride3) { \
for (int j = src_lower4; j <= src_upper4; j += src_stride4) { \
_type *addr = src_addr + (n * src_dim_acc0) + (m * src_dim_acc1) + (l * src_dim_acc2) + \
(k * src_dim_acc3) + (j * src_dim_acc4); \
for (int i = src_lower5; i <= src_upper5; i += src_stride5) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
} \
} \
} \
} \
}

◆ _XMPC_SM_PACK_ARRAY_7

#define _XMPC_SM_PACK_ARRAY_7 (   _type)
Value:
(_type *buf_addr, _type *src_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int src_lower0 = l[0]; int src_upper0 = u[0]; int src_stride0 = s[0]; unsigned long long src_dim_acc0 = d[0]; \
int src_lower1 = l[1]; int src_upper1 = u[1]; int src_stride1 = s[1]; unsigned long long src_dim_acc1 = d[1]; \
int src_lower2 = l[2]; int src_upper2 = u[2]; int src_stride2 = s[2]; unsigned long long src_dim_acc2 = d[2]; \
int src_lower3 = l[3]; int src_upper3 = u[3]; int src_stride3 = s[3]; unsigned long long src_dim_acc3 = d[3]; \
int src_lower4 = l[4]; int src_upper4 = u[4]; int src_stride4 = s[4]; unsigned long long src_dim_acc4 = d[4]; \
int src_lower5 = l[5]; int src_upper5 = u[5]; int src_stride5 = s[5]; unsigned long long src_dim_acc5 = d[5]; \
int src_lower6 = l[6]; int src_upper6 = u[6]; int src_stride6 = s[6]; \
for (int o = src_lower0; o <= src_upper0; o += src_stride0) { \
for (int n = src_lower1; n <= src_upper1; n += src_stride1) { \
for (int m = src_lower2; m <= src_upper2; m += src_stride2) { \
for (int l = src_lower3; l <= src_upper3; l += src_stride3) { \
for (int k = src_lower4; k <= src_upper4; k += src_stride4) { \
for (int j = src_lower5; j <= src_upper5; j += src_stride5) { \
_type *addr = src_addr + (o * src_dim_acc0) + (n * src_dim_acc1) + (m * src_dim_acc2) + \
(l * src_dim_acc3) + (k * src_dim_acc4) + (j * src_dim_acc5); \
for (int i = src_lower6; i <= src_upper6; i += src_stride6) { \
*buf_addr = addr[i]; \
buf_addr++; \
} \
} \
} \
} \
} \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_1

#define _XMPC_SM_UNPACK_ARRAY_1 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int dst_lower, int dst_upper, int dst_stride) { \
for (int i = dst_lower; i <= dst_upper; i += dst_stride) { \
dst_addr[i] = *buf_addr; \
buf_addr++; \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_2

#define _XMPC_SM_UNPACK_ARRAY_2 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; \
for (int j = dst_lower0; j <= dst_upper0; j += dst_stride0) { \
_type *addr = dst_addr + (j * dst_dim_acc0); \
for (int i = dst_lower1; i <= dst_upper1; i += dst_stride1) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_3

#define _XMPC_SM_UNPACK_ARRAY_3 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; unsigned long long dst_dim_acc1 = d[1]; \
int dst_lower2 = l[2]; int dst_upper2 = u[2]; int dst_stride2 = s[2]; \
for (int k = dst_lower0; k <= dst_upper0; k += dst_stride0) { \
for (int j = dst_lower1; j <= dst_upper1; j += dst_stride1) { \
_type *addr = dst_addr + (k * dst_dim_acc0) + (j * dst_dim_acc1); \
for (int i = dst_lower2; i <= dst_upper2; i += dst_stride2) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_4

#define _XMPC_SM_UNPACK_ARRAY_4 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; unsigned long long dst_dim_acc1 = d[1]; \
int dst_lower2 = l[2]; int dst_upper2 = u[2]; int dst_stride2 = s[2]; unsigned long long dst_dim_acc2 = d[2]; \
int dst_lower3 = l[3]; int dst_upper3 = u[3]; int dst_stride3 = s[3]; \
for (int l = dst_lower0; l <= dst_upper0; l += dst_stride0) { \
for (int k = dst_lower1; k <= dst_upper1; k += dst_stride1) { \
for (int j = dst_lower2; j <= dst_upper2; j += dst_stride2) { \
_type *addr = dst_addr + (l * dst_dim_acc0) + (k * dst_dim_acc1) + (j * dst_dim_acc2); \
for (int i = dst_lower3; i <= dst_upper3; i += dst_stride3) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_5

#define _XMPC_SM_UNPACK_ARRAY_5 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; unsigned long long dst_dim_acc1 = d[1]; \
int dst_lower2 = l[2]; int dst_upper2 = u[2]; int dst_stride2 = s[2]; unsigned long long dst_dim_acc2 = d[2]; \
int dst_lower3 = l[3]; int dst_upper3 = u[3]; int dst_stride3 = s[3]; unsigned long long dst_dim_acc3 = d[3]; \
int dst_lower4 = l[4]; int dst_upper4 = u[4]; int dst_stride4 = s[4]; \
for (int m = dst_lower0; m <= dst_upper0; m += dst_stride0) { \
for (int l = dst_lower1; l <= dst_upper1; l += dst_stride1) { \
for (int k = dst_lower2; k <= dst_upper2; k += dst_stride2) { \
for (int j = dst_lower3; j <= dst_upper3; j += dst_stride3) { \
_type *addr = dst_addr + (m * dst_dim_acc0) + (l * dst_dim_acc1) + (k * dst_dim_acc2) + (j * dst_dim_acc3); \
for (int i = dst_lower4; i <= dst_upper4; i += dst_stride4) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
} \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_6

#define _XMPC_SM_UNPACK_ARRAY_6 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; unsigned long long dst_dim_acc1 = d[1]; \
int dst_lower2 = l[2]; int dst_upper2 = u[2]; int dst_stride2 = s[2]; unsigned long long dst_dim_acc2 = d[2]; \
int dst_lower3 = l[3]; int dst_upper3 = u[3]; int dst_stride3 = s[3]; unsigned long long dst_dim_acc3 = d[3]; \
int dst_lower4 = l[4]; int dst_upper4 = u[4]; int dst_stride4 = s[4]; unsigned long long dst_dim_acc4 = d[4]; \
int dst_lower5 = l[5]; int dst_upper5 = u[5]; int dst_stride5 = s[5]; \
for (int n = dst_lower0; n <= dst_upper0; n += dst_stride0) { \
for (int m = dst_lower1; m <= dst_upper1; m += dst_stride1) { \
for (int l = dst_lower2; l <= dst_upper2; l += dst_stride2) { \
for (int k = dst_lower3; k <= dst_upper3; k += dst_stride3) { \
for (int j = dst_lower4; j <= dst_upper4; j += dst_stride4) { \
_type *addr = dst_addr + (n * dst_dim_acc0) + (m * dst_dim_acc1) + (l * dst_dim_acc2) + \
(k * dst_dim_acc3) + (j * dst_dim_acc4); \
for (int i = dst_lower5; i <= dst_upper5; i += dst_stride5) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
} \
} \
} \
} \
}

◆ _XMPC_SM_UNPACK_ARRAY_7

#define _XMPC_SM_UNPACK_ARRAY_7 (   _type)
Value:
(_type *dst_addr, _type *buf_addr, \
int *l, int *u, int *s, unsigned long long *d) { \
int dst_lower0 = l[0]; int dst_upper0 = u[0]; int dst_stride0 = s[0]; unsigned long long dst_dim_acc0 = d[0]; \
int dst_lower1 = l[1]; int dst_upper1 = u[1]; int dst_stride1 = s[1]; unsigned long long dst_dim_acc1 = d[1]; \
int dst_lower2 = l[2]; int dst_upper2 = u[2]; int dst_stride2 = s[2]; unsigned long long dst_dim_acc2 = d[2]; \
int dst_lower3 = l[3]; int dst_upper3 = u[3]; int dst_stride3 = s[3]; unsigned long long dst_dim_acc3 = d[3]; \
int dst_lower4 = l[4]; int dst_upper4 = u[4]; int dst_stride4 = s[4]; unsigned long long dst_dim_acc4 = d[4]; \
int dst_lower5 = l[5]; int dst_upper5 = u[5]; int dst_stride5 = s[5]; unsigned long long dst_dim_acc5 = d[5]; \
int dst_lower6 = l[6]; int dst_upper6 = u[6]; int dst_stride6 = s[6]; \
for (int o = dst_lower0; o <= dst_upper0; o += dst_stride0) { \
for (int n = dst_lower1; n <= dst_upper1; n += dst_stride1) { \
for (int m = dst_lower2; m <= dst_upper2; m += dst_stride2) { \
for (int l = dst_lower3; l <= dst_upper3; l += dst_stride3) { \
for (int k = dst_lower4; k <= dst_upper4; k += dst_stride4) { \
for (int j = dst_lower5; j <= dst_upper5; j += dst_stride5) { \
_type *addr = dst_addr + (o * dst_dim_acc0) + (n * dst_dim_acc1) + (m * dst_dim_acc2) + \
(l * dst_dim_acc3) + (k * dst_dim_acc4) + (j * dst_dim_acc5); \
for (int i = dst_lower6; i <= dst_upper6; i += dst_stride6) { \
addr[i] = *buf_addr; \
buf_addr++; \
} \
} \
} \
} \
} \
} \
} \
}

Function Documentation

◆ _XMP_normalize_array_section()

void _XMP_normalize_array_section ( _XMP_gmv_desc_t gmv_desc,
int  idim,
int *  lower,
int *  upper,
int *  stride 
)
899  {
900  // setup temporary variables
901 
902  //_XMPC_array_t *array = gmv_desc->a_desc;
903  int l, u;
904  int s = *(stride);
905  if (s > 0) {
906  l = *lower;
907  u = *upper;
908  }
909  else if (s < 0) {
910  l = *upper;
911  u = *lower;
912  }
913  else { // s == 0 (scalar), do nothing
914  return;
915  /* if (*lower==0 && *upper==0){ */
916  /* if (gmv_desc->is_global == true){ */
917  /* l = array->info[idim].ser_lower; */
918  /* u = array->info[idim].ser_upper; */
919  /* s = 1; */
920  /* }else{ */
921  /* l = gmv_desc->a_lb[idim]; */
922  /* u = gmv_desc->a_ub[idim]; */
923  /* s = 1; */
924  /* } */
925  /* }else{ */
926  /* l = *lower; */
927  /* u = *lower; */
928  /* s = 1; */
929  /* } */
930  /* // _XMP_fatal("the stride of <array-section> is 0"); */
931  /* // l = 0; u = 0; // XXX dummy */
932  }
933 
934  // normalize values
935  if (s > 0) {
936  u = u - ((u - l) % s);
937  }
938  else {
939  s = -s;
940  l = l + ((u - l) % s);
941  }
942  *lower = l;
943  *upper = u;
944  *stride = s;
945 }

◆ _XMPC_pack_array()

void _XMPC_pack_array ( void *  buffer,
void *  src,
int  array_type,
size_t  array_type_size,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
1351  {
1352  if (array_type >= _XMP_N_TYPE_FLOAT_COMPLEX && array_type <= _XMP_N_TYPE_NONBASIC) {
1353  /*_XMP_N_TYPE_FLOAT_COMPLEX || _XMP_N_TYPE_DOUBLE_COMPLEX ||
1354  _XMP_N_TYPE_LONG_DOUBLE_COMPLEX ||
1355  _XMP_N_TYPE_NONBASIC */
1356  _XMPC_pack_array_GENERAL(buffer, src, array_type_size, array_dim, l, u, s, d);
1357 #ifdef __STD_IEC_559_COMPLEX__
1358  } else if (array_type >= _XMP_N_TYPE_FLOAT_IMAGINARY && array_type <= _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY) {
1359  /* _XMP_N_TYPE_FLOAT_IMAGINARY || _XMP_N_TYPE_DOUBLE_IMAGINARY ||
1360  _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY */
1361  _XMPC_pack_array_GENERAL(buffer, src, array_type_size, array_dim, l, u, s, d);
1362 #endif
1363  } else {
1364  _XMPC_pack_array_BASIC(buffer, src, array_type, array_dim, l, u, s, d);
1365  }
1366 }
Here is the call graph for this function:

◆ _XMPC_pack_array_BASIC()

void _XMPC_pack_array_BASIC ( void *  buffer,
void *  src,
int  array_type,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
948  {
949  switch (array_type) {
950  case _XMP_N_TYPE_BOOL: {
951  switch (array_dim) {
952  case 1: _XMPC_pack_array_1_BOOL(buffer, src, l[0], u[0], s[0]); break;
953  case 2: _XMPC_pack_array_2_BOOL(buffer, src, l, u, s, d); break;
954  case 3: _XMPC_pack_array_3_BOOL(buffer, src, l, u, s, d); break;
955  case 4: _XMPC_pack_array_4_BOOL(buffer, src, l, u, s, d); break;
956  case 5: _XMPC_pack_array_5_BOOL(buffer, src, l, u, s, d); break;
957  case 6: _XMPC_pack_array_6_BOOL(buffer, src, l, u, s, d); break;
958  case 7: _XMPC_pack_array_7_BOOL(buffer, src, l, u, s, d); break;
959  default: _XMP_fatal("wrong array dimension");
960  }
961  } break;
962  case _XMP_N_TYPE_CHAR: {
963  switch (array_dim) {
964  case 1: _XMPC_pack_array_1_CHAR(buffer, src, l[0], u[0], s[0]); break;
965  case 2: _XMPC_pack_array_2_CHAR(buffer, src, l, u, s, d); break;
966  case 3: _XMPC_pack_array_3_CHAR(buffer, src, l, u, s, d); break;
967  case 4: _XMPC_pack_array_4_CHAR(buffer, src, l, u, s, d); break;
968  case 5: _XMPC_pack_array_5_CHAR(buffer, src, l, u, s, d); break;
969  case 6: _XMPC_pack_array_6_CHAR(buffer, src, l, u, s, d); break;
970  case 7: _XMPC_pack_array_7_CHAR(buffer, src, l, u, s, d); break;
971  default: _XMP_fatal("wrong array dimension");
972  }
973  } break;
975  switch (array_dim) {
976  case 1: _XMPC_pack_array_1_UNSIGNED_CHAR(buffer, src, l[0], u[0], s[0]); break;
977  case 2: _XMPC_pack_array_2_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
978  case 3: _XMPC_pack_array_3_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
979  case 4: _XMPC_pack_array_4_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
980  case 5: _XMPC_pack_array_5_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
981  case 6: _XMPC_pack_array_6_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
982  case 7: _XMPC_pack_array_7_UNSIGNED_CHAR(buffer, src, l, u, s, d); break;
983  default: _XMP_fatal("wrong array dimension");
984  }
985  } break;
986  case _XMP_N_TYPE_SHORT: {
987  switch (array_dim) {
988  case 1: _XMPC_pack_array_1_SHORT(buffer, src, l[0], u[0], s[0]); break;
989  case 2: _XMPC_pack_array_2_SHORT(buffer, src, l, u, s, d); break;
990  case 3: _XMPC_pack_array_3_SHORT(buffer, src, l, u, s, d); break;
991  case 4: _XMPC_pack_array_4_SHORT(buffer, src, l, u, s, d); break;
992  case 5: _XMPC_pack_array_5_SHORT(buffer, src, l, u, s, d); break;
993  case 6: _XMPC_pack_array_6_SHORT(buffer, src, l, u, s, d); break;
994  case 7: _XMPC_pack_array_7_SHORT(buffer, src, l, u, s, d); break;
995  default: _XMP_fatal("wrong array dimension");
996  }
997  } break;
999  switch (array_dim) {
1000  case 1: _XMPC_pack_array_1_UNSIGNED_SHORT(buffer, src, l[0], u[0], s[0]); break;
1001  case 2: _XMPC_pack_array_2_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1002  case 3: _XMPC_pack_array_3_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1003  case 4: _XMPC_pack_array_4_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1004  case 5: _XMPC_pack_array_5_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1005  case 6: _XMPC_pack_array_6_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1006  case 7: _XMPC_pack_array_7_UNSIGNED_SHORT(buffer, src, l, u, s, d); break;
1007  default: _XMP_fatal("wrong array dimension");
1008  }
1009  } break;
1010  case _XMP_N_TYPE_INT: {
1011  switch (array_dim) {
1012  case 1: _XMPC_pack_array_1_INT(buffer, src, l[0], u[0], s[0]); break;
1013  case 2: _XMPC_pack_array_2_INT(buffer, src, l, u, s, d); break;
1014  case 3: _XMPC_pack_array_3_INT(buffer, src, l, u, s, d); break;
1015  case 4: _XMPC_pack_array_4_INT(buffer, src, l, u, s, d); break;
1016  case 5: _XMPC_pack_array_5_INT(buffer, src, l, u, s, d); break;
1017  case 6: _XMPC_pack_array_6_INT(buffer, src, l, u, s, d); break;
1018  case 7: _XMPC_pack_array_7_INT(buffer, src, l, u, s, d); break;
1019  default: _XMP_fatal("wrong array dimension");
1020  }
1021  } break;
1022  case _XMP_N_TYPE_UNSIGNED_INT: {
1023  switch (array_dim) {
1024  case 1: _XMPC_pack_array_1_UNSIGNED_INT(buffer, src, l[0], u[0], s[0]); break;
1025  case 2: _XMPC_pack_array_2_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1026  case 3: _XMPC_pack_array_3_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1027  case 4: _XMPC_pack_array_4_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1028  case 5: _XMPC_pack_array_5_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1029  case 6: _XMPC_pack_array_6_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1030  case 7: _XMPC_pack_array_7_UNSIGNED_INT(buffer, src, l, u, s, d); break;
1031  default: _XMP_fatal("wrong array dimension");
1032  }
1033  } break;
1034  case _XMP_N_TYPE_LONG: {
1035  switch (array_dim) {
1036  case 1: _XMPC_pack_array_1_LONG(buffer, src, l[0], u[0], s[0]); break;
1037  case 2: _XMPC_pack_array_2_LONG(buffer, src, l, u, s, d); break;
1038  case 3: _XMPC_pack_array_3_LONG(buffer, src, l, u, s, d); break;
1039  case 4: _XMPC_pack_array_4_LONG(buffer, src, l, u, s, d); break;
1040  case 5: _XMPC_pack_array_5_LONG(buffer, src, l, u, s, d); break;
1041  case 6: _XMPC_pack_array_6_LONG(buffer, src, l, u, s, d); break;
1042  case 7: _XMPC_pack_array_7_LONG(buffer, src, l, u, s, d); break;
1043  default: _XMP_fatal("wrong array dimension");
1044  }
1045  } break;
1047  switch (array_dim) {
1048  case 1: _XMPC_pack_array_1_UNSIGNED_LONG(buffer, src, l[0], u[0], s[0]); break;
1049  case 2: _XMPC_pack_array_2_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1050  case 3: _XMPC_pack_array_3_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1051  case 4: _XMPC_pack_array_4_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1052  case 5: _XMPC_pack_array_5_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1053  case 6: _XMPC_pack_array_6_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1054  case 7: _XMPC_pack_array_7_UNSIGNED_LONG(buffer, src, l, u, s, d); break;
1055  default: _XMP_fatal("wrong array dimension");
1056  }
1057  } break;
1058  case _XMP_N_TYPE_LONGLONG: {
1059  switch (array_dim) {
1060  case 1: _XMPC_pack_array_1_LONGLONG(buffer, src, l[0], u[0], s[0]); break;
1061  case 2: _XMPC_pack_array_2_LONGLONG(buffer, src, l, u, s, d); break;
1062  case 3: _XMPC_pack_array_3_LONGLONG(buffer, src, l, u, s, d); break;
1063  case 4: _XMPC_pack_array_4_LONGLONG(buffer, src, l, u, s, d); break;
1064  case 5: _XMPC_pack_array_5_LONGLONG(buffer, src, l, u, s, d); break;
1065  case 6: _XMPC_pack_array_6_LONGLONG(buffer, src, l, u, s, d); break;
1066  case 7: _XMPC_pack_array_7_LONGLONG(buffer, src, l, u, s, d); break;
1067  default: _XMP_fatal("wrong array dimension");
1068  }
1069  } break;
1071  switch (array_dim) {
1072  case 1: _XMPC_pack_array_1_UNSIGNED_LONGLONG(buffer, src, l[0], u[0], s[0]); break;
1073  case 2: _XMPC_pack_array_2_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1074  case 3: _XMPC_pack_array_3_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1075  case 4: _XMPC_pack_array_4_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1076  case 5: _XMPC_pack_array_5_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1077  case 6: _XMPC_pack_array_6_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1078  case 7: _XMPC_pack_array_7_UNSIGNED_LONGLONG(buffer, src, l, u, s, d); break;
1079  default: _XMP_fatal("wrong array dimension");
1080  }
1081  } break;
1082  case _XMP_N_TYPE_FLOAT: {
1083  switch (array_dim) {
1084  case 1: _XMPC_pack_array_1_FLOAT(buffer, src, l[0], u[0], s[0]); break;
1085  case 2: _XMPC_pack_array_2_FLOAT(buffer, src, l, u, s, d); break;
1086  case 3: _XMPC_pack_array_3_FLOAT(buffer, src, l, u, s, d); break;
1087  case 4: _XMPC_pack_array_4_FLOAT(buffer, src, l, u, s, d); break;
1088  case 5: _XMPC_pack_array_5_FLOAT(buffer, src, l, u, s, d); break;
1089  case 6: _XMPC_pack_array_6_FLOAT(buffer, src, l, u, s, d); break;
1090  case 7: _XMPC_pack_array_7_FLOAT(buffer, src, l, u, s, d); break;
1091  default: _XMP_fatal("wrong array dimension");
1092  }
1093  } break;
1094  case _XMP_N_TYPE_DOUBLE: {
1095  switch (array_dim) {
1096  case 1: _XMPC_pack_array_1_DOUBLE(buffer, src, l[0], u[0], s[0]); break;
1097  case 2: _XMPC_pack_array_2_DOUBLE(buffer, src, l, u, s, d); break;
1098  case 3: _XMPC_pack_array_3_DOUBLE(buffer, src, l, u, s, d); break;
1099  case 4: _XMPC_pack_array_4_DOUBLE(buffer, src, l, u, s, d); break;
1100  case 5: _XMPC_pack_array_5_DOUBLE(buffer, src, l, u, s, d); break;
1101  case 6: _XMPC_pack_array_6_DOUBLE(buffer, src, l, u, s, d); break;
1102  case 7: _XMPC_pack_array_7_DOUBLE(buffer, src, l, u, s, d); break;
1103  default: _XMP_fatal("wrong array dimension");
1104  }
1105  } break;
1106  case _XMP_N_TYPE_LONG_DOUBLE: {
1107  switch (array_dim) {
1108  case 1: _XMPC_pack_array_1_LONG_DOUBLE(buffer, src, l[0], u[0], s[0]); break;
1109  case 2: _XMPC_pack_array_2_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1110  case 3: _XMPC_pack_array_3_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1111  case 4: _XMPC_pack_array_4_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1112  case 5: _XMPC_pack_array_5_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1113  case 6: _XMPC_pack_array_6_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1114  case 7: _XMPC_pack_array_7_LONG_DOUBLE(buffer, src, l, u, s, d); break;
1115  default: _XMP_fatal("wrong array dimension");
1116  }
1117  } break;
1118  // case _XMP_N_TYPE_FLOAT_IMAGINARY:
1119  // _XMP_fatal("unknown data type for reflect");
1120  // case _XMP_N_TYPE_DOUBLE_IMAGINARY:
1121  // _XMP_fatal("unknown data type for reflect");
1122  // case _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY:
1123  // _XMP_fatal("unknown data type for reflect");
1124  // case _XMP_N_TYPE_FLOAT_COMPLEX:
1125  // _XMP_fatal("unknown data type for reflect");
1126  // case _XMP_N_TYPE_DOUBLE_COMPLEX:
1127  // _XMP_fatal("unknown data type for reflect");
1128  // case _XMP_N_TYPE_LONG_DOUBLE_COMPLEX:
1129  default:
1130  _XMP_fatal("unknown data type for packing arrays");
1131  }
1132 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _XMPC_pack_array_GENERAL()

void _XMPC_pack_array_GENERAL ( void *  buffer,
void *  src,
size_t  array_type_size,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
1135  {
1136  switch (array_dim) {
1137  case 1: _XMPC_pack_array_1_GENERAL(buffer, src, array_type_size, l[0], u[0], s[0]); break;
1138  case 2: _XMPC_pack_array_2_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1139  case 3: _XMPC_pack_array_3_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1140  case 4: _XMPC_pack_array_4_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1141  case 5: _XMPC_pack_array_5_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1142  case 6: _XMPC_pack_array_6_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1143  case 7: _XMPC_pack_array_7_GENERAL(buffer, src, array_type_size, l, u, s, d); break;
1144  default: _XMP_fatal("wrong array dimension");
1145  }
1146 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _XMPC_unpack_array()

void _XMPC_unpack_array ( void *  dst,
void *  buffer,
int  array_type,
size_t  array_type_size,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
1369  {
1370  if (array_type >= _XMP_N_TYPE_FLOAT_COMPLEX && array_type <= _XMP_N_TYPE_NONBASIC) {
1371  /*_XMP_N_TYPE_FLOAT_COMPLEX || _XMP_N_TYPE_DOUBLE_COMPLEX ||
1372  _XMP_N_TYPE_LONG_DOUBLE_COMPLEX ||
1373  _XMP_N_TYPE_NONBASIC */
1374  _XMPC_unpack_array_GENERAL(dst, buffer, array_type_size, array_dim, l, u, s, d);
1375 #ifdef __STD_IEC_559_COMPLEX__
1376  } else if (array_type >= _XMP_N_TYPE_FLOAT_IMAGINARY && array_type <= _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY) {
1377  /* _XMP_N_TYPE_FLOAT_IMAGINARY || _XMP_N_TYPE_DOUBLE_IMAGINARY ||
1378  _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY */
1379  _XMPC_unpack_array_GENERAL(dst, buffer, array_type_size, array_dim, l, u, s, d);
1380 #endif
1381  } else {
1382  _XMPC_unpack_array_BASIC(dst, buffer, array_type, array_dim, l, u, s, d);
1383  }
1384 }
Here is the call graph for this function:

◆ _XMPC_unpack_array_BASIC()

void _XMPC_unpack_array_BASIC ( void *  dst,
void *  buffer,
int  array_type,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
1149  {
1150  switch (array_type) {
1151  case _XMP_N_TYPE_BOOL: {
1152  switch (array_dim) {
1153  case 1: _XMPC_unpack_array_1_BOOL(dst, buffer, l[0], u[0], s[0]); break;
1154  case 2: _XMPC_unpack_array_2_BOOL(dst, buffer, l, u, s, d); break;
1155  case 3: _XMPC_unpack_array_3_BOOL(dst, buffer, l, u, s, d); break;
1156  case 4: _XMPC_unpack_array_4_BOOL(dst, buffer, l, u, s, d); break;
1157  case 5: _XMPC_unpack_array_5_BOOL(dst, buffer, l, u, s, d); break;
1158  case 6: _XMPC_unpack_array_6_BOOL(dst, buffer, l, u, s, d); break;
1159  case 7: _XMPC_unpack_array_7_BOOL(dst, buffer, l, u, s, d); break;
1160  default: _XMP_fatal("wrong array dimension");
1161  }
1162  } break;
1163  case _XMP_N_TYPE_CHAR: {
1164  switch (array_dim) {
1165  case 1: _XMPC_unpack_array_1_CHAR(dst, buffer, l[0], u[0], s[0]); break;
1166  case 2: _XMPC_unpack_array_2_CHAR(dst, buffer, l, u, s, d); break;
1167  case 3: _XMPC_unpack_array_3_CHAR(dst, buffer, l, u, s, d); break;
1168  case 4: _XMPC_unpack_array_4_CHAR(dst, buffer, l, u, s, d); break;
1169  case 5: _XMPC_unpack_array_5_CHAR(dst, buffer, l, u, s, d); break;
1170  case 6: _XMPC_unpack_array_6_CHAR(dst, buffer, l, u, s, d); break;
1171  case 7: _XMPC_unpack_array_7_CHAR(dst, buffer, l, u, s, d); break;
1172  default: _XMP_fatal("wrong array dimension");
1173  }
1174  } break;
1176  switch (array_dim) {
1177  case 1: _XMPC_unpack_array_1_UNSIGNED_CHAR(dst, buffer, l[0], u[0], s[0]); break;
1178  case 2: _XMPC_unpack_array_2_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1179  case 3: _XMPC_unpack_array_3_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1180  case 4: _XMPC_unpack_array_4_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1181  case 5: _XMPC_unpack_array_5_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1182  case 6: _XMPC_unpack_array_6_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1183  case 7: _XMPC_unpack_array_7_UNSIGNED_CHAR(dst, buffer, l, u, s, d); break;
1184  default: _XMP_fatal("wrong array dimension");
1185  }
1186  } break;
1187  case _XMP_N_TYPE_SHORT: {
1188  switch (array_dim) {
1189  case 1: _XMPC_unpack_array_1_SHORT(dst, buffer, l[0], u[0], s[0]); break;
1190  case 2: _XMPC_unpack_array_2_SHORT(dst, buffer, l, u, s, d); break;
1191  case 3: _XMPC_unpack_array_3_SHORT(dst, buffer, l, u, s, d); break;
1192  case 4: _XMPC_unpack_array_4_SHORT(dst, buffer, l, u, s, d); break;
1193  case 5: _XMPC_unpack_array_5_SHORT(dst, buffer, l, u, s, d); break;
1194  case 6: _XMPC_unpack_array_6_SHORT(dst, buffer, l, u, s, d); break;
1195  case 7: _XMPC_unpack_array_7_SHORT(dst, buffer, l, u, s, d); break;
1196  default: _XMP_fatal("wrong array dimension");
1197  }
1198  } break;
1200  switch (array_dim) {
1201  case 1: _XMPC_unpack_array_1_UNSIGNED_SHORT(dst, buffer, l[0], u[0], s[0]); break;
1202  case 2: _XMPC_unpack_array_2_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1203  case 3: _XMPC_unpack_array_3_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1204  case 4: _XMPC_unpack_array_4_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1205  case 5: _XMPC_unpack_array_5_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1206  case 6: _XMPC_unpack_array_6_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1207  case 7: _XMPC_unpack_array_7_UNSIGNED_SHORT(dst, buffer, l, u, s, d); break;
1208  default: _XMP_fatal("wrong array dimension");
1209  }
1210  } break;
1211  case _XMP_N_TYPE_INT: {
1212  switch (array_dim) {
1213  case 1: _XMPC_unpack_array_1_INT(dst, buffer, l[0], u[0], s[0]); break;
1214  case 2: _XMPC_unpack_array_2_INT(dst, buffer, l, u, s, d); break;
1215  case 3: _XMPC_unpack_array_3_INT(dst, buffer, l, u, s, d); break;
1216  case 4: _XMPC_unpack_array_4_INT(dst, buffer, l, u, s, d); break;
1217  case 5: _XMPC_unpack_array_5_INT(dst, buffer, l, u, s, d); break;
1218  case 6: _XMPC_unpack_array_6_INT(dst, buffer, l, u, s, d); break;
1219  case 7: _XMPC_unpack_array_7_INT(dst, buffer, l, u, s, d); break;
1220  default: _XMP_fatal("wrong array dimension");
1221  }
1222  } break;
1223  case _XMP_N_TYPE_UNSIGNED_INT: {
1224  switch (array_dim) {
1225  case 1: _XMPC_unpack_array_1_UNSIGNED_INT(dst, buffer, l[0], u[0], s[0]); break;
1226  case 2: _XMPC_unpack_array_2_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1227  case 3: _XMPC_unpack_array_3_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1228  case 4: _XMPC_unpack_array_4_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1229  case 5: _XMPC_unpack_array_5_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1230  case 6: _XMPC_unpack_array_6_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1231  case 7: _XMPC_unpack_array_7_UNSIGNED_INT(dst, buffer, l, u, s, d); break;
1232  default: _XMP_fatal("wrong array dimension");
1233  }
1234  } break;
1235  case _XMP_N_TYPE_LONG: {
1236  switch (array_dim) {
1237  case 1: _XMPC_unpack_array_1_LONG(dst, buffer, l[0], u[0], s[0]); break;
1238  case 2: _XMPC_unpack_array_2_LONG(dst, buffer, l, u, s, d); break;
1239  case 3: _XMPC_unpack_array_3_LONG(dst, buffer, l, u, s, d); break;
1240  case 4: _XMPC_unpack_array_4_LONG(dst, buffer, l, u, s, d); break;
1241  case 5: _XMPC_unpack_array_5_LONG(dst, buffer, l, u, s, d); break;
1242  case 6: _XMPC_unpack_array_6_LONG(dst, buffer, l, u, s, d); break;
1243  case 7: _XMPC_unpack_array_7_LONG(dst, buffer, l, u, s, d); break;
1244  default: _XMP_fatal("wrong array dimension");
1245  }
1246  } break;
1248  switch (array_dim) {
1249  case 1: _XMPC_unpack_array_1_UNSIGNED_LONG(dst, buffer, l[0], u[0], s[0]); break;
1250  case 2: _XMPC_unpack_array_2_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1251  case 3: _XMPC_unpack_array_3_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1252  case 4: _XMPC_unpack_array_4_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1253  case 5: _XMPC_unpack_array_5_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1254  case 6: _XMPC_unpack_array_6_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1255  case 7: _XMPC_unpack_array_7_UNSIGNED_LONG(dst, buffer, l, u, s, d); break;
1256  default: _XMP_fatal("wrong array dimension");
1257  }
1258  } break;
1259  case _XMP_N_TYPE_LONGLONG: {
1260  switch (array_dim) {
1261  case 1: _XMPC_unpack_array_1_LONGLONG(dst, buffer, l[0], u[0], s[0]); break;
1262  case 2: _XMPC_unpack_array_2_LONGLONG(dst, buffer, l, u, s, d); break;
1263  case 3: _XMPC_unpack_array_3_LONGLONG(dst, buffer, l, u, s, d); break;
1264  case 4: _XMPC_unpack_array_4_LONGLONG(dst, buffer, l, u, s, d); break;
1265  case 5: _XMPC_unpack_array_5_LONGLONG(dst, buffer, l, u, s, d); break;
1266  case 6: _XMPC_unpack_array_6_LONGLONG(dst, buffer, l, u, s, d); break;
1267  case 7: _XMPC_unpack_array_7_LONGLONG(dst, buffer, l, u, s, d); break;
1268  default: _XMP_fatal("wrong array dimension");
1269  }
1270  } break;
1272  switch (array_dim) {
1273  case 1: _XMPC_unpack_array_1_UNSIGNED_LONGLONG(dst, buffer, l[0], u[0], s[0]); break;
1274  case 2: _XMPC_unpack_array_2_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1275  case 3: _XMPC_unpack_array_3_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1276  case 4: _XMPC_unpack_array_4_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1277  case 5: _XMPC_unpack_array_5_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1278  case 6: _XMPC_unpack_array_6_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1279  case 7: _XMPC_unpack_array_7_UNSIGNED_LONGLONG(dst, buffer, l, u, s, d); break;
1280  default: _XMP_fatal("wrong array dimension");
1281  }
1282  } break;
1283  case _XMP_N_TYPE_FLOAT: {
1284  switch (array_dim) {
1285  case 1: _XMPC_unpack_array_1_FLOAT(dst, buffer, l[0], u[0], s[0]); break;
1286  case 2: _XMPC_unpack_array_2_FLOAT(dst, buffer, l, u, s, d); break;
1287  case 3: _XMPC_unpack_array_3_FLOAT(dst, buffer, l, u, s, d); break;
1288  case 4: _XMPC_unpack_array_4_FLOAT(dst, buffer, l, u, s, d); break;
1289  case 5: _XMPC_unpack_array_5_FLOAT(dst, buffer, l, u, s, d); break;
1290  case 6: _XMPC_unpack_array_6_FLOAT(dst, buffer, l, u, s, d); break;
1291  case 7: _XMPC_unpack_array_7_FLOAT(dst, buffer, l, u, s, d); break;
1292  default: _XMP_fatal("wrong array dimension");
1293  }
1294  } break;
1295  case _XMP_N_TYPE_DOUBLE: {
1296  switch (array_dim) {
1297  case 1: _XMPC_unpack_array_1_DOUBLE(dst, buffer, l[0], u[0], s[0]); break;
1298  case 2: _XMPC_unpack_array_2_DOUBLE(dst, buffer, l, u, s, d); break;
1299  case 3: _XMPC_unpack_array_3_DOUBLE(dst, buffer, l, u, s, d); break;
1300  case 4: _XMPC_unpack_array_4_DOUBLE(dst, buffer, l, u, s, d); break;
1301  case 5: _XMPC_unpack_array_5_DOUBLE(dst, buffer, l, u, s, d); break;
1302  case 6: _XMPC_unpack_array_6_DOUBLE(dst, buffer, l, u, s, d); break;
1303  case 7: _XMPC_unpack_array_7_DOUBLE(dst, buffer, l, u, s, d); break;
1304  default: _XMP_fatal("wrong array dimension");
1305  }
1306  } break;
1307  case _XMP_N_TYPE_LONG_DOUBLE: {
1308  switch (array_dim) {
1309  case 1: _XMPC_unpack_array_1_LONG_DOUBLE(dst, buffer, l[0], u[0], s[0]); break;
1310  case 2: _XMPC_unpack_array_2_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1311  case 3: _XMPC_unpack_array_3_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1312  case 4: _XMPC_unpack_array_4_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1313  case 5: _XMPC_unpack_array_5_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1314  case 6: _XMPC_unpack_array_6_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1315  case 7: _XMPC_unpack_array_7_LONG_DOUBLE(dst, buffer, l, u, s, d); break;
1316  default: _XMP_fatal("wrong array dimension");
1317  }
1318  } break;
1319  // case _XMP_N_TYPE_FLOAT_IMAGINARY:
1320  // _XMP_fatal("unknown data type for reflect");
1321  // case _XMP_N_TYPE_DOUBLE_IMAGINARY:
1322  // _XMP_fatal("unknown data type for reflect");
1323  // case _XMP_N_TYPE_LONG_DOUBLE_IMAGINARY:
1324  // _XMP_fatal("unknown data type for reflect");
1325  // case _XMP_N_TYPE_FLOAT_COMPLEX:
1326  // _XMP_fatal("unknown data type for reflect");
1327  // case _XMP_N_TYPE_DOUBLE_COMPLEX:
1328  // _XMP_fatal("unknown data type for reflect");
1329  // case _XMP_N_TYPE_LONG_DOUBLE_COMPLEX:
1330  // _XMP_fatal("unknown data type for reflect");
1331  default:
1332  _XMP_fatal("unknown data type for unpacking arrays");
1333  }
1334 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ _XMPC_unpack_array_GENERAL()

void _XMPC_unpack_array_GENERAL ( void *  dst,
void *  buffer,
size_t  array_type_size,
int  array_dim,
int *  l,
int *  u,
int *  s,
unsigned long long *  d 
)
1337  {
1338  switch (array_dim) {
1339  case 1: _XMPC_unpack_array_1_GENERAL(dst, buffer, array_type_size, l[0], u[0], s[0]); break;
1340  case 2: _XMPC_unpack_array_2_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1341  case 3: _XMPC_unpack_array_3_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1342  case 4: _XMPC_unpack_array_4_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1343  case 5: _XMPC_unpack_array_5_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1344  case 6: _XMPC_unpack_array_6_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1345  case 7: _XMPC_unpack_array_7_GENERAL(dst, buffer, array_type_size, l, u, s, d); break;
1346  default: _XMP_fatal("wrong array dimension");
1347  }
1348 }
Here is the call graph for this function:
Here is the caller graph for this function:
_XMP_N_TYPE_BOOL
#define _XMP_N_TYPE_BOOL
Definition: xmp_constant.h:80
_XMP_N_TYPE_INT
#define _XMP_N_TYPE_INT
Definition: xmp_constant.h:85
_XMPC_pack_array_BASIC
void _XMPC_pack_array_BASIC(void *buffer, void *src, int array_type, int array_dim, int *l, int *u, int *s, unsigned long long *d)
Definition: xmp_array_section.c:947
_XMP_N_TYPE_DOUBLE
#define _XMP_N_TYPE_DOUBLE
Definition: xmp_constant.h:92
_XMPC_pack_array_GENERAL
void _XMPC_pack_array_GENERAL(void *buffer, void *src, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
Definition: xmp_array_section.c:1134
_XMP_N_TYPE_LONG_DOUBLE
#define _XMP_N_TYPE_LONG_DOUBLE
Definition: xmp_constant.h:93
_XMPC_unpack_array_GENERAL
void _XMPC_unpack_array_GENERAL(void *dst, void *buffer, size_t array_type_size, int array_dim, int *l, int *u, int *s, unsigned long long *d)
Definition: xmp_array_section.c:1336
_XMP_N_TYPE_NONBASIC
#define _XMP_N_TYPE_NONBASIC
Definition: xmp_constant.h:104
_XMP_N_TYPE_UNSIGNED_LONGLONG
#define _XMP_N_TYPE_UNSIGNED_LONGLONG
Definition: xmp_constant.h:90
_XMP_N_TYPE_LONG
#define _XMP_N_TYPE_LONG
Definition: xmp_constant.h:87
_XMP_N_TYPE_SHORT
#define _XMP_N_TYPE_SHORT
Definition: xmp_constant.h:83
_XMP_N_TYPE_FLOAT_COMPLEX
#define _XMP_N_TYPE_FLOAT_COMPLEX
Definition: xmp_constant.h:101
_XMP_N_TYPE_FLOAT
#define _XMP_N_TYPE_FLOAT
Definition: xmp_constant.h:91
_XMP_N_TYPE_UNSIGNED_INT
#define _XMP_N_TYPE_UNSIGNED_INT
Definition: xmp_constant.h:86
_XMP_N_TYPE_UNSIGNED_LONG
#define _XMP_N_TYPE_UNSIGNED_LONG
Definition: xmp_constant.h:88
_XMP_N_TYPE_UNSIGNED_SHORT
#define _XMP_N_TYPE_UNSIGNED_SHORT
Definition: xmp_constant.h:84
_XMP_N_TYPE_CHAR
#define _XMP_N_TYPE_CHAR
Definition: xmp_constant.h:81
_XMP_N_TYPE_UNSIGNED_CHAR
#define _XMP_N_TYPE_UNSIGNED_CHAR
Definition: xmp_constant.h:82
_XMP_fatal
void _XMP_fatal(char *msg)
Definition: xmp_util.c:42
_XMP_N_TYPE_LONGLONG
#define _XMP_N_TYPE_LONGLONG
Definition: xmp_constant.h:89
_XMPC_unpack_array_BASIC
void _XMPC_unpack_array_BASIC(void *dst, void *buffer, int array_type, int array_dim, int *l, int *u, int *s, unsigned long long *d)
Definition: xmp_array_section.c:1148