QMCPACK
createBsplineReader.h
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) 2019 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_CREATE_BSPLINE_READER_H
14 #define QMCPLUSPLUS_CREATE_BSPLINE_READER_H
15 
16 #include <memory>
17 #include <string>
18 
19 namespace qmcplusplus
20 {
21 ///forward declaration
22 struct BsplineReader;
23 class EinsplineSetBuilder;
24 
25 template<typename ST>
27 
28 template<>
30 {
31  constexpr static std::string_view value = "single";
32 };
33 
34 template<>
35 struct SplineStoragePrecision<double>
36 {
37  constexpr static std::string_view value = "double";
38 };
39 
40 /** create a reader which handles complex (double size real) splines, C2R or C2C case
41  * spline storage and computation precision is double
42  */
43 std::unique_ptr<BsplineReader> createBsplineComplex(EinsplineSetBuilder* e,
44  bool use_single,
45  bool hybrid_rep,
46  const std::string& useGPU);
47 
48 /** create a reader which handles real splines, R2R case
49  * spline storage and computation precision is double
50  */
51 std::unique_ptr<BsplineReader> createBsplineReal(EinsplineSetBuilder* e,
52  bool use_single,
53  bool hybrid_rep,
54  const std::string& useGPU);
55 
56 } // namespace qmcplusplus
57 #endif
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
std::unique_ptr< BsplineReader > createBsplineReal(EinsplineSetBuilder *e, bool use_single, bool hybrid_rep, const std::string &useGPU)
create a reader which handles real splines, R2R case spline storage and computation precision is doub...
std::unique_ptr< BsplineReader > createBsplineComplex(EinsplineSetBuilder *e, bool hybrid_rep, const std::string &useGPU)
create a reader which handles complex (double size real) splines, C2R or C2C case spline storage and ...