fft_1d.h File Reference
#include <spu_intrinsics.h>
Go to the source code of this file.
Defines |
#define | _FFT_1D_H_ 1 |
#define | BIT_SWAP(_i, _pat) spu_extract(spu_gather(spu_shuffle(spu_maskb(_i), _pat, _pat)), 0) |
#define | MAX_FFT_1D_SIZE 8192 |
#define | INV_SQRT_2 0.7071067811865 |
#define | FFT_1D_BUTTERFLY(_P_re, _P_im, _Q_re, _Q_im, _p_re, _p_im, _q_re, _q_im, _W_re, _W_im) |
#define | FFT_1D_BUTTERFLY_HI(_P_re, _P_im, _Q_re, _Q_im, _p_re, _p_im, _q_re, _q_im, _W_re, _W_im) |
Define Documentation
#define BIT_SWAP |
( |
_i, |
|
|
_pat |
|
) |
spu_extract(spu_gather(spu_shuffle(spu_maskb(_i), _pat, _pat)), 0) |
#define FFT_1D_BUTTERFLY |
( |
_P_re, |
|
|
_P_im, |
|
|
_Q_re, |
|
|
_Q_im, |
|
|
_p_re, |
|
|
_p_im, |
|
|
_q_re, |
|
|
_q_im, |
|
|
_W_re, |
|
|
_W_im |
|
) |
|
Value:{ \
vector float _qw_re, _qw_im; \
\
_qw_re = spu_msub(_q_re, _W_re, spu_mul(_q_im, _W_im)); \
_qw_im = spu_madd(_q_re, _W_im, spu_mul(_q_im, _W_re)); \
_P_re = spu_add(_p_re, _qw_re); \
_P_im = spu_add(_p_im, _qw_im); \
_Q_re = spu_sub(_p_re, _qw_re); \
_Q_im = spu_sub(_p_im, _qw_im); \
}
Referenced by _fft_1d_r2().
#define FFT_1D_BUTTERFLY_HI |
( |
_P_re, |
|
|
_P_im, |
|
|
_Q_re, |
|
|
_Q_im, |
|
|
_p_re, |
|
|
_p_im, |
|
|
_q_re, |
|
|
_q_im, |
|
|
_W_re, |
|
|
_W_im |
|
) |
|
Value:{ \
vector float _qw_re, _qw_im; \
\
_qw_re = spu_madd(_q_re, _W_im, spu_mul(_q_im, _W_re)); \
_qw_im = spu_msub(_q_im, _W_im, spu_mul(_q_re, _W_re)); \
_P_re = spu_add(_p_re, _qw_re); \
_P_im = spu_add(_p_im, _qw_im); \
_Q_re = spu_sub(_p_re, _qw_re); \
_Q_im = spu_sub(_p_im, _qw_im); \
}
Referenced by _fft_1d_r2().
#define INV_SQRT_2 0.7071067811865 |
#define MAX_FFT_1D_SIZE 8192 |