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

« back to all changes in this revision

Viewing changes to src/tools/ga-5-1/armci/src/include/acc.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
 
#ifndef _ACC_H_
2
 
#define _ACC_H_
3
 
 
4
 
typedef struct {
5
 
    float real;
6
 
    float imag;
7
 
} complex_t;
8
 
 
9
 
typedef struct {
10
 
    double real;
11
 
    double imag;
12
 
} dcomplex_t;
13
 
 
14
 
void c_d_accumulate_1d_(const double* const restrict alpha,
15
 
                              double* const restrict A,
16
 
                        const double* const restrict B,
17
 
                        const int*    const restrict rows);
18
 
void c_f_accumulate_1d_(const float* const restrict alpha,
19
 
                              float* const restrict A,
20
 
                        const float* const restrict B,
21
 
                        const int*   const restrict rows);
22
 
void c_c_accumulate_1d_(const complex_t* const restrict alpha,
23
 
                              complex_t* const restrict A,
24
 
                        const complex_t* const restrict B,
25
 
                        const int*       const restrict rows);
26
 
void c_z_accumulate_1d_(const dcomplex_t* const restrict alpha,
27
 
                              dcomplex_t* const restrict A,
28
 
                        const dcomplex_t* const restrict B,
29
 
                        const int*        const restrict rows);
30
 
void c_i_accumulate_1d_(const int* const restrict alpha,
31
 
                              int* const restrict A,
32
 
                        const int* const restrict B,
33
 
                        const int* const restrict rows);
34
 
void c_l_accumulate_1d_(const long* const restrict alpha,
35
 
                              long* const restrict A,
36
 
                        const long* const restrict B,
37
 
                        const int*  const restrict rows);
38
 
void c_ll_accumulate_1d_(const long long* const restrict alpha,
39
 
                               long long* const restrict A,
40
 
                         const long long* const restrict B,
41
 
                         const int*       const restrict rows);
42
 
 
43
 
void c_d_accumulate_2d_(const double* const restrict alpha,
44
 
                        const int*    const restrict rows,
45
 
                        const int*    const restrict cols,
46
 
                              double* const restrict A,
47
 
                        const int*    const restrict ald,
48
 
                        const double* const restrict B,
49
 
                        const int*    const restrict bld);
50
 
void c_f_accumulate_2d_(const float*  const restrict alpha,
51
 
                        const int*    const restrict rows,
52
 
                        const int*    const restrict cols,
53
 
                              float*  const restrict A,
54
 
                        const int*    const restrict ald,
55
 
                        const float*  const restrict B,
56
 
                        const int*    const restrict bld);
57
 
void c_c_accumulate_2d_(const complex_t* const restrict alpha,
58
 
                        const int*       const restrict rows,
59
 
                        const int*       const restrict cols,
60
 
                              complex_t* const restrict A,
61
 
                        const int*       const restrict ald,
62
 
                        const complex_t* const restrict B,
63
 
                        const int*       const restrict bld);
64
 
void c_z_accumulate_2d_(const dcomplex_t* const restrict alpha,
65
 
                        const int*        const restrict rows,
66
 
                        const int*        const restrict cols,
67
 
                              dcomplex_t* const restrict A,
68
 
                        const int*        const restrict ald,
69
 
                        const dcomplex_t* const restrict B,
70
 
                        const int*        const restrict bld);
71
 
void c_i_accumulate_2d_(const int* const restrict alpha,
72
 
                        const int* const restrict rows,
73
 
                        const int* const restrict cols,
74
 
                              int* const restrict A,
75
 
                        const int* const restrict ald,
76
 
                        const int* const restrict B,
77
 
                        const int* const restrict bld);
78
 
void c_l_accumulate_2d_(const long* const restrict alpha,
79
 
                        const int*  const restrict rows,
80
 
                        const int*  const restrict cols,
81
 
                              long* const restrict A,
82
 
                        const int*  const restrict ald,
83
 
                        const long* const restrict B,
84
 
                        const int*  const restrict bld);
85
 
void c_ll_accumulate_2d_(const long long* const restrict alpha,
86
 
                         const int*       const restrict rows,
87
 
                         const int*       const restrict cols,
88
 
                               long long* const restrict A,
89
 
                         const int*       const restrict ald,
90
 
                         const long long* const restrict B,
91
 
                         const int*       const restrict bld);
92
 
 
93
 
