QMCPACK
test_user_defined_reduction_complex.cpp File Reference
+ Include dependency graph for test_user_defined_reduction_complex.cpp:

Go to the source code of this file.

Functions

int main ()
 

Function Documentation

◆ main()

int main ( )

Definition at line 9 of file test_user_defined_reduction_complex.cpp.

References qmcplusplus::imag(), and qmcplusplus::Units::force::N.

10 {
11  const int N = 100;
12  std::vector<std::complex<float>> array(N);
13 
14  auto array_ptr = array.data();
15  for (int i = 0; i < N; i++)
16  array_ptr[i] = std::complex<float>(i);
17 
18  std::complex<float> sum;
19  #pragma omp parallel for reduction(+: sum)
20  for (int i = 0; i < N; i++)
21  sum += array_ptr[i];
22 
23  assert(std::real(sum) == 4950);
24  assert(std::imag(sum) == 0);
25 }
QMCTraits::RealType real
float imag(const float &c)
imaginary part of a scalar. Cannot be replaced by std::imag due to AFQMC specific needs...