LMMS
Loading...
Searching...
No Matches
pffft.c File Reference
#include "pffft.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <assert.h>

Classes

struct  PFFFT_Setup

Macros

#define _USE_MATH_DEFINES
#define PFFFT_SIMD_DISABLE
#define SIMD_SZ   1
#define VZERO()
#define VMUL(a, b)
#define VADD(a, b)
#define VMADD(a, b, c)
#define VSUB(a, b)
#define LD_PS1(p)
#define VALIGNED(ptr)
#define VCPLXMUL(ar, ai, br, bi)
#define VCPLXMULCONJ(ar, ai, br, bi)
#define SVMUL(f, v)
#define MALLOC_V4SF_ALIGNMENT   64
 PFFFT_SIMD_DISABLE.
#define cc_ref(a_1, a_2)
#define ch_ref(a_1, a_3)
#define cc_ref(a_1, a_2, a_3)
#define ch_ref(a_1, a_2, a_3)
#define cc_ref(a_1, a_2, a_3)
#define ch_ref(a_1, a_2, a_3)
#define pffft_zreorder_nosimd   pffft_zreorder
#define pffft_transform_internal_nosimd   pffft_transform_internal
#define pffft_zconvolve_accumulate_nosimd   pffft_zconvolve_accumulate

Typedefs

typedef float v4sf

Functions

void validate_pffft_simd ()
voidpffft_aligned_malloc (size_t nb_bytes)
void pffft_aligned_free (void *p)
int pffft_simd_size ()
static NEVER_INLINE (void)
static void radf3_ps (int ido, int l1, const v4sf *RESTRICT cc, v4sf *RESTRICT ch, const float *wa1, const float *wa2)
static void radb3_ps (int ido, int l1, const v4sf *RESTRICT cc, v4sf *RESTRICT ch, const float *wa1, const float *wa2)
static void radf5_ps (int ido, int l1, const v4sf *RESTRICT cc, v4sf *RESTRICT ch, const float *wa1, const float *wa2, const float *wa3, const float *wa4)
static void radb5_ps (int ido, int l1, const v4sf *RESTRICT cc, v4sf *RESTRICT ch, const float *wa1, const float *wa2, const float *wa3, const float *wa4)
static NEVER_INLINE (v4sf *)
static int decompose (int n, int *ifac, const int *ntryh)
static void rffti1_ps (int n, float *wa, int *ifac)
void cffti1_ps (int n, float *wa, int *ifac)
v4sfcfftf1_ps (int n, const v4sf *input_readonly, v4sf *work1, v4sf *work2, const float *wa, const int *ifac, int isign)
PFFFT_Setuppffft_new_setup (int N, pffft_transform_t transform)
void pffft_destroy_setup (PFFFT_Setup *s)
void pffft_zreorder_nosimd (PFFFT_Setup *setup, const float *in, float *out, pffft_direction_t direction)
void pffft_transform_internal_nosimd (PFFFT_Setup *setup, const float *input, float *output, float *scratch, pffft_direction_t direction, int ordered)
void pffft_zconvolve_accumulate_nosimd (PFFFT_Setup *s, const float *a, const float *b, float *ab, float scaling)
void pffft_transform (PFFFT_Setup *setup, const float *input, float *output, float *work, pffft_direction_t direction)
void pffft_transform_ordered (PFFFT_Setup *setup, const float *input, float *output, float *work, pffft_direction_t direction)

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

◆ cc_ref [1/3]

#define cc_ref ( a_1,
a_2 )
Value:
cc[(a_2-1)*ido + a_1 + 1]

◆ cc_ref [2/3]

#define cc_ref ( a_1,
a_2,
a_3 )
Value:
cc[((a_3)*5 + (a_2))*ido + a_1]

◆ cc_ref [3/3]

#define cc_ref ( a_1,
a_2,
a_3 )
Value:
cc[((a_3)*l1 + (a_2))*ido + a_1]

◆ ch_ref [1/3]

#define ch_ref ( a_1,
a_2,
a_3 )
Value:
ch[((a_3)*l1 + (a_2))*ido + a_1]

◆ ch_ref [2/3]

#define ch_ref ( a_1,
a_2,
a_3 )
Value:
ch[((a_3)*5 + (a_2))*ido + a_1]

◆ ch_ref [3/3]

#define ch_ref ( a_1,
a_3 )
Value:
ch[(a_3-1)*l1*ido + a_1 + 1]

◆ LD_PS1

#define LD_PS1 ( p)
Value:
(p)
uch * p
Definition crypt.c:594

◆ MALLOC_V4SF_ALIGNMENT

#define MALLOC_V4SF_ALIGNMENT   64

PFFFT_SIMD_DISABLE.

◆ PFFFT_SIMD_DISABLE

#define PFFFT_SIMD_DISABLE

◆ pffft_transform_internal_nosimd

#define pffft_transform_internal_nosimd   pffft_transform_internal

◆ pffft_zconvolve_accumulate_nosimd

