JayBeams
0.1
Another project to have fun coding.
|
Wrap the FFTW types and functions for single precision float point numbers. More...
#include <traits.hpp>
Public Types | |
type traits | |
typedef float | precision_type |
The type used to represent floating point numbers. More... | |
typedef std::complex< float > | std_complex_type |
The type used to represent complex numbers in the C++ standard library. More... | |
typedef ::fftwf_complex | fftw_complex_type |
The type used to represent complex numbers in FFTW. More... | |
typedef ::fftwf_plan | fftw_plan_type |
The type used to represent execution plans in FFTW. More... | |
Static Public Member Functions | |
static void * | allocate (std::size_t n) |
Allocate a properly aligned (for SIMD acceleration) block of memory. More... | |
static void | release (void *buffer) |
Release a block of memory allocated with allocate() More... | |
static void | execute_plan (fftw_plan_type const p, fftw_complex_type const *in, fftw_complex_type *out) |
Execute an existing plan for a given input and output. More... | |
static void | execute_plan (fftw_plan_type const p, precision_type const *in, fftw_complex_type *out) |
Execute an existing plan for a given input and output. More... | |
static void | execute_plan (fftw_plan_type const p, fftw_complex_type const *in, precision_type *out) |
Execute an existing plan for a given input and output. More... | |
static fftw_plan_type | create_forward_plan (std::size_t size, fftw_complex_type const *in, fftw_complex_type *out, int flags) |
Create an execution plan to compute the DFT based on the input and output exemplars. More... | |
static fftw_plan_type | create_backward_plan (std::size_t size, fftw_complex_type const *in, fftw_complex_type *out, int flags) |
Create an execution to compute the inverse DFT based on the input and output exemplars. More... | |
static fftw_plan_type | create_plan (std::size_t size, precision_type const *in, fftw_complex_type *out, int flags) |
Create an execution to compute the DFT based on the input and output exemplars. More... | |
static fftw_plan_type | create_plan (std::size_t size, fftw_complex_type const *in, precision_type *out, int flags) |
Create an execution to compute the inverse DFT based on the input and output exemplars. More... | |
static fftw_plan_type | create_forward_plan_many (int howmany, std::size_t size, fftw_complex_type const *in, fftw_complex_type *out, int flags) |
Create an execution to compute the DFT of many vectors based on the input and output exemplars. More... | |
static fftw_plan_type | create_backward_plan_many (int howmany, std::size_t size, fftw_complex_type const *in, fftw_complex_type *out, int flags) |
Create an execution to compute the inverse DFT of many vectors based on the input and output exemplars. More... | |
static fftw_plan_type | create_plan_many (int howmany, std::size_t size, precision_type const *in, fftw_complex_type *out, unsigned flags) |
Create an execution to compute the DFT of many vectors based on the input and output exemplars. More... | |
static fftw_plan_type | create_plan_many (int howmany, std::size_t size, fftw_complex_type const *in, precision_type *out, int flags) |
Create an execution to compute the inverse DFT of many vectors based on the input and output exemplars. More... | |
static void | destroy_plan (fftw_plan_type p) |
Destroy an execution plan. More... | |
Wrap the FFTW types and functions for single precision float point numbers.
Definition at line 300 of file traits.hpp.
typedef ::fftwf_complex jb::fftw::traits< float >::fftw_complex_type |
The type used to represent complex numbers in FFTW.
Definition at line 310 of file traits.hpp.
typedef ::fftwf_plan jb::fftw::traits< float >::fftw_plan_type |
The type used to represent execution plans in FFTW.
Definition at line 312 of file traits.hpp.
typedef float jb::fftw::traits< float >::precision_type |
The type used to represent floating point numbers.
Definition at line 306 of file traits.hpp.
typedef std::complex<float> jb::fftw::traits< float >::std_complex_type |
The type used to represent complex numbers in the C++ standard library.
Definition at line 308 of file traits.hpp.
|
inlinestatic |
Allocate a properly aligned (for SIMD acceleration) block of memory.
n | the number of bytes to allocate |
Definition at line 321 of file traits.hpp.
|
inlinestatic |
Create an execution to compute the inverse DFT based on the input and output exemplars.
size | the size of the input and output vectors |
in | the input vector |
out | the output vector |
flags | control the algorithm choices in FFTW |
Definition at line 409 of file traits.hpp.
|
inlinestatic |
Create an execution to compute the inverse DFT of many vectors based on the input and output exemplars.
howmany | how many timeseries in the arrays |
size | the size of the input and output vectors |
in | the input array must be of size howmany*size |
out | the output array must be of size howmany*size |
flags | control the algorithm choices in FFTW |
Definition at line 488 of file traits.hpp.
References jb::testing::defaults::size.
|
inlinestatic |
Create an execution plan to compute the DFT based on the input and output exemplars.
size | the size of the input and output vectors |
in | the input vector |
out | the output vector |
flags | control the algorithm choices in FFTW |
Definition at line 392 of file traits.hpp.
|
inlinestatic |
Create an execution to compute the DFT of many vectors based on the input and output exemplars.
howmany | how many timeseries in the arrays |
size | the size of the input and output vectors |
in | the input array must be of size howmany*size |
out | the output array must be of size howmany*size |
flags | control the algorithm choices in FFTW |
Definition at line 461 of file traits.hpp.
References jb::testing::defaults::size.
|
inlinestatic |
Create an execution to compute the DFT based on the input and output exemplars.
size | the size of the input and output vectors |
in | the input vector |
out | the output vector |
flags | control the algorithm choices in FFTW |
Definition at line 426 of file traits.hpp.
|
inlinestatic |
Create an execution to compute the inverse DFT based on the input and output exemplars.
size | the size of the input and output vectors |
in | the input vector |
out | the output vector |
flags | control the algorithm choices in FFTW |
Definition at line 443 of file traits.hpp.
|
inlinestatic |
Create an execution to compute the DFT of many vectors based on the input and output exemplars.
howmany | how many timeseries in the arrays |
size | the size of the input and output vectors |
in | the input array must be of size howmany*size |
out | the output array must be of size howmany*size |
flags | control the algorithm choices in FFTW |
Definition at line 515 of file traits.hpp.
References jb::testing::defaults::size.
|
inlinestatic |
Create an execution to compute the inverse DFT of many vectors based on the input and output exemplars.
howmany | how many timeseries in the arrays |
size | the size of the input and output vectors |
in | the input array must be of size howmany*size |
out | the output array must be of size howmany*size |
flags | control the algorithm choices in FFTW |
Definition at line 542 of file traits.hpp.
References jb::testing::defaults::size.
|
inlinestatic |
Destroy an execution plan.
p | the plan to destroy |
Definition at line 563 of file traits.hpp.
|
inlinestatic |
Execute an existing plan for a given input and output.
FFTW requires, but does not check that the input and output have the same alignment and sizes defined in the original plan.
p | the execution plan |
in | the input vector (or array) |
out | the output data (or array) |
Definition at line 344 of file traits.hpp.
|
inlinestatic |
Execute an existing plan for a given input and output.
FFTW requires, but does not check that the input and output have the same alignment and sizes defined in the original plan.
p | the execution plan |
in | the input vector (or array) |
out | the output vector (or array) |
Definition at line 360 of file traits.hpp.
|
inlinestatic |
Execute an existing plan for a given input and output.
FFTW requires, but does not check that the input and output have the same alignment and sizes defined in the original plan.
p | the execution plan |
in | the input vector (or array) |
out | the output vector (or array), can be the same as the input |
Definition at line 376 of file traits.hpp.
|
inlinestatic |
Release a block of memory allocated with allocate()
buffer | the block to release |
Definition at line 330 of file traits.hpp.