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
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
function toString
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