QMCPACK
test_e2iphi.cpp
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) 2017 Jeongnim Kim and QMCPACK developers.
6 //
7 // File developed by: Mark Dewing, markdewing@gmail.com, University of Illinois at Urbana-Champaign
8 //
9 // File created by: Mark Dewing, markdewing@gmail.com, University of Illinois at Urbana-Champaign
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #include "catch.hpp"
14 
15 #include <stdio.h>
16 #include <string>
17 #include "CPU/e2iphi.h"
18 
19 using std::string;
20 
21 namespace qmcplusplus
22 {
23 template<unsigned int N, typename T>
25 {
26  T phi[N];
27  T vcos[N];
28  T vsin[N];
29  for (int i = 0; i < N; i++)
30  {
31  phi[i] = 0.2 * i;
32  }
33 
34  eval_e2iphi(N, phi, vcos, vsin);
35 
36  for (int i = 0; i < N; i++)
37  {
38  CHECK(vcos[i] == Approx(std::cos(phi[i])));
39  CHECK(vsin[i] == Approx(std::sin(phi[i])));
40  }
41 }
42 
43 TEST_CASE("e2iphi", "[numerics]")
44 {
45  test_e2iphi<1, double>();
46  test_e2iphi<2, double>();
47  test_e2iphi<3, double>();
48  test_e2iphi<4, double>();
49 
50  test_e2iphi<1, float>();
51  test_e2iphi<2, float>();
52  test_e2iphi<3, float>();
53  test_e2iphi<4, float>();
54 }
55 
56 } // namespace qmcplusplus
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
TEST_CASE("complex_helper", "[type_traits]")
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
void test_e2iphi()
Definition: test_e2iphi.cpp:24
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
void eval_e2iphi(int n, const T *restrict phi, T *restrict phase_r, T *restrict phase_i)
Definition: e2iphi.h:61