Skip to content

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.

Template parameters
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

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.

Parameters
size Number of real samples.
fmt Packing format.
Returns
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.

Parameters
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)

void execute(complex<T>*, const complex<T>*, u8*, bool = false) const = delete

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>)

template <bool inverse>
void execute(complex<T>*, const complex<T>*, u8*, cbool_t<inverse>) const

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.

Parameters
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.

Parameters
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.

Parameters
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.

Parameters
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.

Parameters
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.

Parameters
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

This file was generated by cxxdox, a C++ documentation generator based on MkDocs Material and libclang.