SourceXtractorPlusPlus
0.11
Please provide a description of the project.
|
Wraps the FFTW API with a more C++ like one. More...
#include <FFT.h>
Public Types | |
typedef FFTTraits< T > | fftw_traits |
typedef std::shared_ptr< typename fftw_traits::plan_t > | plan_ptr_t |
typedef std::complex< T > | complex_t |
Static Public Member Functions | |
static plan_ptr_t | createForwardPlan (int howmany, int width, int height, std::vector< T > &in, std::vector< complex_t > &out) |
static plan_ptr_t | createInversePlan (int howmany, int width, int height, std::vector< complex_t > &in, std::vector< T > &out) |
static void | executeForward (plan_ptr_t &plan, std::vector< T > &in, std::vector< complex_t > &out) |
static void | executeInverse (plan_ptr_t &plan, std::vector< complex_t > &in, std::vector< T > &out) |
Wraps the FFTW API with a more C++ like one.
It builds on top of the FFTTraits as defined previously
T | A floating point type |
typedef std::complex<T> SourceXtractor::FFT< T >::complex_t |
typedef FFTTraits<T> SourceXtractor::FFT< T >::fftw_traits |
typedef std::shared_ptr<typename fftw_traits::plan_t> SourceXtractor::FFT< T >::plan_ptr_t |
|
static |
Create, or reuses if already exists, a 2D FFTW forward plan.
howmany | How many transforms to compute in one shot. |
width | The width of the 2D original data |
height | The height of the 2D original data |
in | A buffer in row major order, with width*height*howmany positions. This buffer is passed to FFTW to perform its planning, and will be overwritten |
out | A buffer in row major order, width width*height*howmany positions. This buffer is passed to FFTW to perform its planning, and will be overwritten |
Definition at line 155 of file FFT.cpp.
References std::map< K, T >::emplace(), std::map< K, T >::end(), SourceXtractor::fftw_global_plan_mutex, std::map< K, T >::find(), std::make_tuple(), and pi.
Referenced by SourceXtractor::DFTConvolution< DetectionImage::PixelType, PaddedType >::prepare().
|
static |
Create, or reuses if already exists, a 2D FFTW inverse plan.
howmany | How many inverse transforms to compute in one shot. |
width | The width of the 2D original data |
height | The height of the 2D original data |
in | A buffer in row major order, with width*height*howmany positions. This buffer is passed to FFTW to perform its planning, and will be overwritten |
out | A buffer in row major order, width width*height*howmany positions. This buffer is passed to FFTW to perform its planning, and will be overwritten |
Definition at line 199 of file FFT.cpp.
References std::map< K, T >::emplace(), std::map< K, T >::end(), SourceXtractor::fftw_global_plan_mutex, std::map< K, T >::find(), std::make_tuple(), and pi.
Referenced by SourceXtractor::DFTConvolution< DetectionImage::PixelType, PaddedType >::prepare().
|
static |
Execute a forward Fourier Transform
plan | A plan as created by createForwardPlan |
in | A buffer in row major order with the input data. |
out | A buffer in row major order where the transform will be stored. |
Definition at line 244 of file FFT.cpp.
References std::vector< T >::data(), and std::shared_ptr::get().
Referenced by SourceXtractor::DFTConvolution< DetectionImage::PixelType, PaddedType >::convolve(), and SourceXtractor::DFTConvolution< DetectionImage::PixelType, PaddedType >::prepare().
|
static |
Execute an inverse Fourier Transform
plan | A plan as created by createInversePlan |
in | A buffer in row major order with the input data. |
out | A buffer in row major order where the transform will be stored. |
Definition at line 250 of file FFT.cpp.
References std::vector< T >::data(), and std::shared_ptr::get().
Referenced by SourceXtractor::DFTConvolution< DetectionImage::PixelType, PaddedType >::convolve().