void c_d_accumulate_2d_u_(const double* const restrict alpha,
94
 
                          const int*    const restrict rows,
95
 
                          const int*    const restrict cols,
96
 
                                double* const restrict A,
97
 
                          const int*    const restrict ald,
98
 
                          const double* const restrict B,
99
 
                          const int*    const restrict bld);
100
 
void c_f_accumulate_2d_u_(const float*  const restrict alpha,
101
 
                          const int*    const restrict rows,
102
 
                          const int*    const restrict cols,
103
 
                                float*  const restrict A,
104
 
                          const int*    const restrict ald,
105
 
                          const float*  const restrict B,
106
 
                          const int*    const restrict bld);
107
 
void c_c_accumulate_2d_u_(const complex_t* const restrict alpha,
108
 
                          const int*       const restrict rows,
109
 
                          const int*       const restrict cols,
110
 
                                complex_t* const restrict A,
111
 
                          const int*       const restrict ald,
112
 
                          const complex_t* const restrict B,
113
 
                          const int*       const restrict bld);
114
 
void c_z_accumulate_2d_u_(const dcomplex_t* const restrict alpha,
115
 
                          const int*        const restrict rows,
116
 
                          const int*        const restrict cols,
117
 
                                dcomplex_t* const restrict A,
118
 
                          const int*        const restrict ald,
119
 
                          const dcomplex_t* const restrict B,
120
 
                          const int*        const restrict bld);
121
 
void c_i_accumulate_2d_u_(const int* const restrict alpha,
122
 
                          const int* const restrict rows,
123
 
                          const int* const restrict cols,
124
 
                                int* const restrict A,
125
 
                          const int* const restrict ald,
126
 
                          const int* const restrict B,
127
 
                          const int* const restrict bld);
128
 
void c_l_accumulate_2d_u_(const long* const restrict alpha,
129
 
                          const int*  const restrict rows,
130
 
                          const int*  const restrict cols,
131
 
                                long* const restrict A,
132
 
                          const int*  const restrict ald,
133
 
                          const long* const restrict B,
134
 
                          const int*  const restrict bld);
135
 
void c_ll_accumulate_2d_u_(const long long* const restrict alpha,
136
 
                           const int*       const restrict rows,
137
 
                           const int*       const restrict cols,
138
 
                                 long long* const restrict A,
139
 
                           const int*       const restrict ald,
140
 
                           const long long* const restrict B,
141
 
                           const int*       const restrict bld);
142
 
 
143
 
void c_dadd_(const int*    const restrict n,
144
 
                   double* const restrict x,
145
 
             const double* const restrict work);
146
 
void c_dadd2_(const int*    const restrict n,
147
 
                    double* const restrict x,
148
 
              const double* const restrict work,
149
 
              const double* const restrict work2);
150
 
void c_dmult_(const int*    const restrict n,
151
 
                    double* const restrict x,
152
 
              const double* const restrict work);
153
 
void c_dmult2_(const int*    const restrict n,
154
 
                     double* const restrict x,
155
 
               const double* const restrict work,
156
 
               const double* const restrict work2);
157
 
 
158
 
#if ENABLE_F77
159
 
#   ifdef WIN32
160
 
#       define ATR __stdcall
161
 
#   else
162
 
#       define ATR
163
 
#   endif
164
 
#   define i_accumulate_1d_    F77_FUNC_(i_accumulate_1d,I_ACCUMULATE_2D)
165
 
#   define l_accumulate_1d_              c_l_accumulate_1d_
166
 
#   define ll_accumulate_1d_             c_ll_accumulate_1d_
167
 
#   define f_accumulate_1d_    F77_FUNC_(f_accumulate_1d,F_ACCUMULATE_2D)
168
 
#   define d_accumulate_1d_    F77_FUNC_(d_accumulate_1d,D_ACCUMULATE_2D)
169
 
#   define c_accumulate_1d_    F77_FUNC_(c_accumulate_1d,C_ACCUMULATE_2D)
170
 
#   define z_accumulate_1d_    F77_FUNC_(z_accumulate_1d,Z_ACCUMULATE_2D)
171
 
#   define i_accumulate_2d_    F77_FUNC_(i_accumulate_2d,I_ACCUMULATE_2D)
172
 
#   define l_accumulate_2d_              c_l_accumulate_2d_
173
 
