QMCPACK
PAOps< T, 2, T1 > Struct Template Reference

specialization for 2-dimension More...

+ Collaboration diagram for PAOps< T, 2, T1 >:

Public Types

using real_type = T
 
using complex_type = std::complex< T >
 
using rpos_type = TinyVector< T, 2 >
 
using ipos_type = TinyVector< T1, 2 >
 
using cpos_type = TinyVector< std::complex< T1 >, 2 >
 

Static Public Member Functions

static void scale (T a, const ParticleAttrib< cpos_type > &pa, ParticleAttrib< rpos_type > &pb)
 
static void scale (T a, const ParticleAttrib< ipos_type > &pa, ParticleAttrib< rpos_type > &pb)
 
static void axpy (T a, const ParticleAttrib< cpos_type > &pa, ParticleAttrib< rpos_type > &pb)
 
static void axpy (T a, const ParticleAttrib< ipos_type > &pa, ParticleAttrib< rpos_type > &pb)
 
static void axpy (T a, const ParticleAttrib< cpos_type > &pa, const ParticleAttrib< ipos_type > &pb, ParticleAttrib< rpos_type > &py)
 
static void axpy (T a, const ParticleAttrib< ipos_type > &pa, const ParticleAttrib< ipos_type > &pb, ParticleAttrib< rpos_type > &py)
 

Detailed Description

template<class T, class T1>
struct qmcplusplus::PAOps< T, 2, T1 >

specialization for 2-dimension

Definition at line 309 of file ParticleAttribOps.h.

Member Typedef Documentation

◆ complex_type

using complex_type = std::complex<T>

Definition at line 312 of file ParticleAttribOps.h.

◆ cpos_type

using cpos_type = TinyVector<std::complex<T1>, 2>

Definition at line 315 of file ParticleAttribOps.h.

◆ ipos_type

using ipos_type = TinyVector<T1, 2>

Definition at line 314 of file ParticleAttribOps.h.

◆ real_type

using real_type = T

Definition at line 311 of file ParticleAttribOps.h.

◆ rpos_type

using rpos_type = TinyVector<T, 2>

Definition at line 313 of file ParticleAttribOps.h.

Member Function Documentation

◆ axpy() [1/4]

static void axpy ( a,
const ParticleAttrib< cpos_type > &  pa,
ParticleAttrib< rpos_type > &  pb 
)
inlinestatic

Definition at line 329 of file ParticleAttribOps.h.

References Vector< T, Alloc >::size().

330  {
331  for (int i = 0; i < pa.size(); i++)
332  {
333  pb[i][0] += a * pa[i][0].real();
334  pb[i][1] += a * pa[i][1].real();
335  }
336  }

◆ axpy() [2/4]

static void axpy ( a,
const ParticleAttrib< ipos_type > &  pa,
ParticleAttrib< rpos_type > &  pb 
)
inlinestatic

Definition at line 338 of file ParticleAttribOps.h.

References Vector< T, Alloc >::size().

339  {
340  for (int i = 0; i < pa.size(); i++)
341  {
342  pb[i][0] += a * pa[i][0];
343  pb[i][1] += a * pa[i][1];
344  }
345  }

◆ axpy() [3/4]

static void axpy ( a,
const ParticleAttrib< cpos_type > &  pa,
const ParticleAttrib< ipos_type > &  pb,
ParticleAttrib< rpos_type > &  py 
)
inlinestatic

Definition at line 347 of file ParticleAttribOps.h.

References Vector< T, Alloc >::size().

351  {
352  for (int i = 0; i < pa.size(); i++)
353  {
354  py[i][0] = a * pa[i][0].real() + pb[i][0];
355  py[i][1] = a * pa[i][1].real() + pb[i][1];
356  }
357  }

◆ axpy() [4/4]

static void axpy ( a,
const ParticleAttrib< ipos_type > &  pa,
const ParticleAttrib< ipos_type > &  pb,
ParticleAttrib< rpos_type > &  py 
)
inlinestatic

Definition at line 359 of file ParticleAttribOps.h.

References Vector< T, Alloc >::size().

363  {
364  for (int i = 0; i < pa.size(); i++)
365  {
366  py[i][0] = a * pa[i][0] + pb[i][0];
367  py[i][1] = a * pa[i][1] + pb[i][1];
368  }
369  }

◆ scale() [1/2]

static void scale ( a,
const ParticleAttrib< cpos_type > &  pa,
ParticleAttrib< rpos_type > &  pb 
)
inlinestatic

Definition at line 317 of file ParticleAttribOps.h.

References Vector< T, Alloc >::size().

318  {
319  for (int i = 0; i < pa.size(); i++)
320  {
321  pb[i][0] = a * pa[i][0].real();
322  pb[i][1] = a * pa[i][1].real();
323  }
324  }

◆ scale() [2/2]

static void scale ( a,
const ParticleAttrib< ipos_type > &  pa,
ParticleAttrib< rpos_type > &  pb 
)
inlinestatic

Definition at line 326 of file ParticleAttribOps.h.

326 { pb = a * pa; }

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