AI Engine API User Guide (AIE-API) 2024.2
Loading...
Searching...
No Matches
fft.hpp File Reference
#include "concepts.hpp"

Namespaces

namespace  aie
 Base namespace for AIE operations and types.
 

Macros

#define __AIE_API_FFT__HPP__
 

Typedefs

template<unsigned Vectorization, unsigned Radix, typename Input , typename Output = Input, typename Twiddle = detail::default_twiddle_type_t<Input, Output>>
using aie::fft_dit = detail::fft_dit< Vectorization, detail::fft_get_stage< Input, Output, Twiddle >(Radix, Vectorization), Radix, Input, Output, Twiddle >
 Type that encapsulates the functionality for decimation-in-time FFTs.
 

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.
 

Macro Definition Documentation

◆ __AIE_API_FFT__HPP__

#define __AIE_API_FFT__HPP__