Skip to content

Class dft_plan_md_real

class dft_plan_md_real<T, Dims> dft

template <typename T, index_t Dims = dynamic_shape>
struct dft_plan_md_real { … }

Multidimensional real-to-complex / complex-to-real DFT plan.

Template parameters
T Floating-point type ( float or double ).
Dims Number of dimensions, or dynamic_shape for a runtime rank.

variable size

shape<Dims> size

Per-dimension sizes of the real transform.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::size

Declared at dft/fft.hpp:976

variable temp_size

size_t temp_size

Scratch buffer size in bytes required by

execute .

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::temp_size

Declared at dft/fft.hpp:977

variable real_out_is_enough

bool real_out_is_enough

If true, the inverse transform may write directly into the real output buffer without an extra complex working region.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::real_out_is_enough

Declared at dft/fft.hpp:980

constructor dft_plan_md_real<T, Dims>(const dft_plan_md_real<T, Dims> &)

dft_plan_md_real(const dft_plan_md_real&)            = delete

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::dft_plan_md_real<T, Dims>(const dft_plan_md_real<T, Dims> &)

Declared at dft/fft.hpp:982

constructor dft_plan_md_real<T, Dims>(dft_plan_md_real<T, Dims> &&)

dft_plan_md_real(dft_plan_md_real&&)                 = default

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::dft_plan_md_real<T, Dims>(dft_plan_md_real<T, Dims> &&)

Declared at dft/fft.hpp:983

function operator=(const dft_plan_md_real<T, Dims> &)

dft_plan_md_real& operator=(const dft_plan_md_real&) = delete

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::operator=(const dft_plan_md_real<T, Dims> &)

Declared at dft/fft.hpp:984

function operator=(dft_plan_md_real<T, Dims> &&)

dft_plan_md_real& operator=(dft_plan_md_real&&)      = default

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::operator=(dft_plan_md_real<T, Dims> &&)

Declared at dft/fft.hpp:985

function is_initialized()

bool is_initialized() const

Checks whether the plan is non-empty.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::is_initialized()

Declared at dft/fft.hpp:988

function dump()

void dump() const

Dumps details of the underlying per-axis plans to stdout.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::dump()

Declared at dft/fft.hpp:991

function complex_size()

shape<Dims> complex_size() const

Returns the shape of the complex (packed) spectrum.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::complex_size()

Declared at dft/fft.hpp:1001

function complex_size_for(shape<Dims>)

constexpr static shape<Dims> complex_size_for(shape<Dims> size) { … }

Returns the complex spectrum shape for a given real shape.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::complex_size_for(shape<Dims>)

Declared at dft/fft.hpp:1003

function real_out_size()

size_t real_out_size() const

Returns the number of real elements needed to hold the inverse output.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::real_out_size()

Declared at dft/fft.hpp:1011

function real_out_size_for(shape<Dims>)

constexpr static size_t real_out_size_for(shape<Dims> size) { … }

Returns the real output element count for a given real shape.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::real_out_size_for(shape<Dims>)

Declared at dft/fft.hpp:1013

constructor dft_plan_md_real<T, Dims>(shape<Dims>, bool)

explicit dft_plan_md_real(shape<Dims> size, bool real_out_is_enough = false)

Constructs a multidimensional real DFT plan.

Parameters
size Per-dimension sizes of the real transform.
real_out_is_enough If true, the inverse transform may write directly into the real output buffer without an extra complex working region.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::dft_plan_md_real<T, Dims>(shape<Dims>, bool)

Declared at dft/fft.hpp:1024

function execute(complex<T> *, const T *, u8 *, cdirect_t)

void execute(complex<T>* out, const T* in, u8* temp, cdirect_t = { … }

Forward transform: real input to packed complex output (raw pointers).

Parameters
out Output complex buffer of complex_size().product() elements.
in Input real buffer of size.product() elements.
temp Scratch buffer of at least temp_size bytes (may be nullptr ).

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(complex<T> *, const T *, u8 *, cdirect_t)

Declared at dft/fft.hpp:1054

function execute(T *, const complex<T> *, u8 *, cinvert_t)

void execute(T* out, const complex<T>* in, u8* temp, cinvert_t = { … }

Inverse transform: packed complex input to real output (raw pointers).

Parameters
out Output real buffer of size.product() elements.
in Input complex buffer of complex_size().product() elements.
temp Scratch buffer of at least temp_size bytes (may be nullptr ).

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(T *, const complex<T> *, u8 *, cinvert_t)

Declared at dft/fft.hpp:1064

function execute(const tensor<complex<T>, Dims> &, const tensor<T, Dims> &, u8 *, cdirect_t)

void execute(const tensor<complex<T>, Dims>& out, const tensor<T, Dims>& in, u8* temp,
             cdirect_t = { … }

Forward transform on tensors.

Parameters
out Output complex tensor with shape complex_size() .
in Input real tensor with shape size .
temp Scratch buffer of at least temp_size bytes (may be nullptr ).

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(const tensor<complex<T>, Dims> &, const tensor<T, Dims> &, u8 *, cdirect_t)

Declared at dft/fft.hpp:1074

function execute(const tensor<T, Dims> &, const tensor<complex<T>, Dims> &, u8 *, cinvert_t)

void execute(const tensor<T, Dims>& out, const tensor<complex<T>, Dims>& in, u8* temp,
             cinvert_t = { … }

Inverse transform on tensors.

Parameters
out Output real tensor with shape size .
in Input complex tensor with shape complex_size() .
temp Scratch buffer of at least temp_size bytes (may be nullptr ).

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(const tensor<T, Dims> &, const tensor<complex<T>, Dims> &, u8 *, cinvert_t)

Declared at dft/fft.hpp:1090

function execute(complex<T> *, const T *, u8 *, bool)

void execute(complex<T>* out, const T* in, u8* temp, bool inverse) const

Forward transform selected by a runtime flag (raw pointers).

Parameters
out Output complex buffer of complex_size().product() elements.
in Input real buffer of size.product() elements.
temp Scratch buffer of at least temp_size bytes (may be nullptr ).
inverse Must be false for the forward transform.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(complex<T> *, const T *, u8 *, bool)

Declared at dft/fft.hpp:1107

function execute(T *, const complex<T> *, u8 *, bool)

void execute(T* out, const complex<T>* in, u8* temp, bool inverse) const

Inverse transform selected by a runtime flag (raw pointers).

Parameters
out Output real buffer of size.product() elements.
in Input complex buffer of complex_size().product() elements.
temp Scratch buffer of at least temp_size bytes (may be nullptr ).
inverse Must be true for the inverse transform.

Fully qualified name: kfr::dft_plan_md_real<T, Dims>::execute(T *, const complex<T> *, u8 *, bool)

Declared at dft/fft.hpp:1119

Fully qualified name: kfr::dft_plan_md_real<T, Dims>

Declared at dft/fft.hpp:974

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