23#define spFFTPrecision spPrecision  
   24#define spFFTSpeed spComputeSpeed  
   26#define SP_FFT_HIGHEST_PRECISION SP_HIGHEST_PRECISION  
   27#define SP_FFT_HIGH_DOUBLE_PRECISION SP_HIGH_DOUBLE_PRECISION  
   28#define SP_FFT_DOUBLE_PRECISION SP_DOUBLE_PRECISION  
   29#define SP_FFT_LOW_DOUBLE_PRECISION SP_LOW_DOUBLE_PRECISION  
   30#define SP_FFT_HIGH_FLOAT_PRECISION SP_HIGH_FLOAT_PRECISION  
   31#define SP_FFT_FLOAT_PRECISION SP_FLOAT_PRECISION  
   32#define SP_FFT_LOW_FLOAT_PRECISION SP_LOW_FLOAT_PRECISION  
   33#define SP_FFT_32BIT_PRECISION SP_32BIT_PRECISION  
   34#define SP_FFT_24BIT_PRECISION SP_24BIT_PRECISION  
   35#define SP_FFT_16BIT_PRECISION SP_16BIT_PRECISION  
   36#define SP_FFT_IGNORE_PRECISION SP_IGNORE_PRECISION  
   37#define SP_FFT_UNKNOWN_PRECISION SP_UNKNOWN_PRECISION  
   38#define SP_FFT_DEFAULT_PRECISION SP_FFT_FLOAT_PRECISION  
   40#define SP_FFT_SPEED_EXTREMELY_FAST SP_COMPUTE_SPEED_EXTREMELY_FAST  
   41#define SP_FFT_SPEED_VERY_FAST SP_COMPUTE_SPEED_VERY_FAST  
   42#define SP_FFT_SPEED_FASTER SP_COMPUTE_SPEED_FASTER  
   43#define SP_FFT_SPEED_FAST SP_COMPUTE_SPEED_FAST  
   44#define SP_FFT_SPEED_NORMAL SP_COMPUTE_SPEED_NORMAL  
   45#define SP_FFT_SPEED_SLOW SP_COMPUTE_SPEED_SLOW  
   46#define SP_FFT_SPEED_SLOWER SP_COMPUTE_SPEED_SLOWER  
   47#define SP_FFT_SPEED_VERY_SLOW SP_COMPUTE_SPEED_VERY_SLOW  
   48#define SP_FFT_SPEED_EXTREMELY_SLOW SP_COMPUTE_SPEED_EXTREMELY_SLOW  
   49#define SP_FFT_SPEED_UNKNOWN SP_COMPUTE_SPEED_UNKNOWN  
   69extern int spfftf(
float *xRe, 
float *xIm, 
long fftl, 
int inv);
 
   76extern int spfft(
double *xRe, 
double *xIm, 
long fftl, 
int inv);
 
   79extern int sprfftf(
float *data, 
long fftl, 
int inv);
 
   87extern int sprfft(
double *data, 
long fftl, 
int inv);
 
   95extern void datashifts(
short *data, 
long length, 
long shift);
 
   97extern void datashiftl(
long *data, 
long length, 
long shift);
 
   99extern void datashiftf(
float *data, 
long length, 
long shift);
 
  104extern void datashift(
double *data, 
long length, 
long shift);
 
  106extern void ridatashifts(
short *real, 
short *imag, 
long length, 
long shift);
 
  108extern void ridatashiftl(
long *real, 
long *imag, 
long length, 
long shift);
 
  110extern void ridatashiftf(
float *real, 
float *imag, 
long length, 
long shift);
 
  116extern void ridatashift(
double *real, 
double *imag, 
long length, 
long shift);
 
  127extern void circshift(
double *data, 
long length, 
long shift);
 
  129extern void ricircshifts(
short *real, 
short *imag, 
long length, 
long shift);
 
  131extern void ricircshiftl(
long *real, 
long *imag, 
long length, 
long shift);
 
  133extern void ricircshiftf(
float *real, 
float *imag, 
long length, 
long shift);
 
  139extern void ricircshift(
double *real, 
double *imag, 
long length, 
long shift);
 
  142extern void fftturnf(
float *xRe, 
float *xIm, 
long fftl);
 
  147extern void fftturn(
double *xRe, 
double *xIm, 
long fftl);
 
  149extern void fftshiftf(
float *xRe, 
float *xIm, 
long fftl);
 
  154extern void fftshift(
double *xRe, 
double *xIm, 
long fftl);
 
  162extern void ffttorfftf(
float *real, 
float *imag, 
float *rspec, 
long fftl);
 
  163extern void ffttorfft(
double *real, 
double *imag, 
double *rspec, 
long fftl);
 
  164extern void ffttorfftipf(
float *real, 
float *imag, 
long fftl);
 
  165extern void ffttorfftip(
double *real, 
double *imag, 
long fftl);
 
  166extern void rffttofftf(
float *rspec, 
float *real, 
float *imag, 
long fftl);
 
  167extern void rffttofft(
double *rspec, 
double *real, 
double *imag, 
long fftl);
 
  168extern void rffttofftipf(
float *real, 
float *imag, 
long fftl);
 
  169extern void rffttofftip(
double *real, 
double *imag, 
long fftl);
 
  171extern void multrfftf(
float *rspec1, 
float *rspec2, 
long fftl);
 
  172extern void multrfft(
double *rspec1, 
double *rspec2, 
long fftl);
 
  173extern void rffttopowerf(
float *rspec, 
float exponent, 
long fftl); 
 
  174extern void rffttopower(
double *rspec, 
double exponent, 
long fftl); 
 
  175extern void powertorfftf(
float *powspec, 
float orig_exponent, 
long fftl); 
 
  176extern void powertorfft(
double *powspec, 
double orig_exponent, 
long fftl); 
 
  177extern void rffttohpowerf(
float *rspec, 
float *ohpowspec, 
float exponent, 
long fftl);
 
  178extern void rffttohpower(
double *rspec, 
double *ohpowspec, 
double exponent, 
long fftl);
 
  179extern void rffttoanglef(
float *rspec, 
long fftl);
 
  180extern void rffttoangle(
double *rspec, 
long fftl);
 
  181extern void rffttologf(
float *rspec, 
long fftl);
 
  182extern void rffttolog(
double *rspec, 
long fftl);
 
  183extern void rffttoexpf(
float *rspec, 
long fftl);
 
  184extern void rffttoexp(
double *rspec, 
long fftl);
 
  191extern int rfftcep(
double *x, 
double *pw, 
long fftl);
 
  192extern int spectocepip(
double *real, 
double *imag, 
long fftl);
 
  193extern int spectocep(
double *real, 
double *imag, 
double *cep, 
long fftl);
 
  194extern int ceptospecip(
double *real, 
double *imag, 
long fftl);
 
  195extern int ceptospec(
double *cep, 
double *real, 
double *imag, 
long fftl);
 
  196extern int ceptompc(
double *cep, 
long fftl);
 
  197extern int ceplif(
double *cep, 
long fftl, 
long lif);
 
  198extern int cepwlif(
double *cep, 
long fftl, 
long period, 
long width);
 
  328extern spBool spTurnFFTSpectrumF(
spFFTRec fftrec, 
float *real, 
float *imag);
 
  329extern spBool spTurnFFTSpectrum(
spFFTRec fftrec, 
double *real, 
double *imag);
 
  330extern spBool spExecFFTShiftF(
spFFTRec fftrec, 
float *real, 
float *imag);
 
  331extern spBool spExecFFTShift(
spFFTRec fftrec, 
double *real, 
double *imag);
 
  332extern spBool spExecDataShiftF(
spFFTRec fftrec, 
float *real, 
float *imag, 
long shift);
 
  333extern spBool spExecDataShift(
spFFTRec fftrec, 
double *real, 
double *imag, 
long shift);
 
  334extern spBool spExecCircShiftF(
spFFTRec fftrec, 
float *real, 
float *imag, 
long shift);
 
  335extern spBool spExecCircShift(
spFFTRec fftrec, 
double *real, 
double *imag, 
long shift);
 
  342extern spBool spGetSpectrumForRealFFTF(
spFFTRec fftrec, 
float *real, 
float *imag, 
float *rspec);
 
  343extern spBool spGetSpectrumForRealFFT(
spFFTRec fftrec, 
double *real, 
double *imag, 
double *rspec);
 
  344extern spBool spGetComplexFromRealFFTF(
spFFTRec fftrec, 
float *rspec, 
float *real, 
float *imag);
 
  345extern spBool spGetComplexFromRealFFT(
spFFTRec fftrec, 
double *rspec, 
double *real, 
double *imag);
 
  346extern spBool spMultiplySpectrumOfRealFFTF(
spFFTRec fftrec, 
float *rspec1, 
float *rspec2);
 
  347extern spBool spMultiplySpectrumOfRealFFT(
spFFTRec fftrec, 
double *rspec1, 
double *rspec2);
 
  354extern void fvfft(FVector x);
 
  355extern void dvfft(DVector x);
 
  356extern void fvifft(FVector x);
 
  357extern void dvifft(DVector x);
 
  358extern FVector xfvfft(FVector x, 
long length);
 
  359extern DVector xdvfft(DVector x, 
long length);
 
  360extern FVector xfvifft(FVector x, 
long length);
 
  361extern DVector xdvifft(DVector x, 
long length);
 
  368extern void svdatashift(SVector x, 
long shift);
 
  369extern void lvdatashift(LVector x, 
long shift);
 
  370extern void fvdatashift(FVector x, 
long shift);
 
  371extern void dvdatashift(DVector x, 
long shift);
 
  372extern void svcircshift(SVector x, 
long shift);
 
  373extern void lvcircshift(LVector x, 
long shift);
 
  374extern void fvcircshift(FVector x, 
long shift);
 
  375extern void dvcircshift(DVector x, 
long shift);
 
  376extern FVector xfvfftshift(FVector x, 
long length);
 
  377extern DVector xdvfftshift(DVector x, 
long length);
 
  378extern FVector xfvfftturn(FVector x, 
long length);
 
  379extern DVector xdvfftturn(DVector x, 
long length);
 
  380extern void fvfftshift(FVector x);
 
  381extern void dvfftshift(DVector x);
 
  382extern void fvfftturn(FVector x);
 
  383extern void dvfftturn(DVector x);
 
  390extern FVector xfvfftconv(FVector a, FVector b, 
long fftl);
 
  391extern DVector xdvfftconv(DVector a, DVector b, 
long fftl);
 
  393extern FVector xfvfftpower(FVector x, 
long fftl);
 
  394extern DVector xdvfftpower(DVector x, 
long fftl);
 
  395extern FVector xfvfftabs(FVector x, 
long fftl);
 
  396extern DVector xdvfftabs(DVector x, 
long fftl);
 
  398extern FVector xfvfftangle(FVector x, 
long fftl);
 
  399extern DVector xdvfftangle(DVector x, 
long fftl);
 
  400extern FVector xfvfftgrpdly(FVector x, 
long fftl);
 
  401extern DVector xdvfftgrpdly(DVector x, 
long fftl);
 
  402extern FVector xfvgdtophase(FVector gd, 
long fftl, 
int reverse);
 
  403extern DVector xdvgdtophase(DVector gd, 
long fftl, 
int reverse);
 
  404extern FVector xfvzerophase(FVector x, 
long fftl);
 
  405extern DVector xdvzerophase(DVector x, 
long fftl);
 
  406extern FVector xfvcspec(FVector mag, FVector phs);
 
  407extern DVector xdvcspec(DVector mag, DVector phs);
 
  414extern void dvspectocep(DVector x);
 
  415extern void dvceptospec(DVector x);
 
  416extern DVector xdvrcep(DVector x, 
long fftl);
 
  417extern void dvrcep(DVector x);
 
  418extern void dvceptompc(DVector cep);
 
  419extern DVector xdvmpcep(DVector x, 
long fftl);
 
  420extern void dvmpcep(DVector x);
 
  421extern void dvlif(DVector cep, 
long fftl, 
long lif);
 
  422extern DVector xdvmelwarp(DVector cep, 
long order, 
long mel_order, 
double alpha);
 
  429extern DVector xdvtsp(
double amp, 
long m, 
long n, 
int inverse);
 
  430extern DVector xdvftsp(
double amp, 
long m, 
long n, 
int inverse); 
 
  431extern DVector xdvrftsp(
double amp, 
long m, 
long n, 
int inverse); 
 
  435extern DVector xdvgtsp(
double amp, 
double alpha, 
long n, 
int inverse);
 
  436extern DVector xdvfgtsp(
double amp, 
double alpha, 
long n, 
int inverse); 
 
  437extern DVector xdvrfgtsp(
double amp, 
double alpha, 
long n, 
int inverse); 
 
  439extern void dvtspshift(DVector tsp, 
long m, 
int inverse);
 
  440extern void dvgtspshift(DVector gtsp, 
double alpha, 
int inverse);
 
  445extern spFFTRec dvinitfft(
long order, spFFTPrecision precision);
 
  448extern long dvgetfftorder(
spFFTRec fftrec);
 
  449extern long dvgetfftlength(
spFFTRec fftrec);
 
  450extern long dvgetfftbatch(
spFFTRec fftrec);
 
  452extern spBool dvexecfftf(
spFFTRec fftrec, 
float *real, 
float *imag, 
int inv);
 
  453extern spBool dvexecfft(
spFFTRec fftrec, 
double *real, 
double *imag, 
int inv);
 
  464extern DVector xdvfftex(
spFFTRec fftrec, DVector x);
 
  465extern DVector xdvifftex(
spFFTRec fftrec, DVector x);
 
  466extern DVector xdvrfftex(
spFFTRec fftrec, DVector x);
 
  467extern DVector xdvirfftex(
spFFTRec fftrec, DVector x);
 
  475extern DVector xdvfftturnex(
spFFTRec fftrec, DVector x);
 
  477extern DVector xdvfftshiftex(
spFFTRec fftrec, DVector x);
 
  485extern void dvrffttofftex(
spFFTRec fftrec, DVector x);
 
  486extern void dvffttorfftex(
spFFTRec fftrec, DVector x);
 
  487extern void dvrffttopowerex(
spFFTRec fftrec, DVector x, 
double exponent);
 
  488extern void dvpowertorfftex(
spFFTRec fftrec, DVector x, 
double orig_exponent);
 
  500extern DVector xdvfftgrpdlyex(
spFFTRec fftrec, DVector x);
 
  502extern DVector xdvfftconvex(
spFFTRec fftrec, DVector a, DVector b);
 
  515extern void dvceptompcex(
spFFTRec fftrec, DVector x);
 
  527#define fftf(xRe, xIm, fftl, inv) spfftf(xRe, xIm, fftl, inv); 
  528#define fft(xRe, xIm, fftl, inv) spfft(xRe, xIm, fftl, inv); 
  530#define xdvrceps(x, fftl) xdvrcep(x, fftl) 
  531#define dvrceps(x) dvrcep(x) 
  532#define xdvmpceps(x, fftl) xdvmpcep(x, fftl) 
  533#define dvmpceps(x) dvmpcep(x) 
  535#define spectocep_ow spectocepip 
  536#define ceptospec_ow ceptospecip 
  538#define fftpowtorfftf(powspec, orig_exponent, fftl) powertorfftf(powspec, orig_exponent, fftl) 
  539#define fftpowtorfft(powspec, orig_exponent, fftl) powertorfft(powspec, orig_exponent, fftl) 
  541#define DVFFTRec spFFTRec 
