QMCPACK
PooledData< T > Struct Template Reference
+ Inheritance diagram for PooledData< T >:
+ Collaboration diagram for PooledData< T >:

Public Types

using value_type = T
 
using size_type = typename std::vector< T >::size_type
 

Public Member Functions

 PooledData ()
 default constructor More...
 
 PooledData (size_type n)
 constructor with a size More...
 
size_type byteSize () const
 return the size of the data More...
 
size_type size () const
 return the size of the data More...
 
size_type current () const
 
void rewind (size_type cur=0)
 set the Current to a cursor More...
 
std::vector< T >::iterator begin ()
 return the starting iterator More...
 
std::vector< T >::iterator end ()
 return the ending iterator More...
 
void add (T &x)
 
void add (std::complex< T > &x)
 
template<class T1 >
void add (T1 &x)
 
template<class _InputIterator >
void add (_InputIterator first, _InputIterator last)
 
template<typename T1 >
void add (T1 *first, T1 *last)
 
template<typename T1 >
void add (std::complex< T1 > *first, std::complex< T1 > *last)
 
void get (T &x)
 
void get (std::complex< T > &x)
 
template<class T1 >
void get (T1 &x)
 
template<class _OutputIterator >
void get (_OutputIterator first, _OutputIterator last)
 
template<typename T1 >
void get (T1 *first, T1 *last)
 
template<typename T1 >
void get (std::complex< T1 > *first, std::complex< T1 > *last)
 
void put (T &x)
 
void put (std::complex< T > &x)
 
template<typename T1 >
void put (T1 &x)
 
template<class _InputIterator >
void put (_InputIterator first, _InputIterator last)
 
template<typename T1 >
void put (T1 *first, T1 *last)
 
template<typename T1 >
void put (std::complex< T1 > *first, std::complex< T1 > *last)
 
T * data ()
 return the address of the first element More...
 
void print (std::ostream &os)
 
template<class Msg >
Msg & putMessage (Msg &m)
 
template<class Msg >
Msg & getMessage (Msg &m)
 
PooledData< T > & operator+= (const PooledData< T > &s)
 
PooledData< T > & operator*= (T scale)
 
void clear ()
 clear the data and set Current=0 More...
 
void reserve (size_type n)
 reserve the memory using std::vector<T>::reserve More...
 
void resize (size_type n, T val=T())
 resize More...
 
operator[] (size_type i) const
 return i-th value More...
 
T & operator[] (size_type i)
 return i-th value to assign More...
 

Public Attributes

size_type Current
 
std::vector< T > myData
 

Detailed Description

template<class T>
struct PooledData< T >

Definition at line 30 of file PooledData.h.

Member Typedef Documentation

◆ size_type

using size_type = typename std::vector<T>::size_type

Definition at line 33 of file PooledData.h.

◆ value_type

using value_type = T

Definition at line 32 of file PooledData.h.

Constructor & Destructor Documentation

◆ PooledData() [1/2]

PooledData ( )
inline

default constructor

Definition at line 39 of file PooledData.h.

39 : Current(0) {}
size_type Current
Definition: PooledData.h:35

◆ PooledData() [2/2]

PooledData ( size_type  n)
inline

constructor with a size

Definition at line 42 of file PooledData.h.

42 : Current(0) { myData.resize(n, T()); }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

Member Function Documentation

◆ add() [1/6]

◆ add() [2/6]

void add ( std::complex< T > &  x)
inline

Definition at line 94 of file PooledData.h.

