QMCPACK
ompReductionTinyVector.hpp
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2022 QMCPACK developers.
6 //
7 // File developed by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
8 //
9 // File created by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef QMCPLUSPLUS_OMPREDUCTION_TINYVECTOR_H
14 #define QMCPLUSPLUS_OMPREDUCTION_TINYVECTOR_H
15 
16 #include <complex>
17 #include "config.h"
18 #include "TinyVector.h"
19 
20 namespace qmcplusplus
21 {
22 #if !defined(OPENMP_NO_UDR)
23 PRAGMA_OFFLOAD("omp declare reduction(+: TinyVector<float, OHMMS_DIM>: omp_out += omp_in)")
24 PRAGMA_OFFLOAD("omp declare reduction(+: TinyVector<double, OHMMS_DIM>: omp_out += omp_in)")
25 #endif
26 
27 #if !defined(OPENMP_NO_COMPLEX) && !defined(OPENMP_NO_UDR)
28 PRAGMA_OFFLOAD("omp declare reduction(+: TinyVector<std::complex<float>, OHMMS_DIM>: omp_out += omp_in)")
29 PRAGMA_OFFLOAD("omp declare reduction(+: TinyVector<std::complex<double>, OHMMS_DIM>: omp_out += omp_in)")
30 #endif
31 }
32 #endif // QMCPLUSPLUS_OMPREDUCTION_TINYVECTOR_H
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
#define OHMMS_DIM
Definition: config.h:64