aboutsummaryrefslogtreecommitdiff
path: root/src/PUGHSlabi.h
blob: f2515447bf07e1b540327063270b7a92ac807b29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 /*@@
   @header    PUGHSlabi.h
   @date      Sun 28 May 2000
   @author    Thomas Radke
   @desc 
              Internal function declarations of thorn PUGHSlab
   @enddesc
   @version   $Header$
 @@*/


#ifndef _PUGHSLAB_PUGHSLABI_H_
#define _PUGHSLAB_PUGHSLABI_H_

#include "PUGHSlab.h"

#ifdef __cplusplus
extern "C"
{
#endif

/* structure describing a hyperslab mapping */
typedef struct hslab_mapping_t
{
  int handle;
  int target_proc;
  int hdim;
  int vdim;
  int *global_origin;                    /* vdim */
  int *directions;                       /* hdim * vdim */
  int *extents;                          /* hdim */
  int *downsample;                       /* hdim */
  int *global_hsize;                     /* hdim */
  int *do_dir;                           /* vdim */
  int is_diagonal_in_3D;
  t_hslabConversionFn conversion_fn;
  struct hslab_mapping_t *prev, *next;
} hslab_mapping_t;


/* utility routines */
hslab_mapping_t *PUGHSlabi_GetMapping (int mapping_handle);
t_hslabConversionFn PUGHSlabi_GetDatatypeConversionFn (int src_type,
                                                       int dst_type);


#ifdef __cplusplus
}
#endif

#endif  /* _PUGHSLAB_PUGHSLABI_H_ */