#   define ll_accumulate_2d_             c_ll_accumulate_2d_
174
 
#   define f_accumulate_2d_    F77_FUNC_(f_accumulate_2d,F_ACCUMULATE_2D)
175
 
#   define d_accumulate_2d_    F77_FUNC_(d_accumulate_2d,D_ACCUMULATE_2D)
176
 
#   define c_accumulate_2d_    F77_FUNC_(c_accumulate_2d,C_ACCUMULATE_2D)
177
 
#   define z_accumulate_2d_    F77_FUNC_(z_accumulate_2d,Z_ACCUMULATE_2D)
178
 
#   define i_accumulate_2d_u_  F77_FUNC_(i_accumulate_2d_u,I_ACCUMULATE_2D_U)
179
 
#   define l_accumulate_2d_u_            c_l_accumulate_2d_u_
180
 
#   define ll_accumulate_2d_u_           c_ll_accumulate_2d_u_
181
 
#   define f_accumulate_2d_u_  F77_FUNC_(f_accumulate_2d_u,F_ACCUMULATE_2D_U)
182
 
#   define d_accumulate_2d_u_  F77_FUNC_(d_accumulate_2d_u,D_ACCUMULATE_2D_U)
183
 
#   define c_accumulate_2d_u_  F77_FUNC_(c_accumulate_2d_u,C_ACCUMULATE_2D_U)
184
 
#   define z_accumulate_2d_u_  F77_FUNC_(z_accumulate_2d_u,Z_ACCUMULATE_2D_U)
185
 
#   define fort_dadd_          F77_FUNC_(fort_dadd,FORT_DADD)
186
 
#   define fort_dadd2_         F77_FUNC_(fort_dadd2,FORT_DADD2)
187
 
#   define fort_dmult_         F77_FUNC_(fort_dmult,FORT_DMULT)
188
 
#   define fort_dmult2_        F77_FUNC_(fort_dmult2,FORT_DMULT2)
189
 
void ATR d_accumulate_1d_(const double* const restrict alpha,
190
 
                                double* const restrict A,
191
 
                          const double* const restrict B,
192
 
                          const int*    const restrict rows);
193
 
void ATR f_accumulate_1d_(const float* const restrict alpha,
194
 
                                float* const restrict A,
195
 
                          const float* const restrict B,
196
 
                          const int*   const restrict rows);
197
 
void ATR c_accumulate_1d_(const complex_t* const restrict alpha,
198
 
                                complex_t* const restrict A,
199
 
                          const complex_t* const restrict B,
200
 
                          const int*       const restrict rows);
201
 
void ATR z_accumulate_1d_(const dcomplex_t* const restrict alpha,
202
 
                                dcomplex_t* const restrict A,
203
 
                          const dcomplex_t* const restrict B,
204
 
                          const int*        const restrict rows);
205
 
void ATR i_accumulate_1d_(const int* const restrict alpha,
206
 
                                int* const restrict A,
207
 
                          const int* const restrict B,
208
 
                          const int* const restrict rows);
209
 
void ATR l_accumulate_1d_(const long* const restrict alpha,
210
 
                                long* const restrict A,
211
 
                          const long* const restrict B,
212
 
                          const int*  const restrict rows);
213
 
void ATR ll_accumulate_1d_(const long long* const restrict alpha,
214
 
                                 long long* const restrict A,
215
 
                           const long long* const restrict B,
216
 
                           const int*       const restrict rows);
217
 
 
218
 
void ATR d_accumulate_2d_(const double* const restrict alpha,
219
 
                          const int*    const restrict rows,
220
 
                          const int*    const restrict cols,
221
 
                                double* const restrict A,
222
 
                          const int*    const restrict ald,
223
 
                          const double* const restrict B,
224
 
                          const int*    const restrict bld);
225
 
void ATR f_accumulate_2d_(const float*  const restrict alpha,
226
 
                          const int*    const restrict rows,
227
 
                          const int*    const restrict cols,
228
 
                                float*  const restrict A,
229
 
                          const int*    const restrict ald,
230
 
                          const float*  const restrict B,
231
 
                          const int*    const restrict bld);
232
 
void ATR c_accumulate_2d_(const complex_t* const restrict alpha,
233
 
                          const int*       const restrict rows,
234
 
                          const int*       const restrict cols,
235
 
                                complex_t* const restrict A,
236
 
                          const int*       const restrict ald,
237
 
                          const complex_t* const restrict B,
238
 
                          const int*       const restrict bld);
