QMCPACK
MCCoords.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) 2022 QMCPACK developers.
6 //
7 // File developed by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
8 //
9 // File created by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 #include "MCCoords.hpp"
13 
14 namespace qmcplusplus
15 {
16 void MCCoords<CoordsType::POS>::getSubset(const std::size_t offset,
17  const std::size_t size,
18  MCCoords<CoordsType::POS>& out) const
19 {
20  std::copy_n(positions.begin() + offset, size, out.positions.begin());
21 }
22 
24 {
25  assert(positions.size() == rhs.positions.size());
26  std::transform(positions.begin(), positions.end(), rhs.positions.begin(), positions.begin(),
27  [](const QMCTraits::PosType& x, const QMCTraits::PosType& y) { return x + y; });
28  return *this;
29 }
30 
31 void MCCoords<CoordsType::POS_SPIN>::getSubset(const std::size_t offset,
32  const std::size_t size,
34 {
35  std::copy_n(positions.begin() + offset, size, out.positions.begin());
36  std::copy_n(spins.begin() + offset, size, out.spins.begin());
37 }
38 
40 {
41  assert(positions.size() == rhs.positions.size());
42  std::transform(positions.begin(), positions.end(), rhs.positions.begin(), positions.begin(),
43  [](const QMCTraits::PosType& x, const QMCTraits::PosType& y) { return x + y; });
44  std::transform(spins.begin(), spins.end(), rhs.spins.begin(), spins.begin(),
45  [](const QMCTraits::FullPrecRealType& x, const QMCTraits::FullPrecRealType& y) { return x + y; });
46  return *this;
47 }
48 
49 template struct MCCoords<CoordsType::POS>;
50 template struct MCCoords<CoordsType::POS_SPIN>;
51 } // namespace qmcplusplus
std::vector< QMCTraits::PosType > positions
Definition: MCCoords.hpp:60
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
std::vector< QMCTraits::FullPrecRealType > spins
Definition: MCCoords.hpp:61
std::vector< QMCTraits::PosType > positions
Definition: MCCoords.hpp:45
sycl::event copy_n(sycl::queue &aq, const T1 *restrict VA, size_t array_size, T2 *restrict VC, const std::vector< sycl::event > &events)
Definition: syclBLAS.cpp:548
QTFull::RealType FullPrecRealType
Definition: Configuration.h:66
cMat3 & operator+=(cMat3 &A, const cMat3 &B)
Definition: Blitz.h:438