| AI Engine API User Guide (AIE-API) 2025.2

Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
fft.hpp File Reference
`#include "concepts.hpp"`

## Classes
struct | aie::fft_dit< Vectorization, Stage, Radix, Input, Output, Twiddle >

## Namespaces
namespace | aie
| Base namespace for AIE operations and types.

## Macros
#define | __AIE_API_FFT__HPP__

## Functions
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE, arch::AIE_ML, arch::AIE_MLv2) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r2_stage (const Input *__restrict x, const Twiddle *__restrict tw, unsigned n, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 2 FFT stage.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::Gen1, arch::Gen2))
void | aie::fft_dit_r2_stage (const Input *__restrict x, const Twiddle *__restrict tw, unsigned n, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 2 FFT stage.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r2_stage (const Input *__restrict x, const Twiddle *__restrict tw, unsigned n, unsigned vectorization, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 2 FFT stage with dynamic vectorization.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE))
void | aie::fft_dit_r2_stage (const Input *__restrict x, const Twiddle *__restrict tw, unsigned n, unsigned vectorization, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 2 FFT stage with dynamic vectorization.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE, arch::AIE_ML, arch::AIE_MLv2) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r3_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, unsigned n, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 3 FFT stage.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::Gen1, arch::Gen2))
void | aie::fft_dit_r3_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, unsigned n, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 3 FFT stage.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r3_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, unsigned n, unsigned vectorization, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 3 FFT stage with dynamic vectorization.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE))
void | aie::fft_dit_r3_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, unsigned n, unsigned vectorization, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 3 FFT stage with dynamic vectorization.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::Gen1, arch::Gen2))
void | aie::fft_dit_r4_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, unsigned n, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 4 FFT stage.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE))
void | aie::fft_dit_r4_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, unsigned n, unsigned vectorization, unsigned shift_tw, unsigned shift, bool inv, Output *__restrict out)
| A function to perform a single radix 4 FFT stage with dynamic vectorization.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE, arch::AIE_ML, arch::AIE_MLv2) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r5_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, const Twiddle *__restrict tw3, unsigned n, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 5 FFT stage.
template<unsigned Vectorization, typename Input, typename Output, typename Twiddle> requires (arch::is(arch::Gen1, arch::Gen2))
void | aie::fft_dit_r5_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, const Twiddle *__restrict tw3, unsigned n, unsigned shift_tw, unsigned shift, bool inv, Output *out)
| A function to perform a single radix 5 FFT stage.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE) && detail::is_floating_point_v<Input>)
void | aie::fft_dit_r5_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, const Twiddle *__restrict tw3, unsigned n, unsigned vectorization, bool inv, Output *__restrict out)
| A function to perform a single floating point radix 5 FFT stage with dynamic vectorization.
template<typename Input, typename Output, typename Twiddle> requires (arch::is(arch::AIE))
void | aie::fft_dit_r5_stage (const Input *__restrict x, const Twiddle *__restrict tw0, const Twiddle *__restrict tw1, const Twiddle *__restrict tw2, const Twiddle *__restrict tw3, unsigned n, unsigned vectorization, unsigned shift_tw, unsigned shift, bool inv, Output *out)
| A function to perform a single radix 5 FFT stage with dynamic vectorization.
template<typename Input, typename Output, typename Twiddle>
static constexpr unsigned | aie::fft_get_stage (unsigned Radix, unsigned Vectorization)

## Class Documentation

## ◆ aie::fft_dit

struct aie::fft_dit

template<unsigned Vectorization, unsigned Stage, unsigned Radix, typename Input, typename Output = Input, typename Twiddle = default_twiddle_type_t<Input, Output>>
struct aie::fft_dit< Vectorization, Stage, Radix, Input, Output, Twiddle >

## Macro Definition Documentation

## ◆ __AIE_API_FFT__HPP__

#define __AIE_API_FFT__HPP__