239
 
void ATR z_accumulate_2d_(const dcomplex_t* const restrict alpha,
240
 
                          const int*        const restrict rows,
241
 
                          const int*        const restrict cols,
242
 
                                dcomplex_t* const restrict A,
243
 
                          const int*        const restrict ald,
244
 
                          const dcomplex_t* const restrict B,
245
 
                          const int*        const restrict bld);
246
 
void ATR i_accumulate_2d_(const int* const restrict alpha,
247
 
                          const int* const restrict rows,
248
 
                          const int* const restrict cols,
249
 
                                int* const restrict A,
250
 
                          const int* const restrict ald,
251
 
                          const int* const restrict B,
252
 
                          const int* const restrict bld);
253
 
void ATR l_accumulate_2d_(const long* const restrict alpha,
254
 
                          const int*  const restrict rows,
255
 
                          const int*  const restrict cols,
256
 
                                long* const restrict A,
257
 
                          const int*  const restrict ald,
258
 
                          const long* const restrict B,
259
 
                          const int*  const restrict bld);
260
 
void ATR ll_accumulate_2d_(const long long* const restrict alpha,
261
 
                           const int*       const restrict rows,
262
 
                           const int*       const restrict cols,
263
 
                                 long long* const restrict A,
264
 
                           const int*       const restrict ald,
265
 
                           const long long* const restrict B,
266
 
                           const int*       const restrict bld);
267
 
 
268
 
void ATR d_accumulate_2d_u_(const double* const restrict alpha,
269
 
                            const int*    const restrict rows,
270
 
                            const int*    const restrict cols,
271
 
                                  double* const restrict A,
272
 
                            const int*    const restrict ald,
273
 
                            const double* const restrict B,
274
 
                            const int*    const restrict bld);
275
 
void ATR f_accumulate_2d_u_(const float*  const restrict alpha,
276
 
                            const int*    const restrict rows,
277
 
                            const int*    const restrict cols,
278
 
                                  float*  const restrict A,
279
 
                            const int*    const restrict ald,
280
 
                            const float*  const restrict B,
281
 
                            const int*    const restrict bld);
282
 
void ATR c_accumulate_2d_u_(const complex_t* const restrict alpha,
283
 
                            const int*       const restrict rows,
284
 
                            const int*       const restrict cols,
285
 
                                  complex_t* const restrict A,
286
 
                            const int*       const restrict ald,
287
 
                            const complex_t* const restrict B,
288
 
                            const int*       const restrict bld);
289
 
void ATR z_accumulate_2d_u_(const dcomplex_t* const restrict alpha,
290
 
                            const int*        const restrict rows,
291
 
                            const int*        const restrict cols,
292
 
                                  dcomplex_t* const restrict A,
293
 
                            const int*        const restrict ald,
294
 
                            const dcomplex_t* const restrict B,
295
 
                            const int*        const restrict bld);
296
 
void ATR i_accumulate_2d_u_(const int* const restrict alpha,
297
 
                            const int* const restrict rows,
298
 
                            const int* const restrict cols,
299
 
                                  int* const restrict A,
300
 
                            const int* const restrict ald,
301
 
                            const int* const restrict B,
302
 
                            const int* const restrict bld);
303
 
void ATR l_accumulate_2d_u_(const long* const restrict alpha,
304
 
                            const int*  const restrict rows,
305
 
                            const int*  const restrict cols,
306
 
                                  long* const restrict A,
307
 
                            const int*  const restrict ald,
308
 
                            const long* const restrict B,
309
 
                            const int*  const restrict bld);
310
 
void ATR ll_accumulate_2d_u_(const long long* const restrict alpha,
311
 
                             const int*       const restrict rows,
312
 
                             const int*       const restrict cols,
313
 
                                   long long* const restrict A,
314
 
                             const int*       const restrict ald,
315
 
                             const long long* const restrict B,
316
 
                             const int*       const restrict bld);
317
 
 
318
 
void ATR fort_dadd_(const int*    const restrict n,
319
 
                          double* const restrict x,
320
 
                    const double* const restrict work);
321
 
void ATR fort_dadd2_(const int*    const restrict n,
322
 
                           double* const restrict x,
323
 
                     const double* const restrict work,
324
 
                     const double* const restrict work2);
325
 
