推 LPH66:用置底空間貼整段上來看看... 03/30 05:32
#include <math.h>
#include <string.h>
#include "cfftn.h"#
include "rr.h"
/* the 3GPP instrumenting tool */
#define MAX_FACTORS 23
#define MAX_PERM 209
#define NFACTOR 11
#ifndef M_PI#define M_PI 3.14159265358979323846264338327950288
#endif
#define SIN60 0.86602540378443865
#define COS72 0.30901699437494742
#define SIN72 0.95105651629515357
int cfftn(float Re[],loat Im[], int nTotal,int nPass,int nSpan, int iSign){
int ii,mfactor, kspan, ispan, inc;
int j, jc, jf, jj, k, k1, k2, k3=0, k4, kk, kt, nn, ns, nt;
double radf; double c1, c2=0.0, c3=0.0, cd; double s1,
s2=0.0, s3=0.0, sd; float ak,bk,akp,bkp,ajp,bjp,ajm,
bjm,akm,bkm,aj,bj,aa,bb;
float Rtmp[MAX_FACTORS];
float Itmp[MAX_FACTORS];
double Cos[MAX_FACTORS];
double Sin[MAX_FACTORS];
int Perm[MAX_PERM];
int factor [NFACTOR];
double s60 = SIN60;
double c72 = COS72;
double s72 = SIN72;
double pi2 = M_PI;
COUNT_sub_start("cfftn");
PTR_INIT(6); /* pointer for Rtmp[], Itmp[], Cos[],
Sin[], Perm[],factor[] */
ADD(2);
Re--;
Im--;
ADD(1);
BRANCH(1);
if (nPass < 2) { COUNT_sub_end(); return 0; }
MOVE(1);
inc = iSign;
BRANCH(1);
if( iSign < 0 ) { MULT(4); s72 = -s72; s60 = -s60; pi2 = -pi2;
inc = -inc; }
.......................
..........................
...............................
類似像這樣的後面還有很多....不太懂他的意涵
※ 編輯: wowrz 來自: 114.37.17.164 (03/30 06:16)
→ alongalone:你可能誤會"置底空間"了 03/30 09:32
推 johnlinvc: 你可能誤會"置底空間"了XDDD 03/30 09:48
→ godman362:用cpp展開或許就知道他在做什麼了 03/30 12:35
→ godman362:這邊的cpp指的是gcc的preprocessor 03/30 12:35
→ tropical72:算 Complex FFT core for transforms 的,macro要再查。 03/30 13:10
推 ppc:沒接條件是就是沒作用 應該是以後可以直接放條件式 04/01 01:16
→ ppc:然後可以做其他用途 就不用還要去補程式碼吧 04/01 01:17
→ manoeuvre: 你可能誤會"置底空間"了XDDDDD 04/01 13:43