~ubuntu-branches/ubuntu/trusty/nwchem/trusty-proposed

« 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, Daniel Leidert, Andreas Tille, Michael Banck
  • Date: 2013-07-04 12:14:55 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130704121455-5tvsx2qabor3nrui
Tags: 6.3-1
* New upstream release.
* Fixes anisotropic properties (Closes: #696361).
* New features include:
  + Multi-reference coupled cluster (MRCC) approaches
  + Hybrid DFT calculations with short-range HF 
  + New density-functionals including Minnesota (M08, M11) and HSE hybrid
    functionals
  + X-ray absorption spectroscopy (XAS) with TDDFT
  + Analytical gradients for the COSMO solvation model
  + Transition densities from TDDFT 
  + DFT+U and Electron-Transfer (ET) methods for plane wave calculations
  + Exploitation of space group symmetry in plane wave geometry optimizations
  + Local density of states (LDOS) collective variable added to Metadynamics
  + Various new XC functionals added for plane wave calculations, including
    hybrid and range-corrected ones
  + Electric field gradients with relativistic corrections 
  + Nudged Elastic Band optimization method
  + Updated basis sets and ECPs 

[ Daniel Leidert ]
* debian/watch: Fixed.

[ Andreas Tille ]
* debian/upstream: References

[ Michael Banck ]
* debian/upstream (Name): New field.
* debian/patches/02_makefile_flags.patch: Refreshed.
* debian/patches/06_statfs_kfreebsd.patch: Likewise.
* debian/patches/07_ga_target_force_linux.patch: Likewise.
* debian/patches/05_avoid_inline_assembler.patch: Removed, no longer needed.
* debian/patches/09_backported_6.1.1_fixes.patch: Likewise.
* debian/control (Build-Depends): Added gfortran-4.7 and gcc-4.7.
* debian/patches/10_force_gcc-4.7.patch: New patch, explicitly sets
  gfortran-4.7 and gcc-4.7, fixes test suite hang with gcc-4.8 (Closes:
  #701328, #713262).
* debian/testsuite: Added tests for COSMO analytical gradients and MRCC.
* debian/rules (MRCC_METHODS): New variable, required to enable MRCC methods.

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