spBool spExecFFTPower(spFFTRec fftrec, double *data, double exponent)
spBool spResetFFTOrder(spFFTRec fftrec, long order)
void ricircshiftf(float *real, float *imag, long length, long shift)
void ridatashiftl(long *real, long *imag, long length, long shift)
int spfftf(float *xRe, float *xIm, long fftl, int inv)
void fftshiftf(float *xRe, float *xIm, long fftl)
int spfft(double *xRe, double *xIm, long fftl, int inv)
void datashift(double *data, long length, long shift)
long spGetFFTOrder(spFFTRec fftrec)
spBool spExecFFT(spFFTRec fftrec, double *real, double *imag, int inv)
spBool spExecRealFFT(spFFTRec fftrec, double *data, int inv)
spFFTSpeed spGetFFTSpeed(spFFTPrecision precision)
void circshifts(short *data, long length, long shift)
struct _spFFTRec * spFFTRec
Definition fft.h:59
spBool spExecFFTF(spFFTRec fftrec, float *real, float *imag, int inv)
void ridatashift(double *real, double *imag, long length, long shift)
long spGetFFTLength(spFFTRec fftrec)
spFFTRec spInitFFT(long order, spFFTPrecision precision)
void ricircshift(double *real, double *imag, long length, long shift)
void circshiftf(float *data, long length, long shift)
spFFTRec spInitFFTByPlugin(spPlugin *plugin, long order, spFFTPrecision precision)
void fftshift(double *xRe, double *xIm, long fftl)
spBool spFreeFFT(spFFTRec fftrec)
int sprfft(double *data, long fftl, int inv)
int sprfftf(float *data, long fftl, int inv)
spBool spExecFFTPowerF(spFFTRec fftrec, float *data, float exponent)
spPlugin * spLoadFFTPlugin(const char *name)
void fftturn(double *xRe, double *xIm, long fftl)
void ridatashifts(short *real, short *imag, long length, long shift)
void datashiftl(long *data, long length, long shift)
void datashiftf(float *data, long length, long shift)
spFFTRec spInitBatchedFFT(long order, long batch, spFFTPrecision precision)
spBool spExecRealFFTF(spFFTRec fftrec, float *data, int inv)
spFFTRec spInitBatchedFFTByPlugin(spPlugin *plugin, long order, long batch, spFFTPrecision precision)
void circshift(double *data, long length, long shift)
spBool spSetDefaultFFTPlugin(const char *name)
void ridatashiftf(float *real, float *imag, long length, long shift)
void fftturnf(float *xRe, float *xIm, long fftl)
spBool spFreeFFTPlugin(spPlugin *plugin)
void ricircshifts(short *real, short *imag, long length, long shift)
char * xspSearchFFTPluginFile(int *index)
spBool spIsFFTPlugin(spPlugin *plugin)
long spGetFFTBatch(spFFTRec fftrec)
void datashifts(short *data, long length, long shift)
void circshiftl(long *data, long length, long shift)
int spGetNumFFTPlugin(void)
void ricircshiftl(long *real, long *imag, long length, long shift)