Source: kpsk/modes/hansis_fft.h


Annotated List
Files
Globals
Hierarchy
Index
#ifndef __HANSIS_FFT_H
#define __HANSIS_FFT_H

#ifndef CMPLX_DEFINED
#define CMPLX_DEFINED
typedef struct {
        double x,y;
} cmplx;
#endif

class FFTer
{
public:
	FFTer( int l, int mod=0 );
	~FFTer();

#if 0
	Vector operator*( const Vector& fd );
	Vector operator*( const Vector& fd );
	Vector operator*( const Vector& fd );

	friend Vector operator*( const Vector& fd, 
					  const FFTer& fft );
	friend Vector operator*( const Vector& fd, 
					  const FFTer& fft );
	friend Vector operator*( const Vector& fd, 
					  const FFTer& fft );
	friend Vector operator/( const Vector& fd, 
					  const FFTer& fft );
#endif

protected:
	int len, M;
	int mode;
	double *real_a, *imag_a;


public:	
	// Dumm-DFT: Hilfsfunktionen und -tabellen
	cmplx *Dm;
#if 0
	Vector dft( const Vector, int invers ) const;
	Vector dft( const Vector, int invers ) const;
	Vector dft( const Vector, int invers ) const;
	void dft_init();
	void dft_remove();
#endif

	// Split-Radix FFT mit Hilfstabellen (Base 2) und -funktionen
	void fftsr_init();
	void fftsr_remove();
	void fftsr_bitrevers(double *x, double *y) const;
	double *CT1, *CT3, *ST1, *ST3;
	int *itab;

	// a) normale Transformation (komplex)
	cmplx* fftsr( const cmplx* ) const;
	void fftsr_helper( int, int, int, double *, double *, 
			   double *, double *, double *, double *, 
			   double *, double *) const;
	void fftsr_main( double *, double *) const;
	// b) inverse Split-Radix (auch komplex)
	cmplx* ifftsr( const cmplx* ) const;
	void ifftsr_main( double *, double *) const;
	void ifftsr_helper( int, int, double *, double *, 
			    double *, double *, double *, double *, 
			    double *, double *) const;
	// c) reele Transformation (Input=Vector)
	cmplx* rfftsr( const double* ) const;
	cmplx* rfftsr( const short* ) const;
	cmplx* rfftsr_wrapper( double *) const;
	void rfftsr_bitrevers(double *x) const;
	void rfftsr_main( double *) const;
	void rfftsr_helper( int, int, double *, double *, double *,
			    double *) const;
};

#endif

Generated by: ernie on homer on Sun Oct 6 11:23:16 2002, using kdoc 2.0a53.