#define pffft_zconvolve_accumulate_nosimd   pffft_zconvolve_accumulate

◆ pffft_zreorder_nosimd

#define pffft_zreorder_nosimd   pffft_zreorder

◆ SIMD_SZ

#define SIMD_SZ   1

◆ SVMUL

#define SVMUL ( f,
v )
Value:
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned f
Definition inflate.c:1572
#define VMUL(a, b)
Definition pffft.c:189
#define LD_PS1(p)
Definition pffft.c:193

◆ VADD

#define VADD ( a,
b )
Value:
((a)+(b))
uint8_t a
Definition Spc_Cpu.h:141
b
Definition crypt.c:628

◆ VALIGNED

#define VALIGNED ( ptr)
Value:
((((long long)(ptr)) & 0x3) == 0)

◆ VCPLXMUL

#define VCPLXMUL ( ar,
ai,
br,
bi )
Value:
{ v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VSUB(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VADD(ai,tmp); }
#define VADD(a, b)
Definition pffft.c:190
float v4sf
Definition pffft.c:186
#define VSUB(a, b)
Definition pffft.c:192

◆ VCPLXMULCONJ

#define VCPLXMULCONJ ( ar,
ai,
br,
bi )
Value:
{ v4sf tmp; tmp=VMUL(ar,bi); ar=VMUL(ar,br); ar=VADD(ar,VMUL(ai,bi)); ai=VMUL(ai,br); ai=VSUB(ai,tmp); }

◆ VMADD

#define VMADD ( a,
b,
c )
Value:
((a)*(b)+(c))
return c
Definition crypt.c:175

◆ VMUL

#define VMUL ( a,
b )
Value:
((a)*(b))

◆ VSUB

#define VSUB ( a,
b )
Value:
((a)-(b))

◆ VZERO

#define VZERO ( )
Value:
0.f

Typedef Documentation

◆ v4sf

typedef float v4sf

Function Documentation

◆ cfftf1_ps()

v4sf * cfftf1_ps ( int n,
const v4sf * input_readonly,
v4sf * work1,
v4sf * work2,
const float * wa,
const int * ifac,
int isign )

◆ cffti1_ps()

void cffti1_ps ( int n,
float * wa,
int * ifac )

◆ decompose()

int decompose ( int n,
int * ifac,
const int * ntryh )
static

◆ NEVER_INLINE() [1/2]

NEVER_INLINE ( v4sf * )
static

◆ NEVER_INLINE() [2/2]

NEVER_INLINE ( void )
static

◆ pffft_aligned_free()

void pffft_aligned_free ( void * p)

◆ pffft_aligned_malloc()

void * pffft_aligned_malloc ( size_t nb_bytes)

◆ pffft_destroy_setup()

void pffft_destroy_setup ( PFFFT_Setup * s)

◆ pffft_new_setup()

PFFFT_Setup * pffft_new_setup ( int N,
pffft_transform_t transform )

◆ pffft_simd_size()

int pffft_simd_size ( )

◆ pffft_transform()

void pffft_transform ( PFFFT_Setup * setup,
const float * input,
float * output,
float * work,
pffft_direction_t direction )

◆ pffft_transform_internal_nosimd()

void pffft_transform_internal_nosimd ( PFFFT_Setup * setup,
const float * input,
float * output,
float * scratch,
pffft_direction_t direction,
int ordered )

◆ pffft_transform_ordered()

void pffft_transform_ordered ( PFFFT_Setup * setup,
const float * input,
float * output,
float * work,
pffft_direction_t direction )

◆ pffft_zconvolve_accumulate_nosimd()

void pffft_zconvolve_accumulate_nosimd ( PFFFT_Setup * s,
const float * a,
const float * b,
float * ab,
float scaling )

◆ pffft_zreorder_nosimd()

void pffft_zreorder_nosimd ( PFFFT_Setup * setup,
const float * in,
float * out,
pffft_direction_t direction )

◆ radb3_ps()

void radb3_ps ( int ido,
int l1,
const v4sf *RESTRICT cc,
v4sf *RESTRICT ch,
const float * wa1,
const float * wa2 )
static

◆ radb5_ps()

void radb5_ps ( int ido,
int l1,
const v4sf *RESTRICT cc,
v4sf *RESTRICT ch,
const float * wa1,
const float * wa2,
const float * wa3,
const float * wa4 )
static

◆ radf3_ps()

void radf3_ps ( int ido,
int l1,
const v4sf *RESTRICT cc,
v4sf *RESTRICT ch,
const float * wa1,
const float * wa2 )
static

◆ radf5_ps()

void radf5_ps ( int ido,
int l1,
const v4sf *RESTRICT cc,
v4sf *RESTRICT ch,
const float * wa1,
const float * wa2,
const float * wa3,
const float * wa4 )
static

◆ rffti1_ps()

void rffti1_ps ( int n,
float * wa,
int * ifac )
static

◆ validate_pffft_simd()

void validate_pffft_simd ( )