void ATR fort_dmult_(const int*    const restrict n,
326
 
                           double* const restrict x,
327
 
                     const double* const restrict work);
328
 
void ATR fort_dmult2_(const int*    const restrict n,
329
 
                            double* const restrict x,
330
 
                      const double* const restrict work,
331
 
                      const double* const restrict work2);
332
 
#endif
333
 
 
334
 
#if NOFORT
335
 
#   define I_ACCUMULATE_1D   c_i_accumulate_1d_
336
 
#   define L_ACCUMULATE_1D   c_l_accumulate_1d_
337
 
#   define LL_ACCUMULATE_1D c_ll_accumulate_1d_
338
 
#   define D_ACCUMULATE_1D   c_d_accumulate_1d_
339
 
#   define C_ACCUMULATE_1D   c_c_accumulate_1d_
340
 
#   define Z_ACCUMULATE_1D   c_z_accumulate_1d_
341
 
#   define F_ACCUMULATE_1D   c_f_accumulate_1d_
342
 
#   define I_ACCUMULATE_2D   c_i_accumulate_2d_
343
 
#   define L_ACCUMULATE_2D   c_l_accumulate_2d_
344
 
#   define LL_ACCUMULATE_2D c_ll_accumulate_2d_
345
 
#   define D_ACCUMULATE_2D   c_d_accumulate_2d_
346
 
#   define C_ACCUMULATE_2D   c_c_accumulate_2d_
347
 
#   define Z_ACCUMULATE_2D   c_z_accumulate_2d_
348
 
#   define F_ACCUMULATE_2D   c_f_accumulate_2d_
349
 
#   define FORT_DADD   c_dadd_
350
 
#   define FORT_DADD2  c_dadd2_
351
 
#   define FORT_DMULT  c_dmult_
352
 
#   define FORT_DMULT2 c_dmult2_
353
 
#else
354
 
#   if defined(AIX) || defined(BGML) || defined(SGI_)
355
 
#       define I_ACCUMULATE_2D     i_accumulate_2d_u_
356
 
#       define L_ACCUMULATE_2D   c_l_accumulate_2d_u_
357
 
#       define LL_ACCUMULATE_2D c_ll_accumulate_2d_u_
358
 
#       define D_ACCUMULATE_2D     d_accumulate_2d_u_
359
 
#       define C_ACCUMULATE_2D     c_accumulate_2d_u_
360
 
#       define Z_ACCUMULATE_2D     z_accumulate_2d_u_
361
 
#       define F_ACCUMULATE_2D     f_accumulate_2d_u_
362
 
#   else
363
 
#       define I_ACCUMULATE_2D     i_accumulate_2d_
364
 
#       define L_ACCUMULATE_2D   c_l_accumulate_2d_
365
 
#       define LL_ACCUMULATE_2D c_ll_accumulate_2d_
366
 
#       define D_ACCUMULATE_2D     d_accumulate_2d_
367
 
#       define C_ACCUMULATE_2D     c_accumulate_2d_
368
 
#       define Z_ACCUMULATE_2D     z_accumulate_2d_
369
 
#       define F_ACCUMULATE_2D     f_accumulate_2d_
370
 
#   endif
371
 
#   if defined(CRAY) && !defined(__crayx1)
372
 
#       undef  D_ACCUMULATE_2D 
373
 
#       define D_ACCUMULATE_2D F77_FUNC_(daxpy_2d,DAXPY_2D)
374
 
#   endif
375
 
#   define I_ACCUMULATE_1D     i_accumulate_1d_
376
 
#   define L_ACCUMULATE_1D   c_l_accumulate_1d_
377
 
#   define LL_ACCUMULATE_1D c_ll_accumulate_1d_
378
 
#   define D_ACCUMULATE_1D     d_accumulate_1d_
379
 
#   define C_ACCUMULATE_1D     c_accumulate_1d_
380
 
#   define Z_ACCUMULATE_1D     z_accumulate_1d_
381
 
#   define F_ACCUMULATE_1D     f_accumulate_1d_
382
 
#   define FORT_DADD   fort_dadd_
383
 
#   define FORT_DADD2  fort_dadd2_
384
 
#   define FORT_DMULT  fort_dmult_
385
 
#   define FORT_DMULT2 fort_dmult2_
386
 
#endif /* !NOFORT */
387
 
 
388
 
#endif /* _ACC_H_ */