~ubuntu-branches/ubuntu/saucy/nwchem/saucy

« back to all changes in this revision

Viewing changes to src/tools/ga-5-1/global/src/ga.h

  • Committer: Package Import Robot
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2012-02-09 20:02:41 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120209200241-jgk03qfsphal4ug2
Tags: 6.1-1
* New upstream release.

[ Michael Banck ]
* debian/patches/02_makefile_flags.patch: Updated.
* debian/patches/02_makefile_flags.patch: Use internal blas and lapack code.
* debian/patches/02_makefile_flags.patch: Define GCC4 for LINUX and LINUX64
  (Closes: #632611 and LP: #791308).
* debian/control (Build-Depends): Added openssh-client.
* debian/rules (USE_SCALAPACK, SCALAPACK): Removed variables (Closes:
  #654658).
* debian/rules (LIBDIR, USE_MPIF4, ARMCI_NETWORK): New variables.
* debian/TODO: New file.
* debian/control (Build-Depends): Removed libblas-dev, liblapack-dev and
  libscalapack-mpi-dev.
* debian/patches/04_show_testsuite_diff_output.patch: New patch, shows the
  diff output for failed tests.
* debian/patches/series: Adjusted.
* debian/testsuite: Optionally run all tests if "all" is passed as option.
* debian/rules: Run debian/testsuite with "all" if DEB_BUILD_OPTIONS
  contains "checkall".

[ Daniel Leidert ]
* debian/control: Used wrap-and-sort. Added Vcs-Svn and Vcs-Browser fields.
  (Priority): Moved to extra according to policy section 2.5.
  (Standards-Version): Bumped to 3.9.2.
  (Description): Fixed a typo.
* debian/watch: Added.
* debian/patches/03_hurd-i386_define_path_max.patch: Added.
  - Define MAX_PATH if not defines to fix FTBFS on hurd.
* debian/patches/series: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: ga.h,v 1.60.2.8 2007-10-10 21:11:04 manoj Exp $ */
 
2
 
 
3
#ifndef _GA_H_
 
4
#define _GA_H_
 
5
 
 
6
#include <stdint.h>
 
7
#include <stdio.h>
 
8
 
 
9
#include "gacommon.h"
 
10
#include "typesf2c.h"
 
11
 
 
12
#ifdef __cplusplus
 
13
extern "C" {
 
14
#endif
 
15
 
 
16
typedef Integer ga_nbhdl_t;
 
17
 
 
18
extern void          GA_Abs_value(int g_a); 
 
19
extern void          GA_Abs_value_patch(int g_a, int *lo, int *hi);
 
20
extern void          GA_Add_constant(int g_a, void* alpha);
 
21
extern void          GA_Add_constant_patch(int g,int *lo,int *hi,void *alpha);
 
22
extern void          GA_Add_diagonal(int g_a, int g_v);
 
23
extern void          GA_Add(void *alpha, int g_a, void* beta, int g_b, int g_c); 
 
24
extern int           GA_Allocate(int g_a);
 
25
extern int           GA_Assemble_duplicate(int g_a, char *name, void *ptr);
 
26
extern void          GA_Brdcst(void *buf, int lenbuf, int root);
 
27
extern SingleComplex GA_Cdot(int g_a, int g_b); 
 
28
extern void          GA_Cgop(SingleComplex x[], int n, char *op);
 
29
extern void          GA_Cgemm(char ta, char tb, int m, int n, int k, SingleComplex alpha, int g_a, int g_b, SingleComplex beta, int g_c );
 
30
extern void          GA_Check_handle(int g_a, char *string);
 
31
extern int           GA_Cluster_nnodes(void);
 
32
extern int           GA_Cluster_nodeid(void);
 
33
extern int           GA_Cluster_nprocs(int x);
 
34
extern int           GA_Cluster_procid(int x, int y);
 
35
extern int           GA_Cluster_proc_nodeid(int proc);
 
36
extern int           GA_Compare_distr(int g_a, int g_b); 
 
37
extern void          GA_Copy(int g_a, int g_b); 
 
38
extern int           GA_Create_handle(void);
 
39
extern int           GA_Create_mutexes(int number);
 
40
extern double        GA_Ddot(int g_a, int g_b); 
 
41
extern void          GA_Destroy(int g_a);
 
42
extern int           GA_Destroy_mutexes(void);
 
43
extern void          GA_Dgemm(char ta, char tb, int m, int n, int k, double alpha, int g_a, int g_b, double beta, int g_c );
 
44
extern void          GA_Dgop(double x[], int n, char *op);
 
45
extern void          GA_Diag(int g_a, int g_s, int g_v, void *eval);
 
46
extern void          GA_Diag_reuse(int reuse, int g_a, int g_s, int g_v, void *eval);
 
47
extern void          GA_Diag_seq(int g_a, int g_s, int g_v, void *eval);
 
48
extern void          GA_Diag_std(int g_a, int g_v, void *eval);
 
49
extern void          GA_Diag_std_seq(int g_a, int g_v, void *eval);
 
50
extern int           GA_Duplicate(int g_a, char* array_name);
 
51
extern void          GA_Elem_divide(int g_a, int g_b, int g_c);
 
52
extern void          GA_Elem_divide_patch(int g_a,int *alo,int *ahi, int g_b,int *blo,int *bhi,int g_c,int *clo,int *chi);
 
53
extern void          GA_Elem_maximum(int g_a, int g_b, int g_c);
 
54
extern void          GA_Elem_maximum_patch(int g_a,int *alo,int *ahi, int g_b,int *blo,int *bhi,int g_c,int *clo,int *chi);
 
55
extern void          GA_Elem_minimum(int g_a, int g_b, int g_c);
 
56
extern void          GA_Elem_minimum_patch(int g_a,int *alo,int *ahi, int g_b,int *blo,int *bhi,int g_c,int *clo,int *chi);
 
57
extern void          GA_Elem_multiply(int g_a, int g_b, int g_c);
 
58
extern void          GA_Elem_multiply_patch(int g_a,int *alo,int *ahi, int g_b,int *blo,int *bhi,int g_c,int *clo,int *chi);
 
59
extern void          GA_Error(char *str, int code);
 
60
extern float         GA_Fdot(int g_a, int g_b);
 
61
extern void          GA_Fence(void);
 
62
extern void          GA_Fgop(float x[], int n, char *op);
 
63
extern void          GA_Fill(int g_a, void *value);
 
64
extern void          GA_Freemem(void* ptr);
 
65
extern void          GA_Get_block_info(int g_a, int num_blocks[], int block_dims[]);
 
66
extern int           GA_Get_debug(void);
 
67
extern void          GA_Get_diag(int g_a, int g_v);
 
68
extern int           GA_Get_dimension(int g_a);
 
69
extern void*         GA_Getmem(int type, int nelem, int grp_id);
 
70
extern int           GA_Get_pgroup(int g_a);
 
71
extern int           GA_Get_pgroup_size(int grp_id);
 
72
extern void          GA_Get_proc_grid(int g_a, int dims[]);
 
73
extern void          GA_Get_proc_index(int g_a, int iproc, int subscript[]);
 
74
extern void          GA_Gop(int type, void *x, int n, char *op);
 
75
extern int           GA_Has_ghosts(int g_a);
 
76
extern int           GA_Idot(int g_a, int g_b);
 
77
extern void          GA_Igop(int x[], int n, char *op);
 
78
extern void          GA_Init_fence(void);
 
79
extern void          GA_Initialize_args(int *argc, char ***argv);
 
80
extern void          GA_Initialize_ltd(size_t limit);
 
81
extern void          GA_Initialize(void);
 
82
extern size_t        GA_Inquire_memory(void);
 
83
extern char*         GA_Inquire_name(int g_a);
 
84
extern int           GA_Is_mirrored(int g_a);
 
85
extern void          GA_List_nodeid(int *list, int nprocs);
 
86
extern long          GA_Ldot(int g_a, int g_b);
 
87
extern void          GA_Lgop(long x[], int n, char *op);
 
88
extern long long     GA_Lldot(int g_a, int g_b);
 
89
extern void          GA_Llgop(long long x[], int n, char *op);
 
90
extern int           GA_Llt_solve(int g_a, int g_b);
 
91
extern void          GA_Lock(int mutex);
 
92
extern void          GA_Lu_solve(char tran, int g_a, int g_b);
 
93
extern void          GA_Mask_sync(int first, int last);
 
94
extern void          GA_Matmul_patch(char transa, char transb, void* alpha, void *beta, int g_a, int ailo, int aihi, int ajlo, int ajhi, int g_b, int bilo, int bihi, int bjlo, int bjhi, int g_c, int cilo, int cihi, int cjlo, int cjhi);
 
95
extern void          GA_Median(int g_a, int g_b, int g_c, int g_m);
 
96
extern void          GA_Median_patch(int g_a, int *alo, int *ahi, int g_b, int *blo, int *bhi, int g_c, int *clo, int *chi, int g_m, int *mlo, int *mhi);
 
97
extern size_t        GA_Memory_avail(void);
 
98
extern int           GA_Memory_limited(void);
 
99
extern void          GA_Merge_mirrored(int g_a);
 
100
extern void          GA_Nblock(int g_a, int *nblock);
 
101
extern int           GA_Ndim(int g_a);
 
102
extern int           GA_Nnodes(void);
 
103
extern int           GA_Nodeid(void);
 
104
extern void          GA_Norm1(int g_a, double *nm);
 
105
extern void          GA_Norm_infinity(int g_a, double *nm);
 
106
extern int           GA_Pgroup_absolute_id(int pgroup, int pid);
 
107
extern void          GA_Pgroup_brdcst(int grp, void *buf, int lenbuf, int root);
 
108
extern void          GA_Pgroup_cgop(int grp, SingleComplex x[], int n, char *op);
 
109
extern int           GA_Pgroup_create(int *list, int count);
 
110
extern int           GA_Pgroup_destroy(int grp);
 
111
extern void          GA_Pgroup_dgop(int grp, double x[], int n, char *op);
 
112
extern void          GA_Pgroup_fgop(int grp, float x[], int n, char *op);   
 
113
extern int           GA_Pgroup_get_default(void);
 
114
extern int           GA_Pgroup_get_mirror(void);
 
115
extern int           GA_Pgroup_get_world(void);
 
116
extern void          GA_Pgroup_igop(int grp, int x[], int n, char *op);
 
117
extern void          GA_Pgroup_lgop(int grp, long x[], int n, char *op);
 
118
extern void          GA_Pgroup_llgop(int grp, long long x[], int n, char *op);
 
119
extern int           GA_Pgroup_nnodes(int grp_id);
 
120
extern int           GA_Pgroup_nodeid(int grp_id);
 
121
extern void          GA_Pgroup_set_default(int p_handle);
 
122
extern int           GA_Pgroup_split(int grp_id, int num_group);
 
123
extern int           GA_Pgroup_split_irreg(int grp_id, int color);
 
124
extern void          GA_Pgroup_sync(int grp_id);
 
125
extern void          GA_Pgroup_zgop(int grp, DoubleComplex x[], int n, char *op);
 
126
extern void          GA_Print_distribution(int g_a); 
 
127
extern void          GA_Print_file(FILE *file, int g_a);
 
128
extern void          GA_Print(int g_a);
 
129
extern void          GA_Print_patch(int g_a,int ilo,int ihi,int jlo,int jhi,int pretty);
 
130
extern void          GA_Print_stats(void);
 
131
extern void          GA_Randomize(int g_a, void *value);
 
132
extern void          GA_Recip(int g_a);
 
133
extern void          GA_Recip_patch(int g_a,int *lo, int *hi);
 
134
extern void          GA_Register_stack_memory(void * (*ext_alloc)(size_t, int, char *), void (*ext_free)(void *));
 
135
extern void          GA_Scale_cols(int g_a, int g_v);
 
136
extern void          GA_Scale(int g_a, void *value); 
 
137
extern void          GA_Scale_rows(int g_a, int g_v);
 
138
extern void          GA_Scan_add(int g_a, int g_b, int g_sbit, int lo, int hi, int excl);
 
139
extern void          GA_Scan_copy(int g_a, int g_b, int g_sbit, int lo, int hi);
 
140
extern void          GA_Set_array_name(int g_a, char *name);
 
141
extern void          GA_Set_block_cyclic(int g_a, int dims[]);
 
142
extern void          GA_Set_block_cyclic_proc_grid(int g_a, int block[], int proc_grid[]);
 
143
extern void          GA_Set_chunk(int g_a, int chunk[]);
 
144
extern void          GA_Set_data(int g_a, int ndim, int dims[], int type);
 
145
extern void          GA_Set_debug(int flag);
 
146
extern void          GA_Set_diagonal(int g_a, int g_v);
 
147
extern void          GA_Set_ghost_corner_flag(int g_a, int flag);
 
148
extern void          GA_Set_ghosts(int g_a, int width[]);
 
149
extern void          GA_Set_irreg_distr(int g_a, int map[], int block[]);
 
150
extern void          GA_Set_irreg_flag(int g_a, int flag);
 
151
extern void          GA_Set_memory_limit(size_t limit);
 
152
extern void          GA_Set_pgroup(int g_a, int p_handle);
 
153
extern void          GA_Set_restricted(int g_a, int list[], int size);
 
154
extern void          GA_Set_restricted_range(int g_a, int lo_proc, int hi_proc);
 
155
extern void          GA_Sgemm(char ta, char tb, int m, int n, int k, float alpha, int g_a, int g_b, float beta, int g_c );
 
156
extern void          GA_Shift_diagonal(int g_a, void *c);
 
157
extern int           GA_Solve(int g_a, int g_b);
 
158
extern int           GA_Spd_invert(int g_a);
 
159
extern void          GA_Step_bound_info(int g_xx, int g_vv, int g_xxll, int g_xxuu, void *boundmin, void *wolfemin, void *boundmax);
 
160
extern void          GA_Step_bound_info_patch(int g_xx, int *xxlo, int *xxhi, int g_vv, int *vvlo, int *vvhi, int g_xxll, int *xxlllo, int *xxllhi, int g_xxuu, int *xxuulo, int *xxuuhi, void *boundmin, void *wolfemin, void *boundmax);
 
161
extern void          GA_Step_max(int g_a, int g_b, void *step);
 
162
extern void          GA_Step_max_patch(int g_a, int *alo, int *ahi, int g_b, int *blo, int *bhi, void *step);
 
163
extern void          GA_Summarize(int verbose);
 
164
extern void          GA_Symmetrize(int g_a);
 
165
extern void          GA_Sync(void);
 
166
extern void          GA_Terminate(void);
 
167
extern int           GA_Total_blocks(int g_a);   
 
168
extern void          GA_Transpose(int g_a, int g_b);
 
169
extern void          GA_Unlock(int mutex);
 
170
extern void          GA_Update_ghosts(int g_a);
 
171
extern int           GA_Uses_fapi(void);
 
172
extern int           GA_Uses_ma(void);
 
173
extern int           GA_Uses_proc_grid(int g_a);
 
174
extern int           GA_Valid_handle(int g_a);
 
175
extern int           GA_Verify_handle(int g_a);
 
176
extern double        GA_Wtime(void);
 
177
extern DoubleComplex GA_Zdot(int g_a, int g_b); 
 
178
extern void          GA_Zgop(DoubleComplex x[], int n, char *op);
 
179
extern void          GA_Zero_diagonal(int g_a);
 
180
extern void          GA_Zero(int g_a); 
 
181
extern void          GA_Zgemm(char ta, char tb, int m, int n, int k, DoubleComplex alpha, int g_a, int g_b, DoubleComplex beta, int g_c );
 
182
extern void          NGA_Access_block_grid(int g_a, int index[], void *ptr, int ld[]);
 
183
extern void          NGA_Access_block(int g_a, int idx, void *ptr, int ld[]);
 
184
extern void          NGA_Access_block_segment(int g_a, int proc, void *ptr, int *len);
 
185
extern void          NGA_Access_ghost_element(int g_a,  void *ptr, int subscript[], int ld[]);
 
186
extern void          NGA_Access_ghosts(int g_a, int dims[], void *ptr, int ld[]);
 
187
extern void          NGA_Access(int g_a, int lo[], int hi[], void *ptr, int ld[]);
 
188
extern void          NGA_Acc(int g_a, int lo[], int hi[],void* buf,int ld[],void* alpha);
 
189
extern void          NGA_Add_patch(void * alpha, int g_a, int alo[], int ahi[], void * beta,  int g_b, int blo[], int bhi[], int g_c, int clo[], int chi[]);
 
190
extern SingleComplex NGA_Cdot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
191
extern int           NGA_Compare_distr(int g_a, int g_b); 
 
192
extern void          NGA_Copy_patch(char trans, int g_a, int alo[], int ahi[], int g_b, int blo[], int bhi[]);
 
193
extern int           NGA_Create_config(int type,int ndim,int dims[], char *name, int chunk[], int p_handle);
 
194
extern int           NGA_Create_ghosts_config(int type,int ndim,int dims[], int width[], char *name, int chunk[], int p_handle);
 
195
extern int           NGA_Create_ghosts(int type,int ndim,int dims[], int width[], char *name, int chunk[]);
 
196
extern int           NGA_Create_ghosts_irreg_config(int type,int ndim,int dims[], int width[], char *name, int map[], int nblock[], int p_handle);
 
197
extern int           NGA_Create_ghosts_irreg(int type,int ndim,int dims[], int width[], char *name, int map[], int nblock[]);
 
198
extern int           NGA_Create(int type,int ndim,int dims[], char *name, int chunk[]);
 
199
extern int           NGA_Create(int type,int ndim,int dims[], char *name, int chunk[]);
 
200
extern int           NGA_Create_irreg_config(int type,int ndim,int dims[],char *name, int block[], int map[], int p_handle);
 
201
extern int           NGA_Create_irreg(int type,int ndim,int dims[],char *name, int block[], int map[]);
 
202
extern int           NGA_Create_handle(void);
 
203
extern int           NGA_Deregister_type(int type);
 
204
extern void          NGA_Destroy(int g_a);
 
205
extern int           NGA_Destroy_mutexes(void);
 
206
extern double        NGA_Ddot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
207
extern void          NGA_Distribution(int g_a, int iproc, int lo[], int hi[]); 
 
208
extern int           NGA_Duplicate(int g_a, char* array_name);
 
209
extern void          NGA_Error(char *str, int code);
 
210
extern float         NGA_Fdot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
211
extern void          NGA_Fence(void);
 
212
extern void          NGA_Fill(int g_a, void *value);
 
213
extern void          NGA_Fill_patch(int g_a, int lo[], int hi[], void *val);
 
214
extern void          NGA_Gather(int g_a, void *v, int* subsArray[], int n);
 
215
extern void          NGA_Gather_flat(int g_a, void *v, int subsArray[], int n);
 
216
extern void          NGA_Get(int g_a, int lo[], int hi[], void* buf, int ld[]); 
 
217
extern void          NGA_Get_block_info(int g_a, int num_blocks[], int block_dims[]);
 
218
extern int           NGA_Get_debug(void);
 
219
extern int           NGA_Get_dimension(int g_a);
 
220
extern void          NGA_Get_field(int g_a, int *lo, int *hi, int foff, int fsize, void *buf, int *ld);
 
221
extern void          NGA_Get_ghost_block(int g_a, int lo[], int hi[], void *buf, int ld[]);
 
222
extern int           NGA_Get_pgroup(int g_a);
 
223
extern int           NGA_Get_pgroup_size(int grp_id);
 
224
extern void          NGA_Get_proc_grid(int g_a, int dims[]);
 
225
extern void          NGA_Get_proc_index(int g_a, int iproc, int subscript[]);
 
226
extern int           NGA_Has_ghosts(int g_a);
 
227
extern int           NGA_Idot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
228
extern void          NGA_Init_fence(void);
 
229
extern void          NGA_Initialize(void);
 
230
extern void          NGA_Initialize_ltd(size_t limit);
 
231
extern void          NGA_Inquire(int g_a, int *type, int *ndim, int dims[]);
 
232
extern size_t        NGA_Inquire_memory(void);
 
233
extern char*         NGA_Inquire_name(int g_a);
 
234
extern int           NGA_Is_mirrored(int g_a);
 
235
extern void          NGA_List_nodeid(int *list, int nprocs);
 
236
extern long          NGA_Ldot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
237
extern long long     NGA_Lldot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
238
extern int           NGA_Locate(int g_a, int subscript[]);
 
239
extern int           NGA_Locate_num_blocks(int g_a, int lo[], int hi[]);
 
240
extern int           NGA_Locate_nnodes(int g_a, int lo[], int hi[]);
 
241
extern int           NGA_Locate_region(int g_a,int lo[],int hi[],int map[],int procs[]);
 
242
extern void          NGA_Lock(int mutex);
 
243
extern void          NGA_Mask_sync(int first, int last);
 
244
extern void          NGA_Matmul_patch(char transa, char transb, void* alpha, void *beta, int g_a, int alo[], int ahi[], int g_b, int blo[], int bhi[], int g_c, int clo[], int chi[]) ;
 
245
extern size_t        NGA_Memory_avail(void);
 
246
extern int           NGA_Memory_limited(void);
 
247
extern void          NGA_Merge_distr_patch(int g_a, int alo[], int ahi[], int g_b, int blo[], int bhi[]);
 
248
extern void          NGA_Merge_mirrored(int g_a);
 
249
extern void          NGA_Nblock(int g_a, int *nblock);
 
250
extern void          NGA_NbAcc(int g_a,int lo[], int hi[],void* buf,int ld[],void* alpha, ga_nbhdl_t* nbhandle);
 
251
extern void          NGA_NbGet_ghost_dir(int g_a, int mask[], ga_nbhdl_t* handle);
 
252
extern void          NGA_NbGet(int g_a, int lo[], int hi[], void* buf, int ld[], ga_nbhdl_t* nbhandle);
 
253
extern void          NGA_Nbget_field(int g_a, int *lo, int *hi, int foff, int fsize,void *buf, int *ld, ga_nbhdl_t *nbhandle);
 
254
extern void          NGA_Nbput_field(int g_a, int *lo, int *hi, int foff, int fsize, void *buf, int *ld, ga_nbhdl_t *nbhandle);
 
255
extern void          NGA_NbPut(int g_a, int lo[], int hi[], void* buf, int ld[], ga_nbhdl_t* nbhandle);
 
256
extern int           NGA_NbTest(ga_nbhdl_t* nbhandle);
 
257
extern void          NGA_NbWait(ga_nbhdl_t* nbhandle);
 
258
extern int           NGA_Ndim(int g_a);
 
259
extern int           NGA_Nnodes(void);
 
260
extern int           NGA_Nodeid(void);
 
261
extern void          NGA_Periodic_acc(int g_a, int lo[], int hi[],void* buf,int ld[],void* alpha);
 
262
extern void          NGA_Periodic_get(int g_a, int lo[], int hi[], void* buf, int ld[]); 
 
263
extern void          NGA_Periodic_put(int g_a, int lo[], int hi[], void* buf, int ld[]); 
 
264
extern int           NGA_Pgroup_absolute_id(int pgroup, int pid);
 
265
extern int           NGA_Pgroup_create(int *list, int count);
 
266
extern int           NGA_Pgroup_destroy(int grp);
 
267
extern int           NGA_Pgroup_get_default(void);
 
268
extern int           NGA_Pgroup_get_mirror(void);
 
269
extern int           NGA_Pgroup_get_world(void);
 
270
extern int           NGA_Pgroup_nnodes(int grp_id);
 
271
extern int           NGA_Pgroup_nodeid(int grp_id);
 
272
extern void          NGA_Pgroup_set_default(int p_handle);
 
273
extern int           NGA_Pgroup_split(int grp_id, int num_group);
 
274
extern int           NGA_Pgroup_split_irreg(int grp_id, int color);
 
275
extern void          NGA_Pgroup_sync(int grp_id);
 
276
extern void          NGA_Print_patch(int g_a, int lo[], int hi[], int pretty);
 
277
extern void          NGA_Proc_topology(int g_a, int proc, int coord[]);
 
278
extern void          NGA_Put(int g_a, int lo[], int hi[], void* buf, int ld[]); 
 
279
extern void          NGA_Put_field(int g_a, int *lo, int *hi, int foff, int fsize, void *buf, int *ld);
 
280
extern void          NGA_Randomize(int g_a, void *value);
 
281
extern long          NGA_Read_inc(int g_a, int subscript[], long inc);
 
282
extern int           NGA_Register_type(size_t bytes);
 
283
extern void          NGA_Release_block_grid(int g_a, int index[]);
 
284
extern void          NGA_Release_block(int g_a, int idx);
 
285
extern void          NGA_Release_block_segment(int g_a, int idx);
 
286
extern void          NGA_Release_ghost_element(int g_a, int index[]);
 
287
extern void          NGA_Release_ghosts(int g_a);
 
288
extern void          NGA_Release(int g_a, int lo[], int hi[]);
 
289
extern void          NGA_Release_update_block_grid(int g_a, int index[]);
 
290
extern void          NGA_Release_update_block(int g_a, int idx);
 
291
extern void          NGA_Release_update_block_segment(int g_a, int idx);
 
292
extern void          NGA_Release_update_ghost_element(int g_a, int index[]);
 
293
extern void          NGA_Release_update_ghosts(int g_a);
 
294
extern void          NGA_Release_update(int g_a, int lo[], int hi[]);
 
295
extern void          NGA_Scale_patch(int g_a, int lo[], int hi[], void *alpha);
 
296
extern void          NGA_Scatter_acc(int g_a, void *v, int* subsArray[], int n, void *alpha);
 
297
extern void          NGA_Scatter_acc_flat(int g_a, void *v, int subsArray[], int n, void *alpha);
 
298
extern void          NGA_Scatter(int g_a, void *v, int* subsArray[], int n);
 
299
extern void          NGA_Scatter_flat(int g_a, void *v, int subsArray[], int n);
 
300
extern void          NGA_Select_elem(int g_a, char* op, void* val, int *index);
 
301
extern void          NGA_Set_array_name(int g_a, char *name);
 
302
extern void          NGA_Set_block_cyclic(int g_a, int dims[]);
 
303
extern void          NGA_Set_block_cyclic_proc_grid(int g_a, int block[], int proc_grid[]);
 
304
extern void          NGA_Set_chunk(int g_a, int chunk[]);
 
305
extern void          NGA_Set_data(int g_a, int ndim, int dims[], int type);
 
306
extern void          NGA_Set_debug(int flag);
 
307
extern void          NGA_Set_ghosts(int g_a, int width[]);
 
308
extern void          NGA_Set_irreg_distr(int g_a, int map[], int block[]);
 
309
extern void          NGA_Set_irreg_flag(int g_a, int flag);
 
310
extern void          NGA_Set_memory_limit(size_t limit);
 
311
extern void          NGA_Set_pgroup(int g_a, int p_handle);
 
312
extern void          NGA_Set_restricted(int g_a, int list[], int size);
 
313
extern void          NGA_Set_restricted_range(int g_a, int lo_proc, int hi_proc);
 
314
extern void          NGA_Strided_acc(int g_a, int lo[], int hi[], int skip[], void* buf, int ld[], void *alpha); 
 
315
extern void          NGA_Strided_get(int g_a, int lo[], int hi[], int skip[], void* buf, int ld[]); 
 
316
extern void          NGA_Strided_put(int g_a, int lo[], int hi[], int skip[], void* buf, int ld[]); 
 
317
extern void          NGA_Sync(void);
 
318
extern void          NGA_Terminate(void);
 
319
extern int           NGA_Total_blocks(int g_a);   
 
320
extern void          NGA_Unlock(int mutex);
 
321
extern int           NGA_Update_ghost_dir(int g_a, int dimension, int idir, int flag);
 
322
extern int           NGA_Uses_ma(void);
 
323
extern int           NGA_Uses_proc_grid(int g_a);
 
324
extern int           NGA_Valid_handle(int g_a);
 
325
extern int           NGA_Verify_handle(int g_a);
 
326
extern DoubleComplex NGA_Zdot_patch(int g_a, char t_a, int alo[], int ahi[], int g_b, char t_b, int blo[], int bhi[]);
 
327
extern void          NGA_Zero_patch(int g_a, int lo[], int hi[]);
 
328
 
 
329
/* 64 bit APIs */
 
330
 
 
331
extern void          GA_Abs_value_patch64(int g_a, int64_t *lo, int64_t *hi);
 
332
extern void          GA_Add_constant_patch64(int g,int64_t *lo,int64_t *hi,void *alpha);
 
333
extern void          GA_Cgemm64(char ta, char tb, int64_t m, int64_t n, int64_t k, SingleComplex alpha, int g_a, int g_b, SingleComplex beta, int g_c );   
 
334
extern void          GA_Dgemm64(char ta, char tb, int64_t m, int64_t n, int64_t k, double alpha, int g_a, int g_b, double beta, int g_c );
 
335
extern void          GA_Elem_divide_patch64(int g_a, int64_t alo[], int64_t ahi[], int g_b, int64_t blo[], int64_t bhi[], int g_c, int64_t  clo[], int64_t chi[]);
 
336
extern void          GA_Elem_maximum_patch64(int g_a,int64_t *alo,int64_t *ahi, int g_b,int64_t *blo,int64_t *bhi, int g_c,int64_t *clo,int64_t *chi);
 
337
extern void          GA_Elem_minimum_patch64(int g_a,int64_t *alo,int64_t *ahi, int g_b,int64_t *blo,int64_t *bhi, int g_c,int64_t *clo,int64_t *chi);
 
338
extern void          GA_Elem_multiply_patch64(int g_a, int64_t alo[], int64_t ahi[], int g_b, int64_t blo[], int64_t bhi[], int g_c, int64_t clo[], int64_t chi[]);
 
339
extern void          GA_Matmul_patch64(char transa, char transb, void* alpha, void *beta, int g_a, int64_t ailo, int64_t aihi, int64_t ajlo, int64_t ajhi, int g_b, int64_t bilo, int64_t bihi, int64_t bjlo, int64_t bjhi, int g_c, int64_t cilo, int64_t cihi, int64_t cjlo, int64_t cjhi);
 
340
extern void          GA_Median_patch64(int g_a, int64_t *alo, int64_t *ahi, int g_b, int64_t *blo, int64_t *bhi, int g_c, int64_t *clo, int64_t *chi, int g_m, int64_t *mlo, int64_t *mhi);
 
341
extern void          GA_Pack64(int g_src, int g_dest, int g_mask, int64_t lo, int64_t hi, int64_t *icount);
 
342
extern void          GA_Pack(int g_src, int g_dest, int g_mask, int lo, int hi, int *icount);
 
343
extern void          GA_Patch_enum64(int g_a, int64_t lo, int64_t hi, void *start, void *inc);
 
344
extern void          GA_Patch_enum(int g_a, int lo, int hi, void *start, void *inc);
 
345
extern void          GA_Recip_patch64(int g_a,int64_t *lo, int64_t *hi);
 
346
extern void          GA_Scan_add64(int g_a, int g_b, int g_sbit, int64_t lo, int64_t hi, int excl);
 
347
extern void          GA_Scan_copy64(int g_a, int g_b, int g_sbit, int64_t lo, int64_t hi);
 
348
extern void          GA_Set_chunk64(int g_a, int64_t chunk[]);
 
349
extern void          GA_Set_data64(int g_a, int ndim, int64_t dims[], int type);
 
350
extern void          GA_Set_ghosts64(int g_a, int64_t width[]);
 
351
extern void          GA_Set_irreg_distr64(int g_a, int64_t map[], int64_t block[]);
 
352
extern void          GA_Sgemm64(char ta, char tb, int64_t m, int64_t n, int64_t k, float alpha, int g_a, int g_b, float beta,  int g_c );
 
353
extern void          GA_Step_bound_info_patch64(int g_xx, int64_t xxlo[], int64_t xxhi[], int g_vv, int64_t vvlo[], int64_t vvhi[], int g_xxll, int64_t xxlllo[], int64_t xxllhi[], int64_t g_xxuu,  int64_t xxuulo[], int64_t xxuuhi[], void *boundmin, void *wolfemin, void *boundmax);
 
354
extern void          GA_Step_max_patch64(int g_a, int64_t alo[], int64_t  ahi[], int g_b, int64_t blo[], int64_t  bhi[], void *step);
 
355
extern void          GA_Unpack64(int g_src, int g_dest, int g_mask, int64_t lo, int64_t hi, int64_t *icount);
 
356
extern void          GA_Unpack(int g_src, int g_dest, int g_mask, int lo, int hi, int *icount);
 
357
extern void          GA_Zgemm64(char ta, char tb, int64_t m, int64_t n, int64_t k, DoubleComplex alpha, int g_a, int g_b, DoubleComplex beta, int g_c );
 
358
extern void          NGA_Acc64(int g_a, int64_t lo[], int64_t hi[],void* buf,int64_t ld[],void* alpha);
 
359
extern void          NGA_Access64(int g_a, int64_t lo[], int64_t hi[], void *ptr, int64_t ld[]);
 
360
extern void          NGA_Access_block64(int g_a, int64_t idx, void *ptr, int64_t ld[]);
 
361
extern void          NGA_Access_block_grid64(int g_a, int64_t index[], void *ptr, int64_t ld[]);
 
362
extern void          NGA_Access_block_segment64(int g_a, int proc, void *ptr, int64_t *len);
 
363
extern void          NGA_Access_ghost_element64(int g_a,  void *ptr, int64_t subscript[], int64_t ld[]);
 
364
extern void          NGA_Access_ghosts64(int g_a, int64_t dims[], void *ptr, int64_t ld[]);
 
365
extern void          NGA_Add_patch64(void * alpha, int g_a, int64_t alo[], int64_t ahi[], void * beta,  int g_b, int64_t blo[], int64_t bhi[], int g_c, int64_t clo[], int64_t chi[]);
 
366
extern SingleComplex NGA_Cdot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
367
extern void          NGA_Copy_patch64(char trans, int g_a, int64_t alo[], int64_t ahi[], int g_b, int64_t blo[], int64_t bhi[]);
 
368
extern int           NGA_Create64(int type,int ndim,int64_t dims[], char *name, int64_t chunk[]);
 
369
extern int           NGA_Create_config64(int type,int ndim,int64_t dims[], char *name, int64_t chunk[], int p_handle);
 
370
extern int           NGA_Create_ghosts64(int type,int ndim,int64_t dims[], int64_t width[], char *name, int64_t chunk[]);
 
371
extern int           NGA_Create_ghosts_config64(int type,int ndim,int64_t dims[], int64_t width[], char *name, int64_t chunk[], int p_handle);
 
372
extern int           NGA_Create_ghosts_irreg64(int type,int ndim,int64_t dims[], int64_t width[], char *name, int64_t map[], int64_t nblock[]);
 
373
extern int           NGA_Create_ghosts_irreg_config64(int type,int ndim,int64_t dims[], int64_t width[], char *name, int64_t map[], int64_t nblock[], int p_handle);
 
374
extern int           NGA_Create_irreg64(int type,int ndim,int64_t dims[],char *name, int64_t block[], int64_t map[]);
 
375
extern int           NGA_Create_irreg_config64(int type,int ndim,int64_t dims[],char *name, int64_t block[], int64_t map[], int p_handle);
 
376
extern double        NGA_Ddot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
377
extern void          NGA_Distribution64(int g_a, int iproc, int64_t lo[], int64_t hi[]);
 
378
extern float         NGA_Fdot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
379
extern void          NGA_Fill_patch64(int g_a, int64_t lo[], int64_t hi[], void *val);
 
380
extern void          NGA_Gather64(int g_a, void *v, int64_t* subsArray[], int64_t n);
 
381
extern void          NGA_Gather_flat64(int g_a, void *v, int64_t subsArray[], int64_t n);
 
382
extern void          NGA_Get64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[]); 
 
383
extern void          NGA_Get_ghost_block64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[]); 
 
384
extern int           NGA_Idot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
385
extern void          NGA_Inquire64(int g_a, int *type, int *ndim, int64_t dims[]);
 
386
extern long          NGA_Ldot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
387
extern long long     NGA_Lldot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
388
extern int           NGA_Locate64(int g_a, int64_t subscript[]);
 
389
extern int           NGA_Locate_nnodes64(int g_a, int64_t lo[], int64_t hi[]);
 
390
extern int           NGA_Locate_region64(int g_a,int64_t lo[],int64_t hi[],int64_t map[],int procs[]);
 
391
extern void          NGA_Matmul_patch64(char transa, char transb, void* alpha, void *beta, int g_a, int64_t alo[], int64_t ahi[], int g_b, int64_t blo[], int64_t bhi[], int g_c, int64_t clo[], int64_t chi[]) ;
 
392
extern void          NGA_Merge_distr_patch64(int g_a, int64_t alo[], int64_t ahi[], int g_b, int64_t blo[], int64_t bhi[]);
 
393
extern void          NGA_NbAcc64(int g_a,int64_t lo[],int64_t hi[],void* buf,int64_t ld[],void* alpha, ga_nbhdl_t* nbhandle);
 
394
extern void          NGA_NbGet64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[], ga_nbhdl_t* nbhandle);
 
