pomerol  2.1
Public Member Functions | Data Fields
Pomerol::ElementWithPermFreq< ElementType > Struct Template Reference

A decorator that permutes indices of Matsubara frequencies in calls to operator(). More...

#include <IndexContainer4.hpp>

Collaboration diagram for Pomerol::ElementWithPermFreq< ElementType >:
Collaboration graph
[legend]

Public Member Functions

 ElementWithPermFreq (std::shared_ptr< ElementType > pElement, Permutation4 const &FrequenciesPermutation)
 
ComplexType operator() (long MatsubaraNumber1, long MatsubaraNumber2, long MatsubaraNumber3) const
 
 operator ElementType & ()
 Return a reference to the underlying object. More...
 

Data Fields

std::shared_ptr< ElementType > pElement
 The underlying callable object. More...
 
const Permutation4 FrequenciesPermutation
 The permutation of the frequency indices. More...
 

Detailed Description

template<typename ElementType>
struct Pomerol::ElementWithPermFreq< ElementType >

A decorator that permutes indices of Matsubara frequencies in calls to operator().

A decorator that intercepts calls to operator()(n1, n2, n3) and forwards them to an underlying object while permuting the Matsubara frequency indices n1, n2, n3.

Template Parameters
ElementTypeUnderlying object type.

Definition at line 38 of file IndexContainer4.hpp.

Constructor & Destructor Documentation

◆ ElementWithPermFreq()

template<typename ElementType >
Pomerol::ElementWithPermFreq< ElementType >::ElementWithPermFreq ( std::shared_ptr< ElementType >  pElement,
Permutation4 const &  FrequenciesPermutation 
)
inline

Constructor.

Parameters
[in]pElementThe object to be decorated.
[in]FrequenciesPermutationThe Matsubara frequency index permutation.

Definition at line 133 of file IndexContainer4.hpp.

Member Function Documentation

◆ operator ElementType &()

template<typename ElementType >
Pomerol::ElementWithPermFreq< ElementType >::operator ElementType &
inline

Return a reference to the underlying object.

Definition at line 151 of file IndexContainer4.hpp.

◆ operator()()

template<typename ElementType >
ComplexType Pomerol::ElementWithPermFreq< ElementType >::operator() ( long  MatsubaraNumber1,
long  MatsubaraNumber2,
long  MatsubaraNumber3 
) const
inline

Call the underlying object with the permuted Matsubara frequency indices.

Parameters
[in]MatsubaraNumber1First Matsubara frequency index.
[in]MatsubaraNumber2Second Matsubara frequency index.
[in]MatsubaraNumber3Third Matsubara frequency index.

Definition at line 138 of file IndexContainer4.hpp.

Field Documentation

◆ FrequenciesPermutation

template<typename ElementType >
const Permutation4 Pomerol::ElementWithPermFreq< ElementType >::FrequenciesPermutation

The permutation of the frequency indices.

Definition at line 42 of file IndexContainer4.hpp.

◆ pElement

template<typename ElementType >
std::shared_ptr<ElementType> Pomerol::ElementWithPermFreq< ElementType >::pElement

The underlying callable object.

Definition at line 40 of file IndexContainer4.hpp.


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