QMCPACK
OTDot< TinyVector< std::complex< T1 >, 3 >, TinyVector< std::complex< T2 >, 3 > > Struct Template Reference

specialization for complex-complex TinyVector More...

+ Collaboration diagram for OTDot< TinyVector< std::complex< T1 >, 3 >, TinyVector< std::complex< T2 >, 3 > >:

Public Types

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

Static Public Member Functions

static Type_t apply (const TinyVector< std::complex< T1 >, 3 > &lhs, const TinyVector< std::complex< T2 >, 3 > &rhs)
 

Detailed Description

template<class T1, class T2>
struct qmcplusplus::OTDot< TinyVector< std::complex< T1 >, 3 >, TinyVector< std::complex< T2 >, 3 > >

specialization for complex-complex TinyVector

Definition at line 381 of file TinyVectorOps.h.

Member Typedef Documentation

◆ Type_t

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

Definition at line 383 of file TinyVectorOps.h.

Member Function Documentation

◆ apply()

static Type_t apply ( const TinyVector< std::complex< T1 >, 3 > &  lhs,
const TinyVector< std::complex< T2 >, 3 > &  rhs 
)
inlinestatic

Definition at line 384 of file TinyVectorOps.h.

385  {
386  return std::complex<T1>(lhs[0].real() * rhs[0].real() - lhs[0].imag() * rhs[0].imag() +
387  lhs[1].real() * rhs[1].real() - lhs[1].imag() * rhs[1].imag() +
388  lhs[2].real() * rhs[2].real() - lhs[2].imag() * rhs[2].imag(),
389  lhs[0].real() * rhs[0].imag() + lhs[0].imag() * rhs[0].real() +
390  lhs[1].real() * rhs[1].imag() + lhs[1].imag() * rhs[1].real() +
391  lhs[2].real() * rhs[2].imag() + lhs[2].imag() * rhs[2].real());
392  }

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