26#ifndef LATTICES_LATTICEFFT_H
27#define LATTICES_LATTICEFFT_H
29#include <casacore/casa/aips.h>
30#include <casacore/casa/BasicSL/Complex.h>
31#include <casacore/casa/Exceptions/Error.h>
32#include <casacore/scimath/Mathematics/NumericTraits.h>
33#include <casacore/casa/Arrays/ArrayFwd.h>
37template <
class T>
class Lattice;
71 template <
class ComplexType>
static void cfft2d(
86 template <
class ComplexType>
static void cfft(
94 template <
class ComplexType>
static void rcfft(
101 template <
class ComplexType>
static void myrcfft(
111 template <
class ComplexType>
static void rcfft(
116 template <
class ComplexType>
static void myrcfft(
132 template <
class ComplexType>
static void crfft(
137 template <
class ComplexType>
static void crfft(
141 template <
class ComplexType>
static void crfft(
153 String(__func__) +
": This method does not support real-valued lattices"
159 String(__func__) +
": This method does not support real-valued lattices"
167 String(__func__) +
": This method does not support real-valued lattices"
175 String(__func__) +
": This method does not support real-valued lattices"
184 String(__func__) +
": This is the real -> complex version, you've "
185 "called it with the wrong parameters"
194 String(__func__) +
": This is the real -> complex version, you've "
195 "called it with the wrong parameters"
204 String(__func__) +
": This is the real -> complex version, you've "
205 "called it with the wrong parameters"
214 String(__func__) +
": This is the real -> complex version, you've "
215 "called it with the wrong parameters"
223 String(__func__) +
": This is the real -> complex version, you've "
224 "called it with the wrong parameters"
232 String(__func__) +
": This is the real -> complex version, you've "
233 "called it with the wrong parameters"
241 String(__func__) +
": This is the real -> complex version, you've "
242 "called it with the wrong parameters"
250 String(__func__) +
": This is the real -> complex version, you've "
251 "called it with the wrong parameters"
260 String(__func__) +
": This is the complex -> real version, you've "
261 "called it with the wrong parameters"
270 String(__func__) +
": This is the complex -> real version, you've "
271 "called it with the wrong parameters"
279 String(__func__) +
": This is the complex -> real version, you've "
280 "called it with the wrong parameters"
288 String(__func__) +
": This is the complex -> real version, you've "
289 "called it with the wrong parameters"
297 String(__func__) +
": This is the complex -> real version, you've "
298 "called it with the wrong parameters"
306 String(__func__) +
": This is the complex -> real version, you've "
307 "called it with the wrong parameters"
312#ifndef CASACORE_NO_AUTO_TEMPLATES
313#include "LatticeFFT.tcc"
static void crfft(Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, Lattice< ComplexType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True, Bool doFast=False)
N-D complex->real FFT.
static void cfft(Lattice< ComplexType > &cLattice, const Bool toFrequency=True)
N-D in-place complex->complex FFT.
static void myrcfft(Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True)
static void cfft0(Lattice< ComplexType > &cLattice, const Vector< Bool > &whichAxes, const Bool toFrequency=True)
Non-folded version.
static void crfft(Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, Lattice< ComplexType > &in, const Bool doShift=True, Bool doFast=False)
static void cfft(Lattice< ComplexType > &cLattice, const Vector< Bool > &whichAxes, const Bool toFrequency=True)
N-D in-place complex->complex FFT.
static void crfft(Lattice< typename NumericTraits< ComplexType >::ConjugateType > &out, const Lattice< ComplexType > &in, const Bool doShift=True, Bool doFast=False)
static void rcfft(Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Bool doShift=True, Bool doFast=False)
N-D real->complex FFT.
static void cfft2d(Lattice< ComplexType > &cLattice, const Bool toFrequency=True)
2-D in-place complex->complex FFT.
static void myrcfft(Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Bool doShift=True)
static void rcfft(Lattice< ComplexType > &out, const Lattice< typename NumericTraits< ComplexType >::ConjugateType > &in, const Vector< Bool > &whichAxes, const Bool doShift=True, Bool doFast=False)
N-D real->complex FFT.
Char ConjugateType
Conjugate (real<->complex) type.
String: the storage and methods of handling collections of characters.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.