7.3.1. Data Structures - 5.2 English - 68552

AOCL API Guide (68552)

Document ID
68552
Release Date
2025-12-29
Version
5.2 English
group Data_Structures

Data structures and typedef definitions associated with APIs of AOCL-FFTZ library.

This section contains typedef definitions used by the AOCL-FFTZ library’s interface APIs.

Note

Different variants of data structures are available to support float and double precision types in LP64 and ILP64 data models.

Typedefs

typedef struct aoclfftz_flags aoclfftz_flags_t#

Configuration flags to control critical FFT execution parameters.

typedef struct aoclfftz_dim aoclfftz_dim_t#

Tensor dimension for LP64.

typedef struct aoclfftz_dim_64_ aoclfftz_dim_t_64_#

Tensor dimension for ILP64.

typedef struct aoclfftz_smp_pfft aoclfftz_smp_pfft_t#

Params for parallel SMP FFT computation.

typedef struct aoclfftz_cntrl_params aoclfftz_cntrl_params_t#

Control params for optimizations, logs and stats.

Enums

enum aoclfftz_error_type#

Error return codes of AOCL-FFTZ library.

Values:

enumerator AOCLFFTZ_TIME_OUT#

Operation took long time than expected

enumerator AOCLFFTZ_MEMORY_FAILURE#

Error related to Memory access or operation

enumerator AOCLFFTZ_INVALID_INPUT#

Invalid size, format, type or precision of input

enumerator AOCLFFTZ_SETUP_FAILURE#

Error in setup of the library

enumerator AOCLFFTZ_EXECUTION_FAILURE#

Error in execution of the library

enumerator AOCLFFTZ_SUCCESS#

Successful operation

enum aoclfftz_logger_mode#

Logging modes to control verbosity of AOCL-FFTZ library output.

Values:

enumerator AOCLFFTZ_LOG_NONE#

0 : Disable all logging

enumerator AOCLFFTZ_LOG_INFO#

1 : Detailed debugging logs

enumerator AOCLFFTZ_LOG_TRACE#

2 : Logging with complete execution trace

enumerator AOCLFFTZ_LOG_DEBUG#

3 : Most detailed logging, with debug logs

struct aoclfftz_flags#
#include <aoclfftz.h>

Configuration flags to control critical FFT execution parameters.

Public Members

UINT8 fft_type#

Complex(0) or Real(1) >

UINT8 fft_direction#

Forward(0) or Backward(1) >

UINT8 storage_order#

In-order(0) or Out-of-order(1)>

UINT8 fft_placement#

In-place(0) or Out-of-place(1)

UINT8 transpose_mode#

fft(0) or standalone transpose(1) (Not supported, must be default value 0)

UINT8 bit_reproducibility#

Disable(0) or Enable(1) the bit reproducibility mode

struct aoclfftz_dim#
#include <aoclfftz.h>

Tensor dimension for LP64.

Public Members

INT32 n#

Dimension length

INT32 in_stride#

Stride for input buffer

INT32 out_stride#

Stride for output buffer

struct aoclfftz_dim_64_#
#include <aoclfftz.h>

Tensor dimension for ILP64.

Public Members

INTP n#

Dimension length

INTP in_stride#

Stride for input buffer

INTP out_stride#

Stride for output buffer

struct aoclfftz_smp_pfft#
#include <aoclfftz.h>

Params for parallel SMP FFT computation.

Public Members

INT32 num_threads#

Number of max threads granted for use.num_threads must be greater than 0.

UINT32 dynamic_load_model#

Specifies the model for determining the number of threads.

  • 0: Use num_threads as the maximum number of threads.

  • 1: Dynamically determine the number of threads (currently configured to take upto the max system threads)

struct aoclfftz_cntrl_params#
#include <aoclfftz.h>

Control params for optimizations, logs and stats.

Public Members

INT32 opt_level#

Set Optimization level with following values

Levels:

  • 0 - non-SIMD algorithmic optimizations

  • 1 - AVX128 optimizations

  • 2 - AVX256 optimizations

  • 3 - AVX512 optimizations

INT32 opt_off#

Turn off all optimizations

aoclfftz_logger_mode logger_mode#

Set Logger mode with following values.

  • 0 - None,

  • 1 - Info,

  • 2 - Trace,

  • 3 - Debug

INT32 measure_stats#

Enable/Disable measure stats (Not supported, must be default value 0)

struct aoclfftz_prob_desc_f#
#include <aoclfftz.h>