395
extern void          NGA_NbGet_ghost_dir64(int g_a, int64_t mask[], ga_nbhdl_t* handle);
 
396
extern void          NGA_NbPut64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[], ga_nbhdl_t* nbhandle);
 
397
extern void          NGA_Periodic_acc64(int g_a, int64_t lo[], int64_t hi[],void* buf,int64_t ld[],void* alpha);
 
398
extern void          NGA_Periodic_get64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[]); 
 
399
extern void          NGA_Periodic_put64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[]); 
 
400
extern void          NGA_Print_patch64(int g_a, int64_t lo[], int64_t hi[], int pretty);
 
401
extern void          NGA_Put64(int g_a, int64_t lo[], int64_t hi[], void* buf, int64_t ld[]); 
 
402
extern long          NGA_Read_inc64(int g_a, int64_t subscript[], long inc);
 
403
extern void          NGA_Release64(int g_a, int64_t lo[], int64_t hi[]);
 
404
extern void          NGA_Release_ghost_element64(int g_a, int64_t index[]);
 
405
extern void          NGA_Release_update64(int g_a, int64_t lo[], int64_t hi[]);
 
406
extern void          NGA_Release_update_ghost_element64(int g_a, int64_t index[]);
 
407
extern void          NGA_Scale_patch64(int g_a, int64_t lo[], int64_t hi[], void *alpha);
 
