fft-test.c File Reference

FFT and MDCT tests. More...

#include "libavutil/cpu.h"
#include "libavutil/mathematics.h"
#include "libavutil/lfg.h"
#include "libavutil/log.h"
#include "libavutil/time.h"
#include "fft.h"
#include "dct.h"
#include "rdft.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "compat/getopt.c"
Include dependency graph for fft-test.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MUL16(a, b)   ((a) * (b))
 
#define CMAC(pre, pim, are, aim, bre, bim)
 
#define RANGE   1.0
 
#define REF_SCALE(x, bits)   (x)
 
#define FMT   "%10.6f"
 

Enumerations

enum  tf_transform { TRANSFORM_FFT, TRANSFORM_MDCT, TRANSFORM_RDFT, TRANSFORM_DCT }
 

Functions

static void fft_ref_init (int nbits, int inverse)
 
static void fft_ref (FFTComplex *tabr, FFTComplex *tab, int nbits)
 
static void imdct_ref (FFTSample *out, FFTSample *in, int nbits)
 
static void mdct_ref (FFTSample *output, FFTSample *input, int nbits)
 
static void idct_ref (FFTSample *output, FFTSample *input, int nbits)
 
static void dct_ref (FFTSample *output, FFTSample *input, int nbits)
 
static FFTSample frandom (AVLFG *prng)
 
static int check_diff (FFTSample *tab1, FFTSample *tab2, int n, double scale)
 
static void help (void)
 
int main (int argc, char **argv)
 

Variables

struct {
   float   re
 
   float   im
 
} * exptab
 

Detailed Description

FFT and MDCT tests.

Definition in file fft-test.c.

Macro Definition Documentation

#define CMAC (   pre,
  pim,
  are,
  aim,
  bre,
  bim 
)
Value:
{\
pre += (MUL16(are, bre) - MUL16(aim, bim));\
pim += (MUL16(are, bim) + MUL16(bre, aim));\
}
#define MUL16(a, b)
Definition: fft-test.c:45

Definition at line 47 of file fft-test.c.

Referenced by fft_ref().

#define FMT   "%10.6f"

Definition at line 56 of file fft-test.c.

Referenced by check_diff().

#define MUL16 (   a,
  b 
)    ((a) * (b))

Definition at line 45 of file fft-test.c.

#define RANGE   1.0

Definition at line 54 of file fft-test.c.

Referenced by check_diff(), and frandom().

#define REF_SCALE (   x,
  bits 
)    (x)

Definition at line 55 of file fft-test.c.

Referenced by fft_ref(), imdct_ref(), and mdct_ref().

Enumeration Type Documentation

Enumerator
TRANSFORM_FFT 
TRANSFORM_MDCT 
TRANSFORM_RDFT 
TRANSFORM_DCT 

Definition at line 227 of file fft-test.c.

Function Documentation

static int check_diff ( FFTSample tab1,
FFTSample tab2,
int  n,
double  scale 
)
static

Definition at line 191 of file fft-test.c.

Referenced by main().

static void dct_ref ( FFTSample output,
FFTSample input,
int  nbits 
)
static

Definition at line 167 of file fft-test.c.

Referenced by main().

static void fft_ref ( FFTComplex tabr,
FFTComplex tab,
int  nbits 
)
static

Definition at line 86 of file fft-test.c.

Referenced by main().

static void fft_ref_init ( int  nbits,
int  inverse 
)
static

Definition at line 67 of file fft-test.c.

Referenced by main().

static FFTSample frandom ( AVLFG prng)
static

Definition at line 186 of file fft-test.c.

Referenced by main().

static void help ( void  )
static

Definition at line 213 of file fft-test.c.

Referenced by main().

static void idct_ref ( FFTSample output,
FFTSample input,
int  nbits 
)
static

Definition at line 151 of file fft-test.c.

Referenced by main().

static void imdct_ref ( FFTSample out,
FFTSample in,
int  nbits 
)
static

Definition at line 115 of file fft-test.c.

Referenced by main().

int main ( int  argc,
char **  argv 
)

Definition at line 238 of file fft-test.c.

static void mdct_ref ( FFTSample output,
FFTSample input,
int  nbits 
)
static

Definition at line 133 of file fft-test.c.

Referenced by main().

Variable Documentation

struct { ... } * exptab

Referenced by fft_ref(), fft_ref_init(), and main().

float im

Definition at line 64 of file fft-test.c.

Referenced by ff_imdct_half_c(), ff_mdct_calc_c(), ff_mdct_calcw_c(), fft4(), fft8(), and imc_imdct256().