QMCPACK
OTDot< SymTensor< T1, D >, TinyVector< T2, D > > Struct Template Reference
+ Collaboration diagram for OTDot< SymTensor< T1, D >, TinyVector< 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 SymTensor< T1, D > &lhs, const TinyVector< T2, D > &rhs)
 

Detailed Description

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

Definition at line 170 of file TinyVectorTensorOps.h.

Member Typedef Documentation

◆ Type_t

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

Definition at line 172 of file TinyVectorTensorOps.h.

Member Function Documentation

◆ apply()

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

Definition at line 173 of file TinyVectorTensorOps.h.

References SymTensor< T, D >::HL().

174  {
176  for (unsigned int i = 0; i < D; ++i)
177  {
178  Type_t sum = lhs.HL(i, 0) * rhs[0];
179  unsigned int j = 1;
180  for (; j < i; ++j)
181  sum += lhs.HL(i, j) * rhs[j];
182  for (; j < D; ++j)
183  sum += lhs.HL(j, i) * rhs[j];
184  ret[i] = sum;
185  }
186  return ret;
187  }
typename BinaryReturn< T1, T2, OpMultiply >::Type_t Type_t

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