#include <newmatap.h>
Definition at line 106 of file newmatap.h.
◆ ar_1d_ft()
bool FFT_Controller::ar_1d_ft |
( |
int |
PTS, |
|
|
Real * |
X, |
|
|
Real * |
Y |
|
) |
| |
|
static |
Definition at line 146 of file newfft.cpp.
References REPORT, and square().
Referenced by FFT().
152 int F,J,N,NF,P,PMAX,P_SYM,P_TWO,Q,R,TWO_GRP;
156 const int NP = 16, NQ = 10;
166 if (PTS<=1)
return true;
167 N=PTS; P_SYM=1; F=2; P=0; Q=0;
186 for (J=F; J<=PMAX; J++)
187 if (N % J == 0) { fail =
false; F=J;
break; }
188 if (fail || P >= NP || Q >= NQ)
return false;
190 if (N % F != 0) QQ[Q++] = F;
191 else { N /= F; PP[P++] = F; P_SYM *= F; }
194 R = (Q == 0) ? 0 : 1;
202 { SYM[J]=FACTOR[J]=PP[P-1-J]; FACTOR[P+Q+J]=SYM[P+R+J]=PP[J]; }
207 for (J=0; J<Q; J++) FACTOR[P+J]=QQ[J];
213 for (J=0; J < NF; J++)
215 if (FACTOR[J]!=2)
continue;
216 P_TWO=P_TWO*2; FACTOR[J]=1;
217 if (P_TWO<TWO_GRP && FACTOR[J+1]==2)
continue;
218 FACTOR[J]=P_TWO; P_TWO=1;
225 GR_1D_FT(PTS,NF,FACTOR,X,Y);
226 GR_1D_FS(PTS,2*P+R,Q,SYM,P_SYM,QQ,X,Y);
◆ CanFactor()
bool FFT_Controller::CanFactor |
( |
int |
PTS | ) |
|
|
static |
Definition at line 988 of file newfft.cpp.
References REPORT.
Referenced by FFT().
991 const int NP = 16, NQ = 10, PMAX=19;
993 if (PTS<=1) {
REPORT return true; }
995 int N = PTS, F = 2, P = 0, Q = 0;
1000 for (
int J = F; J <= PMAX; J++)
1001 if (N % J == 0) { fail =
false; F=J;
break; }
1002 if (fail || P >= NP || Q >= NQ) {
REPORT return false; }
1004 if (N % F != 0) Q++;
else { N /= F; P++; }
◆ OnlyOldFFT
bool FFT_Controller::OnlyOldFFT |
|
static |
The documentation for this class was generated from the following files: