1 #ifndef MHO_FastFourierTransform_HH__
2 #define MHO_FastFourierTransform_HH__
27 template<
typename XFloatType >
113 fInitialized =
false;
125 template<
typename XFloatType >
128 if((in !=
nullptr && out !=
nullptr) && (in->
GetSize() == out->
GetSize()))
138 fInitialized =
false;
162 "FFT input/output array dimensions are not valid or intialization failed. Aborting transform." << eom);
168 template<
typename XFloatType >
172 std::memcpy((
void*)out->
GetData(), (
void*)in->
GetData(), fW.fN *
sizeof(std::complex< XFloatType >));
173 return ExecuteInPlace(out);
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:244
Class MHO_NDArrayWrapper.
Definition: MHO_NDArrayWrapper.hh:42
std::size_t GetSize() const
get the total size of the array
Definition: MHO_NDArrayWrapper.hh:119
XValueType * GetData()
access to underlying data pointer (unsafe)
Definition: MHO_NDArrayWrapper.hh:262
Class MHO_UnaryOperator.
Definition: MHO_UnaryOperator.hh:24
Definition: MHO_ChannelLabeler.hh:17
void FFTBluestein(std::complex< XFloatType > *data, MHO_FastFourierTransformWorkspace< XFloatType > &work, bool isForward, unsigned int stride=1)
Performs Bluestein's FFT algorithm on complex data using a workspace for arbitrary N....
Definition: MHO_FastFourierTransformCalls.hh:68
void FFTRadix2(std::complex< XFloatType > *data, MHO_FastFourierTransformWorkspace< XFloatType > &work, bool isForward, unsigned int stride=1)
Performs a Radix-2 Decimation-in-time (DIT) FFT algorithm on complex data using a workspace for arbit...
Definition: MHO_FastFourierTransformCalls.hh:37