Go to the documentation of this file.00001 #ifndef KISS_FFT_H
00002 #define KISS_FFT_H
00003
00004 #include <stdlib.h>
00005 #include <stdio.h>
00006 #include <math.h>
00007 #include <string.h>
00008
00009 #if !defined(__APPLE__)
00010 #include <malloc.h>
00011 #endif
00012
00013 #include <pcl/pcl_exports.h>
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifdef USE_SIMD
00033 # include <xmmintrin.h>
00034 # define kiss_fft_scalar __m128
00035 #define KISS_FFT_MALLOC(nbytes) _mm_malloc(nbytes,16)
00036 #define KISS_FFT_FREE _mm_free
00037 #else
00038 #define KISS_FFT_MALLOC malloc
00039 #define KISS_FFT_FREE free
00040 #endif
00041
00042
00043 #ifdef FIXED_POINT
00044 #include <sys/types.h>
00045 # if (FIXED_POINT == 32)
00046 # define kiss_fft_scalar int32_t
00047 # else
00048 # define kiss_fft_scalar int16_t
00049 # endif
00050 #else
00051 # ifndef kiss_fft_scalar
00052
00053 # define kiss_fft_scalar float
00054 # endif
00055 #endif
00056
00057 typedef struct {
00058 kiss_fft_scalar r;
00059 kiss_fft_scalar i;
00060 }kiss_fft_cpx;
00061
00062 typedef struct kiss_fft_state* kiss_fft_cfg;
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 kiss_fft_cfg PCL_EXPORTS
00088 kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem);
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100 void PCL_EXPORTS
00101 kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout);
00102
00103
00104
00105
00106 void PCL_EXPORTS
00107 kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride);
00108
00109
00110
00111 #define kiss_fft_free free
00112
00113
00114
00115
00116
00117 void PCL_EXPORTS
00118 kiss_fft_cleanup(void);
00119
00120
00121
00122
00123 int PCL_EXPORTS
00124 kiss_fft_next_fast_size(int n);
00125
00126
00127 #define kiss_fftr_next_fast_size_real(n) \
00128 (kiss_fft_next_fast_size( ((n)+1)>>1)<<1)
00129
00130 #ifdef __cplusplus
00131 }
00132 #endif
00133
00134 #endif