aboutsummaryrefslogtreecommitdiff
path: root/src/PUGHSlabi.h
blob: 4a3c61c7856c5b0c315dadb1ed4fde9901bfeac9 (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
52
53
54
55
56
57
 /*@@
   @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 "cctk_Groups.h"
#include "PUGHSlab.h"

#ifdef __cplusplus
extern "C"
{
#endif

/* structure describing a hyperslab mapping */
typedef struct hslab_mapping_t
{
  int handle;
  unsigned int hdim;
  unsigned int vdim;
  int *vectors;
  int *local_startpoint;                 /* vdim */
  int *local_endpoint;                   /* vdim */
  int *global_startpoint;                /* vdim */
  int *global_endpoint;                  /* vdim */
  int *do_dir;                           /* vdim */
  int *downsample;                       /* vdim */
  int *global_hsize;                     /* hdim */
  int *local_hsize;                      /* hdim */
  unsigned int totals;
  int is_full_hyperslab;
  int is_diagonal_in_3D;
  t_hslabConversionFn conversion_fn;
  struct hslab_mapping_t *prev, *next;
  cGroup vinfo;
} 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_ */