Defines problem descriptor for float data on LP64 machines.

Public Members

FLOAT *in#

input buffer: Points to signal points for forward FFT and frequency points for backward FFT

FLOAT *out#

output buffer: Points frequency points for forward FFT and signal points for backward FFT

INT32 vec_rank#

vec_rank is the number of batch/vector dimensions. length of vecs array(must be >= 1).

INT32 dim_rank#

dim_rank is the number of signal/frequency dimensions. length of dims array(must be >= 1).

aoclfftz_dim_t *dims#

Multi-dimensional tensor dimensions for LP64

aoclfftz_dim_t *vecs#

Vector tensor dimensions for LP64

aoclfftz_flags_t flags#

Struct for configuration flags to control critical FFT execution parameters like -fft_type, fft_direction, storage_order, fft_placement, transpose_mode.

aoclfftz_smp_pfft_t pthr_fft#

Struct for parallel SMP FFT computation

aoclfftz_cntrl_params_t cntrl_params#

Struct for optimizations, logs, stat params

struct aoclfftz_prob_desc_d#
#include <aoclfftz.h>

Defines problem descriptor for double data on LP64 machines.

Public Members

DOUBLE *in#

input buffer: Points to signal points for forward FFT and frequency points for backward FFT

DOUBLE *out#

output buffer: Points frequency points for forward FFT and signal points for backward FFT

INT32 vec_rank#

vec_rank is the number of batch/vector dimensions. length of vecs array(must be >= 1).

INT32 dim_rank#

dim_rank is the number of signal/frequency dimensions. length of dims array(must be >= 1).

aoclfftz_dim_t *dims#

Multi-dimensional tensor dimensions for LP64

aoclfftz_dim_t *vecs#

Vector tensor dimensions for LP64

aoclfftz_flags_t flags#

Struct for configuration flags to control critical FFT execution parameters like -fft_type, fft_direction, storage_order, fft_placement, transpose_mode.

aoclfftz_smp_pfft_t pthr_fft#

Struct for parallel SMP FFT computation

aoclfftz_cntrl_params_t cntrl_params#

Struct for optimizations, logs, stat params

struct aoclfftz_prob_desc_f_64_#
#include <aoclfftz.h>

Defines problem descriptor for float data on ILP64 machines.

Public Members

FLOAT *in#

input buffer: Points to signal points for forward FFT and frequency points for backward FFT

FLOAT *out#

output buffer: Points to frequency points for forward FFT and signal points for backward FFT

INT32 vec_rank#

vec_rank is the number of batch/vector dimensions. length of vecs array(must be >= 1).

INT32 dim_rank#

dim_rank is the number of signal/frequency dimensions. length of dims array(must be >= 1).

aoclfftz_dim_t_64_ *dims#

Multi-dimensional tensor dimensions for ILP64

aoclfftz_dim_t_64_ *vecs#

Vector tensor dimensions for ILP64

aoclfftz_flags_t flags#

Struct for configuration flags to control critical FFT execution parameters like -fft_type, fft_direction, storage_order, fft_placement, transpose_mode.

aoclfftz_smp_pfft_t pthr_fft#

Struct for parallel SMP FFT computation

aoclfftz_cntrl_params_t cntrl_params#

Struct for optimizations, logs, stat params

struct aoclfftz_prob_desc_d_64_#
#include <aoclfftz.h>

Defines problem descriptor for double data on ILP64 machines.

Public Members

DOUBLE *in#

input buffer: Points to signal points for forward FFT and frequency points for backward FFT

DOUBLE *out#

output buffer: Points to frequency points for forward FFT and signal points for backward FFT

INT32 vec_rank#

vec_rank is the number of batch/vector dimensions. length of vecs array(must be >= 1).

INT32 dim_rank#

dim_rank is the number of signal/frequency dimensions. length of dims array(must be >= 1).

aoclfftz_dim_t_64_ *dims#

Multi-dimensional tensor dimensions for ILP64

aoclfftz_dim_t_64_ *vecs#

Vector tensor dimensions for ILP64

aoclfftz_flags_t flags#

Struct for configuration flags to control critical FFT execution parameters like - fft_type, fft_direction, storage_order, fft_placement, transpose_mode.

aoclfftz_smp_pfft_t pthr_fft#

Struct for parallel SMP FFT computation

aoclfftz_cntrl_params_t cntrl_params#

Struct for optimizations, logs, stat params