Skip to content

Class TempLat::HermitianPartners

template <size_t NDim>

ClassList > TempLat > HermitianPartners

An almost abstract class which your FFT library must implement, which maps the redundant entries in the complex representation of the FFT of your real values data, to their hermitian-conjugate partners. More...

  • #include <hermitianpartners.h>

Inherited by the following classes: TempLat::FFTWHermitianPartners

Public Functions

Type Name
DEVICE_FUNCTION HermitianPartners (const device::IdxArray< NDim > & initNGrid)
HermitianPartnersMode getMode () const
DEVICE_FUNCTION HermitianValueAccounting getNumberOfIndependentValues () const
Compute the number of unique / independent real and imaginary floating point values in a memory layout.
DEVICE_FUNCTION HermitianRedundancy putHermitianPartner (const Container1 & globalCoordinate, Container2 & target) const
If the entry at your input globalCoordinate has a partner which is its hermitian conjugate, then return the coordinates to that partner. Otherwise return the input. No bounds checking!
DEVICE_FUNCTION HermitianRedundancy qualify (const Container & globalCoordinate) const
For testing purposes: track which entries in the layout carry redundant information, and if so, what information. The default implementation returns HermitianRedundancy::none , which you could (uselessly) use for configuration-space layouts.
void setMode (HermitianPartnersMode new_mode)
std::string toString () const

Detailed Description

Unit test: ctest -R test-hermitianpartners

Public Functions Documentation

function HermitianPartners

inline DEVICE_FUNCTION TempLat::HermitianPartners::HermitianPartners (
    const device::IdxArray< NDim > & initNGrid
) 

function getMode

inline HermitianPartnersMode TempLat::HermitianPartners::getMode () const

function getNumberOfIndependentValues

Compute the number of unique / independent real and imaginary floating point values in a memory layout.

inline DEVICE_FUNCTION HermitianValueAccounting TempLat::HermitianPartners::getNumberOfIndependentValues () const


function putHermitianPartner

If the entry at your input globalCoordinate has a partner which is its hermitian conjugate, then return the coordinates to that partner. Otherwise return the input. No bounds checking!

template<typename Container1, typename Container2>
inline DEVICE_FUNCTION HermitianRedundancy TempLat::HermitianPartners::putHermitianPartner (
    const Container1 & globalCoordinate,
    Container2 & target
) const


function qualify

For testing purposes: track which entries in the layout carry redundant information, and if so, what information. The default implementation returns HermitianRedundancy::none , which you could (uselessly) use for configuration-space layouts.

template<typename Container>
inline DEVICE_FUNCTION HermitianRedundancy TempLat::HermitianPartners::qualify (
    const Container & globalCoordinate
) const


function setMode

inline void TempLat::HermitianPartners::setMode (
    HermitianPartnersMode new_mode
) 

function toString

inline std::string TempLat::HermitianPartners::toString () const

Friends Documentation

friend operator<<

inline std::ostream & TempLat::HermitianPartners::operator<< (
    std::ostream & ostream,
    const HermitianPartners & hp
) 

friend operator==

template<size_t NDim2>
inline bool TempLat::HermitianPartners::operator== (
    const HermitianPartners < NDim > & a,
    const HermitianPartners < NDim2 > & b
) 


The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/memory/memorylayouts/hermitianpartners.h