20 #ifndef __stir_numerics_stir_fourier_h__ 21 #define __stir_numerics_stir_fourier_h__ 40 void fourier(T& c,
const int sign = 1);
57 # pragma warning(disable : 4244) 62 # pragma warning(default : 4244) 105 template <
typename T>
112 # pragma warning(disable : 4244) 116 # pragma warning(default : 4244) 153 template <
typename T>
163 template <
typename T>
173 template <
typename T>
200 template <
int num_dimensions,
typename T>
210 template <
int num_dimensions,
typename T>
220 template <
int num_dimensions,
typename T>
229 template <
int num_dimensions,
typename T>
Array< num_dimensions, std::complex< T > > pos_frequencies_to_all(const Array< num_dimensions, std::complex< T >> &c)
Adds negative frequencies to the last dimension of a complex array by complex conjugation.
Definition: fourier.cxx:352
void fourier(T &c, const int sign=1)
Compute multi-dimensional discrete fourier transform.
Definition: fourier.cxx:143
void inverse_fourier_1d(T &c, const int sign=1)
Compute the inverse of the one-dimensional discrete fourier transform.
Definition: fourier.h:107
void inverse_fourier(T &c, const int sign=1)
Compute the inverse of the multi-dimensional discrete fourier transform.
Definition: fourier.h:52
Array< 1, std::complex< T > > fourier_1d_for_real_data(const Array< 1, T > &c, const int sign=1)
Compute one-dimensional discrete fourier transform of a real array (of even size).
Definition: fourier.cxx:156
Array< 1, T > inverse_fourier_1d_for_real_data_corrupting_input(Array< 1, std::complex< T >> &c, const int sign)
As inverse_fourier_1d_for_real_data(), but avoiding the copy of the input array.
Definition: fourier.cxx:206
Array< 1, T > inverse_fourier_1d_for_real_data(const Array< 1, std::complex< T >> &c, const int sign=1)
Compute the inverse of the one-dimensional discrete fourier transform of a real array (of even size)...
Definition: fourier.cxx:257
defines the stir::VectorWithOffset class
void fourier_1d(T &c, const int sign)
Compute one-dimensional discrete fourier transform of an array.
Definition: fourier.cxx:65
defines additional numerical operations for arrays of complex numbers
Array< num_dimensions, T > inverse_fourier_for_real_data_corrupting_input(Array< num_dimensions, std::complex< T >> &c, const int sign=1)
As inverse_fourier_for_real_data(), but avoiding the copy of the input array.
Definition: fourier.cxx:337
Array< num_dimensions, T > inverse_fourier_for_real_data(const Array< num_dimensions, std::complex< T >> &c, const int sign=1)
Compute the inverse of the discrete fourier transform of a real array (with the last dimension of eve...
Definition: fourier.cxx:344
This class defines multi-dimensional (numeric) arrays.
Definition: Array.h:73
Array< num_dimensions, std::complex< T > > fourier_for_real_data(const Array< num_dimensions, T > &c, const int sign=1)
Compute discrete fourier transform of a real array (with the last dimensions of even size)...
Definition: fourier.cxx:330