408
extern void          NGA_Scatter64(int g_a, void *v, int64_t* subsArray[], int64_t n);
 
409
extern void          NGA_Scatter_flat64(int g_a, void *v, int64_t subsArray[], int64_t n);
 
410
extern void          NGA_Scatter_acc64(int g_a, void *v, int64_t* subsArray[], int64_t n, void *alpha);
 
411
extern void          NGA_Scatter_acc_flat64(int g_a, void *v, int64_t subsArray[], int64_t n, void *alpha);
 
412
extern void          NGA_Select_elem64(int g_a, char* op, void* val, int64_t* index);
 
413
extern void          NGA_Set_data64(int g_a, int ndim, int64_t dims[], int type);
 
414
extern void          NGA_Set_ghosts64(int g_a, int64_t width[]);
 
415
extern void          NGA_Set_irreg_distr64(int g_a, int64_t map[], int64_t block[]);
 
416
extern void          NGA_Strided_acc64(int g_a, int64_t lo[], int64_t hi[], int64_t skip[], void* buf, int64_t  ld[], void *alpha); 
 
417
extern void          NGA_Strided_get64(int g_a, int64_t lo[], int64_t hi[], int64_t skip[], void* buf, int64_t  ld[]); 
 
418
extern void          NGA_Strided_put64(int g_a, int64_t lo[], int64_t hi[], int64_t skip[], void* buf, int64_t  ld[]); 
 
419
extern DoubleComplex NGA_Zdot_patch64(int g_a, char t_a, int64_t alo[], int64_t ahi[], int g_b, char t_b, int64_t blo[], int64_t bhi[]);
 
420
extern void          NGA_Zero_patch64(int g_a, int64_t lo[], int64_t hi[]);
 
421
 
 
422
#ifdef __cplusplus
 
423
}
 
424
#endif
 
425
 
 
426
#endif