📄 cfft_simd.h
字号:
/*******************************************************************************
*
* Header File: cfft_simd.h
*
* Synopsis: #include "cfft_simd.h"
*
*
*
* Author: Darrel Judd
* Judd Labs, Inc.
* 801-756-2057
* drjudd@ieee.org
*
* Revisions:
* Created June, 2003 - Darrel Judd
************************************************************************************/
// C definitions
#include "ctypes.h"
// Storage object used by cfft_simd_init, cfft_simd_twiddle_calc, and cfft_simd
typedef struct {
float *real_input;
float *imag_input;
float *real_fft;
float *imag_fft;
float *real_fftp8;
float *imag_fftp8;
float *real_fftpN4;
float *imag_fftpN4;
float *real_inputpN2;
float *imag_inputpN2;
float *twid_real;
float *twid_imag;
U32 IREDM;
U32 BRMODIFY;
U32 IREPM;
U32 N;
U32 N2;
U32 N4;
S32 mN4;
U32 N8;
U32 N2p2;
S32 mN2;
U32 N4m1;
U32 STAGESm5;
}Tcfft_simd;
// allowed fft sizes for cfft_simd
typedef enum{
N64=64,
N128=128,
N256=256,
N512=512,
N1024=1024,
N2048=2048,
N4096=4096,
N8192=8192,
N16384=16384}Tcfft_simd_size;
// proto-types
void cfft_simd_init(Tcfft_simd pm *pfft, // pointer to fft object
Tcfft_simd_size N, // size of fft, must be a power of 2
float *reinput, // pointer to real input data of size N
float pm *imimput, // pointer to imag input data of size N
float *retwid, // pointer to real twiddle array of size N/2
float pm *imtwid, // pointer to imag twiddle array of size N/2
float *refft, // pointer to real temp array of size N
float pm *imfft); // pointer to imag temp array of size N
void cfft_simd_twiddle_calc(Tcfft_simd pm *pfft); // pointer to fft object
void cfft_simd(Tcfft_simd pm *pfft); // pointer to fft object
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -