File parafafttranspositionflags.h
File List > code_source > templat > include > TempLat > fft > external > parafaft > parafafttranspositionflags.h
Go to the documentation of this file
#ifndef TEMPLAT_FFT_EXTERNAL_PARAFAFT_PARAFAFTTRANSPOSITIONFLAGS_H
#define TEMPLAT_FFT_EXTERNAL_PARAFAFT_PARAFAFTTRANSPOSITIONFLAGS_H
/* This file is part of TempLat, available at https://cosmolattice.github.io/templat .
Copyright 2021-2026 The TempLat authors, see AUTHORS.md.
Released under the MIT license, see LICENSE.md. */
// File info: Main contributor(s): Adrien Florio, Year: 2026
#ifdef HAVE_PARAFAFT
#include "TempLat/lattice/memory/memorylayouts/fftlayoutstruct.h"
namespace TempLat
{
class ParafaftTranspositionFlags
{
public:
ParafaftTranspositionFlags(const FFTLayoutStruct &layout)
{
// Parafaft doesn't support transposition - always uses canonical order
(void)layout; // unused, but kept for interface compatibility
mFlagC2R = 0u;
mFlagR2C = 0u;
}
unsigned int c2r() const { return mFlagC2R; }
unsigned int r2c() const { return mFlagR2C; }
friend std::ostream &operator<<(std::ostream &ostream, const ParafaftTranspositionFlags &tr)
{
(void)tr; // unused
ostream << "C2R : not transposed (parafaft does not support transposition).\n";
ostream << "R2C : not transposed (parafaft does not support transposition).\n";
return ostream;
}
private:
unsigned int mFlagC2R;
unsigned int mFlagR2C;
};
} // namespace TempLat
#endif // HAVE_PARAFAFT
#endif