QMCPACK
OTDot< TinyVector< T1, D >, SymTensor< T2, D > > Struct Template Reference
+ Collaboration diagram for OTDot< TinyVector< T1, D >, SymTensor< T2, D > >:

Public Types

using Type_t = typename BinaryReturn< T1, T2, OpMultiply >::Type_t
 

Static Public Member Functions

static TinyVector< Type_t, D > apply (const TinyVector< T2, D > &lhs, const SymTensor< T1, D > &rhs)
 

Detailed Description

template<class T1, class T2, unsigned D>
struct qmcplusplus::OTDot< TinyVector< T1, D >, SymTensor< T2, D > >

Definition at line 230 of file TinyVectorTensorOps.h.

Member Typedef Documentation

◆ Type_t

using Type_t = typename BinaryReturn<T1, T2, OpMultiply>::Type_t

Definition at line 232 of file TinyVectorTensorOps.h.

Member Function Documentation

◆ apply()

static TinyVector<Type_t, D> apply ( const TinyVector< T2, D > &  lhs,
const SymTensor< T1, D > &  rhs 
)
inlinestatic

Definition at line 233 of file TinyVectorTensorOps.h.

234  {
236  for (unsigned int i = 0; i < D; ++i)
237  {
238  Type_t sum = lhs[0] * rhs[i * (i + 1) / 2];
239  unsigned int j = 1;
240  for (; j < i; ++j)
241  sum += lhs[j] * rhs[i * (i + 1) / 2 + j];
242  for (; j < D; ++j)
243  sum += lhs[j] * rhs[j * (j + 1) / 2 + i];
244  ret[i] = sum;
245  }
246  return ret;
247  }
typename BinaryReturn< T1, T2, OpMultiply >::Type_t Type_t

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