File indexing completed on 2025-02-21 10:03:47
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef __GSL_FFT_HALFCOMPLEX_H__
0021 #define __GSL_FFT_HALFCOMPLEX_H__
0022
0023 #include <stddef.h>
0024
0025 #include <gsl/gsl_math.h>
0026 #include <gsl/gsl_complex.h>
0027 #include <gsl/gsl_fft.h>
0028 #include <gsl/gsl_fft_real.h>
0029
0030 #undef __BEGIN_DECLS
0031 #undef __END_DECLS
0032 #ifdef __cplusplus
0033 # define __BEGIN_DECLS extern "C" {
0034 # define __END_DECLS }
0035 #else
0036 # define __BEGIN_DECLS
0037 # define __END_DECLS
0038 #endif
0039
0040 __BEGIN_DECLS
0041
0042 int gsl_fft_halfcomplex_radix2_backward (double data[], const size_t stride, const size_t n);
0043 int gsl_fft_halfcomplex_radix2_inverse (double data[], const size_t stride, const size_t n);
0044 int gsl_fft_halfcomplex_radix2_transform (double data[], const size_t stride, const size_t n);
0045
0046 typedef struct
0047 {
0048 size_t n;
0049 size_t nf;
0050 size_t factor[64];
0051 gsl_complex *twiddle[64];
0052 gsl_complex *trig;
0053 }
0054 gsl_fft_halfcomplex_wavetable;
0055
0056 gsl_fft_halfcomplex_wavetable * gsl_fft_halfcomplex_wavetable_alloc (size_t n);
0057
0058 void
0059 gsl_fft_halfcomplex_wavetable_free (gsl_fft_halfcomplex_wavetable * wavetable);
0060
0061
0062 int gsl_fft_halfcomplex_backward (double data[], const size_t stride, const size_t n,
0063 const gsl_fft_halfcomplex_wavetable * wavetable,
0064 gsl_fft_real_workspace * work);
0065
0066 int gsl_fft_halfcomplex_inverse (double data[], const size_t stride, const size_t n,
0067 const gsl_fft_halfcomplex_wavetable * wavetable,
0068 gsl_fft_real_workspace * work);
0069
0070 int gsl_fft_halfcomplex_transform (double data[], const size_t stride, const size_t n,
0071 const gsl_fft_halfcomplex_wavetable * wavetable,
0072 gsl_fft_real_workspace * work);
0073
0074 int
0075 gsl_fft_halfcomplex_unpack (const double halfcomplex_coefficient[],
0076 double complex_coefficient[],
0077 const size_t stride, const size_t n);
0078
0079 int
0080 gsl_fft_halfcomplex_radix2_unpack (const double halfcomplex_coefficient[],
0081 double complex_coefficient[],
0082 const size_t stride, const size_t n);
0083
0084 __END_DECLS
0085
0086 #endif