AI Engine API User Guide (AIE-API) 2025.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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) && 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) && 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::AIE, arch::AIE_ML))
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) && 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::AIE, arch::AIE_ML))
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__