95  {
96  Current += 2;
97  myData.push_back(x.real());
98  myData.push_back(x.imag());
99  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ add() [3/6]

void add ( T1 &  x)
inline

Definition at line 102 of file PooledData.h.

103  {
104  Current++;
105  myData.push_back(static_cast<T>(x));
106  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ add() [4/6]

void add ( _InputIterator  first,
_InputIterator  last 
)
inline

Definition at line 109 of file PooledData.h.

110  {
111  Current += last - first;
112  myData.insert(myData.end(), first, last);
113  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ add() [5/6]

void add ( T1 *  first,
T1 *  last 
)
inline

Definition at line 116 of file PooledData.h.

117  {
118  Current += last - first;
119  myData.insert(myData.end(), first, last);
120  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ add() [6/6]

void add ( std::complex< T1 > *  first,
std::complex< T1 > *  last 
)
inline

Definition at line 123 of file PooledData.h.

124  {
125  size_type dn = 2 * (last - first);
126  T1* t = reinterpret_cast<T1*>(first);
127  myData.insert(myData.end(), t, t + dn);
128  Current += dn;
129  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36
typename std::vector< T >::size_type size_type
Definition: PooledData.h:33

◆ begin()

std::vector<T>::iterator begin ( )
inline

return the starting iterator

Definition at line 59 of file PooledData.h.

Referenced by ParticleSet::resetCollectables().

59 { return myData.begin(); }
std::vector< T > myData
Definition: PooledData.h:36

◆ byteSize()

size_type byteSize ( ) const
inline

return the size of the data

Definition at line 45 of file PooledData.h.

Referenced by qmcplusplus::TEST_CASE().

45 { return sizeof(T) * myData.size(); }
std::vector< T > myData
Definition: PooledData.h:36

◆ clear()

void clear ( )
inline

clear the data and set Current=0

Definition at line 65 of file PooledData.h.

Referenced by QMCHamiltonian::addObservables(), and QMCHamiltonian::makeClone().

66  {
67  myData.clear();
68  Current = 0;
69  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ current()

◆ data()

T* data ( )
inline

return the address of the first element

Definition at line 212 of file PooledData.h.

Referenced by Communicate::allreduce(), Communicate::bcast(), Communicate::gather(), and Communicate::gatherv().

212 { return &(myData[0]); }
std::vector< T > myData
Definition: PooledData.h:36

◆ end()

std::vector<T>::iterator end ( )
inline

return the ending iterator

Definition at line 61 of file PooledData.h.

Referenced by ParticleSet::resetCollectables().

61 { return myData.end(); }
std::vector< T > myData
Definition: PooledData.h:36

◆ get() [1/6]

void get ( T &  x)
inline

Definition at line 131 of file PooledData.h.

Referenced by EinsplineSetBuilder::bcastSortBands(), and EinsplineSetBuilder::BroadcastOrbitalInfo().

131 { x = myData[Current++]; }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ get() [2/6]

void get ( std::complex< T > &  x)
inline

Definition at line 133 of file PooledData.h.

134  {
135  x = std::complex<T>(myData[Current], myData[Current + 1]);
136  Current += 2;
137  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ get() [3/6]

void get ( T1 &  x)
inline

Definition at line 140 of file PooledData.h.

141  {
142  x = static_cast<T1>(myData[Current++]);
143  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ get() [4/6]

void get ( _OutputIterator  first,
_OutputIterator  last 
)
inline

Definition at line 146 of file PooledData.h.

147  {
148  size_type now = Current;
149  Current += last - first;
150  copy(myData.begin() + now, myData.begin() + Current, first);
151  }
size_type Current
Definition: PooledData.h:35
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
std::vector< T > myData
Definition: PooledData.h:36
typename std::vector< T >::size_type size_type
Definition: PooledData.h:33

◆ get() [5/6]

void get ( T1 *  first,
T1 *  last 
)
inline

Definition at line 154 of file PooledData.h.

155  {
156  size_type now = Current;
157  Current += last - first;
158  std::copy(myData.begin() + now, myData.begin() + Current, first);
159  }
size_type Current
Definition: PooledData.h:35
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
std::vector< T > myData
Definition: PooledData.h:36
typename std::vector< T >::size_type size_type
Definition: PooledData.h:33

◆ get() [6/6]

void get ( std::complex< T1 > *  first,
std::complex< T1 > *  last 
)
inline

Definition at line 162 of file PooledData.h.

163  {
164  while (first != last)
165  {
166  (*first) = std::complex<T1>(myData[Current], myData[Current + 1]);
167  ++first;
168  Current += 2;
169  }
170  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ getMessage()

Msg& getMessage ( Msg &  m)
inline

Definition at line 224 of file PooledData.h.

225  {
226  m.Unpack(&(myData[0]), myData.size());
227  return m;
228  }
std::vector< T > myData
Definition: PooledData.h:36

◆ operator*=()

PooledData<T>& operator*= ( scale)
inline

Definition at line 236 of file PooledData.h.

237  {
238  for (int i = 0; i < myData.size(); ++i)
239  myData[i] *= scale;
240  return *this;
241  }
std::vector< T > myData
Definition: PooledData.h:36

◆ operator+=()

PooledData<T>& operator+= ( const PooledData< T > &  s)
inline

Definition at line 230 of file PooledData.h.

231  {
232  for (int i = 0; i < myData.size(); ++i)
233  myData[i] += s[i];
234  return *this;
235  }
std::vector< T > myData
Definition: PooledData.h:36

◆ operator[]() [1/2]

T operator[] ( size_type  i) const
inline

return i-th value

Definition at line 83 of file PooledData.h.

83 { return myData[i]; }
std::vector< T > myData
Definition: PooledData.h:36

◆ operator[]() [2/2]

T& operator[] ( size_type  i)
inline

return i-th value to assign

Definition at line 85 of file PooledData.h.

85 { return myData[i]; }
std::vector< T > myData
Definition: PooledData.h:36

◆ print()

void print ( std::ostream &  os)
inline

Definition at line 214 of file PooledData.h.

214 { copy(myData.begin(), myData.end(), std::ostream_iterator<T>(os, " ")); }
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [1/6]

void put ( T &  x)
inline

Definition at line 172 of file PooledData.h.

Referenced by EinsplineSetBuilder::bcastSortBands().

172 { myData[Current++] = x; }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [2/6]

void put ( std::complex< T > &  x)
inline

Definition at line 174 of file PooledData.h.

175  {
176  myData[Current++] = x.real();
177  myData[Current++] = x.imag();
178  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [3/6]

void put ( T1 &  x)
inline

Definition at line 181 of file PooledData.h.

182  {
183  myData[Current++] = static_cast<T>(x);
184  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [4/6]

void put ( _InputIterator  first,
_InputIterator  last 
)
inline

Definition at line 187 of file PooledData.h.

188  {
189  copy(first, last, myData.begin() + Current);
190  Current += last - first;
191  }
size_type Current
Definition: PooledData.h:35
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [5/6]

void put ( T1 *  first,
T1 *  last 
)
inline

Definition at line 194 of file PooledData.h.

195  {
196  std::copy(first, last, myData.begin() + Current);
197  Current += last - first;
198  }
size_type Current
Definition: PooledData.h:35
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639
std::vector< T > myData
Definition: PooledData.h:36

◆ put() [6/6]

void put ( std::complex< T1 > *  first,
std::complex< T1 > *  last 
)
inline

Definition at line 201 of file PooledData.h.

202  {
203  while (first != last)
204  {
205  myData[Current++] = (*first).real();
206  myData[Current++] = (*first).imag();
207  ++first;
208  }
209  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ putMessage()

Msg& putMessage ( Msg &  m)
inline

Definition at line 217 of file PooledData.h.

218  {
219  m.Pack(&(myData[0]), myData.size());
220  return m;
221  }
std::vector< T > myData
Definition: PooledData.h:36

◆ reserve()

void reserve ( size_type  n)
inline

reserve the memory using std::vector<T>::reserve

Definition at line 71 of file PooledData.h.

72  {
73  myData.reserve(n);
74  Current = 0;
75  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ resize()

void resize ( size_type  n,
val = T() 
)
inline

resize

Definition at line 77 of file PooledData.h.

Referenced by QMCHamiltonian::makeClone(), and qmcplusplus::TEST_CASE().

78  {
79  myData.resize(n, val);
80  Current = 0;
81  }
size_type Current
Definition: PooledData.h:35
std::vector< T > myData
Definition: PooledData.h:36

◆ rewind()

void rewind ( size_type  cur = 0)
inline

set the Current to a cursor

Parameters
curlocator to which Current is assigned

Definition at line 56 of file PooledData.h.

Referenced by QMCHamiltonian::addObservables(), EinsplineSetBuilder::bcastSortBands(), EinsplineSetBuilder::BroadcastOrbitalInfo(), and QMCHamiltonian::resetObservables().

56 { Current = cur; }
size_type Current
Definition: PooledData.h:35

◆ size()

Member Data Documentation

◆ Current

◆ myData


The documentation for this struct was generated from the following file: