#include "dsputil.h"
#include "gcc_fixes.h"
#include "dsputil_ppc.h"
#include "util_altivec.h"
Go to the source code of this file.
Defines | |
#define | BF(pre, pim, qre, qim, pre1, pim1, qre1, qim1) |
#define | MUL16(a, b) ((a) * (b)) |
#define | CMUL(pre, pim, are, aim, bre, bim) |
Functions | |
void | ff_fft_calc_altivec (FFTContext *s, FFTComplex *z) |
Do a complex FFT with the parameters defined in ff_fft_init(). |
#define BF | ( | pre, | |||
pim, | |||||
qre, | |||||
qim, | |||||
pre1, | |||||
pim1, | |||||
qre1, | |||||
qim1 | ) |
Value:
{\ FFTSample ax, ay, bx, by;\ bx=pre1;\ by=pim1;\ ax=qre1;\ ay=qim1;\ pre = (bx + ax);\ pim = (by + ay);\ qre = (bx - ax);\ qim = (by - ay);\ }
Definition at line 34 of file fft_altivec.c.
#define CMUL | ( | pre, | |||
pim, | |||||
are, | |||||
aim, | |||||
bre, | |||||
bim | ) |
#define MUL16 | ( | a, | |||
b | ) | ((a) * (b)) |
Definition at line 46 of file fft_altivec.c.
void ff_fft_calc_altivec | ( | FFTContext * | s, | |
FFTComplex * | z | |||
) |
Do a complex FFT with the parameters defined in ff_fft_init().
The input data must be permuted before with s->revtab table. No 1.0/sqrt(n) normalization is done. AltiVec-enabled This code assumes that the 'z' pointer is 16 bytes-aligned It also assumes all FFTComplex are 8 bytes-aligned pair of float The code is exactly the same as the SSE version, except that successive MUL + ADD/SUB have been merged into fused multiply-add ('vec_madd' in altivec)
Definition at line 65 of file fft_altivec.c.
Referenced by ff_fft_init().