~ubuntu-branches/ubuntu/raring/mumble/raring

« back to all changes in this revision

Viewing changes to celt-0.7.0-src/libcelt/kiss_fft.h

  • Committer: Bazaar Package Importer
  • Author(s): Thorvald Natvig
  • Date: 2009-12-10 20:29:29 UTC
  • mfrom: (9.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091210202929-3096zttdt0ie9kw6
Tags: 1.2.0-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
# include <xmmintrin.h>
45
45
# define kiss_fft_scalar __m128
46
46
#define KISS_FFT_MALLOC(nbytes) memalign(16,nbytes)
47
 
#else   
 
47
#else
48
48
#define KISS_FFT_MALLOC celt_alloc
49
 
#endif  
 
49
#endif
50
50
 
51
51
 
52
52
#ifdef FIXED_POINT
53
 
#include "arch.h"       
 
53
#include "arch.h"
54
54
#ifdef DOUBLE_PRECISION
55
55
#  define kiss_fft_scalar celt_int32
56
56
#  define kiss_twiddle_scalar celt_int32
96
96
 
97
97
typedef struct kiss_fft_state* kiss_fft_cfg;
98
98
 
99
 
/** 
 
99
/**
100
100
 *  kiss_fft_alloc
101
 
 *  
 
101
 *
102
102
 *  Initialize a FFT (or IFFT) algorithm's cfg/state buffer.
103
103
 *
104
104
 *  typical usage:      kiss_fft_cfg mycfg=kiss_fft_alloc(1024,0,NULL,NULL);
108
108
 *
109
109
 *  If lenmem is NULL, then kiss_fft_alloc will allocate a cfg buffer using malloc.
110
110
 *  The returned value should be free()d when done to avoid memory leaks.
111
 
 *  
 
111
 *
112
112
 *  The state can be placed in a user supplied buffer 'mem':
113
113
 *  If lenmem is not NULL and mem is not NULL and *lenmem is large enough,
114
114
 *      then the function places the cfg in mem and the size used in *lenmem
115
115
 *      and returns mem.
116
 
 *  
 
116
 *
117
117
 *  If lenmem is not NULL and ( mem is NULL or *lenmem is not large enough),
118
 
 *      then the function returns NULL and places the minimum cfg 
 
118
 *      then the function returns NULL and places the minimum cfg
119
119
 *      buffer size in *lenmem.
120
120
 * */
121
121
 
122
 
kiss_fft_cfg kiss_fft_alloc(int nfft,void * mem,size_t * lenmem); 
 
122
kiss_fft_cfg kiss_fft_alloc(int nfft,void * mem,size_t * lenmem);
123
123
 
124
124
void kf_work(kiss_fft_cpx * Fout,const kiss_fft_cpx * f,const size_t fstride,
125
125
             int in_stride,int * factors,const kiss_fft_cfg st,int N,int s2,int m2);
147
147
void kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride);
148
148
void kiss_ifft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride);
149
149
 
150
 
/** If kiss_fft_alloc allocated a buffer, it is one contiguous 
 
150
/** If kiss_fft_alloc allocated a buffer, it is one contiguous
151
151
   buffer and can be simply free()d when no longer needed*/
152
152
#define kiss_fft_free celt_free
153
153
 
154
154
 
155
155
#ifdef __cplusplus
156
 
 
156
}
157
157
#endif
158
158
 
159
159
#endif