STIR  6.2.0
Namespaces | Macros | Functions

Functions for computing discrete fourier transforms. More...

#include "stir/numerics/fourier.h"
#include "stir/round.h"
#include "stir/modulo.h"
#include "stir/array_index_functions.h"
#include "stir/error.h"

Namespaces

 stir
 Namespace for the STIR library (and some/most of its applications)
 
 stir::detail
 Namespace for the implementation details of the STIR library.
 

Macros

#define INSTANTIATE(d, type)
 

Functions

template<typename T >
void stir::fourier_1d (T &c, const int sign)
 Compute one-dimensional discrete fourier transform of an array. More...
 
template<typename T >
void stir::fourier (T &c, const int sign=1)
 Compute multi-dimensional discrete fourier transform. More...
 
template<typename T >
Array< 1, std::complex< T > > stir::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). More...
 
template<typename T >
Array< 1, T > stir::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. More...
 
template<typename T >
Array< 1, T > stir::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). More...
 
template<int num_dimensions, typename T >
Array< num_dimensions, std::complex< T > > stir::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). More...
 
template<int num_dimensions, typename T >
Array< num_dimensions, T > stir::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. More...
 
template<int num_dimensions, typename T >
Array< num_dimensions, T > stir::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 even size). More...
 
template<int num_dimensions, typename T >
Array< num_dimensions, std::complex< T > > stir::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. More...
 
template void stir::fourier (Array< 3, std::complex< float >> &c, const int sign)
 
template void stir::fourier (Array< 2, std::complex< float >> &c, const int sign)
 
template void stir::fourier (Array< 1, std::complex< float >> &c, const int sign)
 
template void stir::fourier (VectorWithOffset< std::complex< float >> &c, const int sign)
 
 stir::INSTANTIATE (1, float)
 
 stir::INSTANTIATE (2, float)
 
 stir::INSTANTIATE (3, float)
 

Detailed Description

Functions for computing discrete fourier transforms.

Author
Kris Thielemans

Macro Definition Documentation

◆ INSTANTIATE

#define INSTANTIATE (   d,
  type 
)
Value:
template Array<d, std::complex<type>> fourier_for_real_data<>(const Array<d, type>& v, const int sign); \
template Array<d, type> inverse_fourier_for_real_data_corrupting_input<>(Array<d, std::complex<type>> & c, const int sign); \
template Array<d, type> inverse_fourier_for_real_data<>(const Array<d, std::complex<type>>& c, const int sign); \
template Array<d, std::complex<type>> pos_frequencies_to_all<>(const Array<d, std::complex<type>>& c);