QMCPACK
PlatformSelector.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_PLATFORM_SELECTOR_H
14 #define QMCPLUSPLUS_PLATFORM_SELECTOR_H
15 
16 #include <vector>
17 #include <string>
18 #include <config.h>
19 #include "PlatformKinds.hpp"
20 
21 namespace qmcplusplus
22 {
23 
24 enum class SelectorKind
25 {
29 };
30 
31 template<SelectorKind KIND>
33 {
34 public:
35  static const std::vector<std::string> candidate_values;
36  static PlatformKind selectPlatform(std::string_view value);
37 };
38 
40 
41 template<>
43 template<>
45 template<>
47 
48 #if defined(ENABLE_CUDA)
50 #elif defined(ENABLE_SYCL)
52 #else
54 #endif
55 
56 } // namespace qmcplusplus
57 #endif
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
static const std::vector< std::string > candidate_values
static PlatformKind selectPlatform(std::string_view value)