Class dft_plan_real¶
class dft_plan_real<T> dft¶
template <typename T>
struct dft_plan_real : dft_plan<T> { … } Real-to-complex and complex-to-real 1D DFT plan.
| T | Floating-point type ( float or double ). |
variable size ¶
size_t size Number of real samples in the transform.
Fully qualified name: kfr::dft_plan_real<T>::size
Declared at dft/fft.hpp:564
variable fmt ¶
dft_pack_format fmt Packing format of the complex spectrum.
Fully qualified name: kfr::dft_plan_real<T>::fmt
Declared at dft/fft.hpp:565
constructor dft_plan_real<T>() ¶
dft_plan_real() Constructs an empty (uninitialized) real DFT plan.
Fully qualified name: kfr::dft_plan_real<T>::dft_plan_real<T>()
Declared at dft/fft.hpp:568
constructor dft_plan_real<T>(const dft_plan_real<T> &) ¶
dft_plan_real(const dft_plan_real&) = delete Fully qualified name: kfr::dft_plan_real<T>::dft_plan_real<T>(const dft_plan_real<T> &)
Declared at dft/fft.hpp:570
constructor dft_plan_real<T>(dft_plan_real<T> &&) ¶
dft_plan_real(dft_plan_real&&) = default Fully qualified name: kfr::dft_plan_real<T>::dft_plan_real<T>(dft_plan_real<T> &&)
Declared at dft/fft.hpp:571
function operator=(const dft_plan_real<T> &) ¶
dft_plan_real& operator=(const dft_plan_real&) = delete Fully qualified name: kfr::dft_plan_real<T>::operator=(const dft_plan_real<T> &)
Declared at dft/fft.hpp:572
function operator=(dft_plan_real<T> &&) ¶
dft_plan_real& operator=(dft_plan_real&&) = default Fully qualified name: kfr::dft_plan_real<T>::operator=(dft_plan_real<T> &&)
Declared at dft/fft.hpp:573
function is_initialized() ¶
bool is_initialized() const Checks whether the plan is non-empty.
Fully qualified name: kfr::dft_plan_real<T>::is_initialized()
Declared at dft/fft.hpp:576
function complex_size() ¶
size_t complex_size() const Returns the number of complex samples produced/consumed.
Fully qualified name: kfr::dft_plan_real<T>::complex_size()
Declared at dft/fft.hpp:579
function complex_size_for(size_t, dft_pack_format) ¶
constexpr static size_t complex_size_for(size_t size, dft_pack_format fmt) { … } Returns the number of complex samples for a given real size and format.
| size | Number of real samples. |
| fmt | Packing format. |
floor(size / 2) + 1 for CCs ; ceil(size / 2) (implemented as (size + 1) / 2 ) for Perm . |
Fully qualified name: kfr::dft_plan_real<T>::complex_size_for(size_t, dft_pack_format)
Declared at dft/fft.hpp:587
constructor dft_plan_real<T>(size_t, dft_pack_format, bool) ¶
explicit dft_plan_real(size_t size, dft_pack_format fmt = dft_pack_format::CCs,
bool progressive_optimized = false) Constructs a real DFT plan.
| size | Number of real samples. |
| fmt | Packing format of the complex spectrum. |
| progressive_optimized | If true, optimize the plan for progressive execution. |
Fully qualified name: kfr::dft_plan_real<T>::dft_plan_real<T>(size_t, dft_pack_format, bool)
Declared at dft/fft.hpp:598
function execute(complex<T> *, const complex<T> *, u8 *, bool) ¶
Fully qualified name: kfr::dft_plan_real<T>::execute(complex<T> *, const complex<T> *, u8 *, bool)
Declared at dft/fft.hpp:607
function execute(complex<T> *, const complex<T> *, u8 *, cbool_t<inverse>) ¶
Fully qualified name: kfr::dft_plan_real<T>::execute(complex<T> *, const complex<T> *, u8 *, cbool_t<inverse>)
Declared at dft/fft.hpp:610
function execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, bool) ¶
template <univector_tag Tag1, univector_tag Tag2, univector_tag Tag3>
void execute(univector<complex<T>, Tag1>&, const univector<complex<T>, Tag2>&, univector<u8, Tag3>&,
bool = false) const Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, bool)
Declared at dft/fft.hpp:613
function execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, cbool_t<inverse>) ¶
template <bool inverse, univector_tag Tag1, univector_tag Tag2, univector_tag Tag3>
void execute(univector<complex<T>, Tag1>&, const univector<complex<T>, Tag2>&, univector<u8, Tag3>&,
cbool_t<inverse>) const Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, cbool_t<inverse>)
Declared at dft/fft.hpp:617
function execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, bool) ¶
template <univector_tag Tag1, univector_tag Tag2>
void execute(univector<complex<T>, Tag1>& out, const univector<complex<T>, Tag2>& in, u8* temp,
bool inverse = false) const Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, bool)
Declared at dft/fft.hpp:621
function execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, cbool_t<inverse>) ¶
template <bool inverse, univector_tag Tag1, univector_tag Tag2>
void execute(univector<complex<T>, Tag1>& out, const univector<complex<T>, Tag2>& in, u8* temp,
cbool_t<inverse> inv) const Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, cbool_t<inverse>)
Declared at dft/fft.hpp:625
function execute(complex<T> *, const T *, u8 *, cdirect_t) ¶
Executes the forward real-to-complex DFT.
| out | Output complex buffer of complex_size() elements. |
| in | Input real buffer of size elements. |
| temp | Scratch buffer of at least temp_size bytes (may be nullptr ). |
Fully qualified name: kfr::dft_plan_real<T>::execute(complex<T> *, const T *, u8 *, cdirect_t)
Declared at dft/fft.hpp:634
function execute(T *, const complex<T> *, u8 *, cinvert_t) ¶
Executes the inverse complex-to-real DFT.
| out | Output real buffer of size elements. |
| in | Input complex buffer of complex_size() elements. |
| temp | Scratch buffer of at least temp_size bytes (may be nullptr ). |
Fully qualified name: kfr::dft_plan_real<T>::execute(T *, const complex<T> *, u8 *, cinvert_t)
Declared at dft/fft.hpp:663
function execute(univector<complex<T>, Tag1> &, const univector<T, Tag2> &, univector<u8, Tag3> &, cdirect_t) ¶
template <univector_tag Tag1, univector_tag Tag2, univector_tag Tag3>
KFR_MEM_INTRINSIC void execute(univector<complex<T>, Tag1>& out, const univector<T, Tag2>& in,
univector<u8, Tag3>& temp, cdirect_t = { … } Forward real-to-complex DFT using univector buffers with a scratch univector.
| out | Output complex univector of complex_size() elements. |
| in | Input real univector of size elements. |
| temp | Scratch buffer univector of at least temp_size bytes. |
Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<T, Tag2> &, univector<u8, Tag3> &, cdirect_t)
Declared at dft/fft.hpp:694
function execute(univector<T, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, cinvert_t) ¶
template <univector_tag Tag1, univector_tag Tag2, univector_tag Tag3>
KFR_MEM_INTRINSIC void execute(univector<T, Tag1>& out, const univector<complex<T>, Tag2>& in,
univector<u8, Tag3>& temp, cinvert_t = { … } Inverse complex-to-real DFT using univector buffers with a scratch univector.
| out | Output real univector of size elements. |
| in | Input complex univector of complex_size() elements. |
| temp | Scratch buffer univector of at least temp_size bytes. |
Fully qualified name: kfr::dft_plan_real<T>::execute(univector<T, Tag1> &, const univector<complex<T>, Tag2> &, univector<u8, Tag3> &, cinvert_t)
Declared at dft/fft.hpp:706
function execute(univector<complex<T>, Tag1> &, const univector<T, Tag2> &, u8 *, cdirect_t) ¶
template <univector_tag Tag1, univector_tag Tag2>
KFR_MEM_INTRINSIC void execute(univector<complex<T>, Tag1>& out, const univector<T, Tag2>& in, u8* temp,
cdirect_t = { … } Forward real-to-complex DFT using univector buffers with a raw scratch pointer.
| out | Output complex univector of complex_size() elements. |
| in | Input real univector of size elements. |
| temp | Scratch buffer of at least temp_size bytes (may be nullptr ). |
Fully qualified name: kfr::dft_plan_real<T>::execute(univector<complex<T>, Tag1> &, const univector<T, Tag2> &, u8 *, cdirect_t)
Declared at dft/fft.hpp:719
function execute(univector<T, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, cinvert_t) ¶
template <univector_tag Tag1, univector_tag Tag2>
KFR_MEM_INTRINSIC void execute(univector<T, Tag1>& out, const univector<complex<T>, Tag2>& in, u8* temp,
cinvert_t = { … } Inverse complex-to-real DFT using univector buffers with a raw scratch pointer.
| out | Output real univector of size elements. |
| in | Input complex univector of complex_size() elements. |
| temp | Scratch buffer of at least temp_size bytes (may be nullptr ). |
Fully qualified name: kfr::dft_plan_real<T>::execute(univector<T, Tag1> &, const univector<complex<T>, Tag2> &, u8 *, cinvert_t)
Declared at dft/fft.hpp:731
Fully qualified name: kfr::dft_plan_real<T>
Declared at dft/fft.hpp:562