1 /* ----------------------------------------------------------------------
2  * Project:      CMSIS DSP Python Wrapper
3  * Title:        cmsismodule.h
4  * Description:  C code for the CMSIS-DSP Python wrapper
5  *
6  * $Date:        27 April 2021
7  * $Revision:    V1.0
8  *
9  * Target Processor: Cortex-M cores
10  * -------------------------------------------------------------------- */
11 /*
12  * Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
13  *
14  * SPDX-License-Identifier: Apache-2.0
15  *
16  * Licensed under the Apache License, Version 2.0 (the License); you may
17  * not use this file except in compliance with the License.
18  * You may obtain a copy of the License at
19  *
20  * www.apache.org/licenses/LICENSE-2.0
21  *
22  * Unless required by applicable law or agreed to in writing, software
23  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
24  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25  * See the License for the specific language governing permissions and
26  * limitations under the License.
27  */
28 
29 #define MODNAME "cmsisdsp_transform"
30 #define MODINITNAME cmsisdsp_transform
31 
32 #include "cmsisdsp_module.h"
33 
34 
35 
36 NUMPYVECTORFROMBUFFER(f32,float32_t,NPY_FLOAT);
37 
38 
39 
40 
41 typedef struct {
42     PyObject_HEAD
43     arm_cfft_radix2_instance_q15 *instance;
44 } dsp_arm_cfft_radix2_instance_q15Object;
45 
46 
47 static void
arm_cfft_radix2_instance_q15_dealloc(dsp_arm_cfft_radix2_instance_q15Object * self)48 arm_cfft_radix2_instance_q15_dealloc(dsp_arm_cfft_radix2_instance_q15Object* self)
49 {
50     //printf("Dealloc called\n");
51     if (self->instance)
52     {
53 
54 
55        PyMem_Free(self->instance);
56     }
57 
58     Py_TYPE(self)->tp_free((PyObject*)self);
59 }
60 
61 
62 static PyObject *
arm_cfft_radix2_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)63 arm_cfft_radix2_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
64 {
65     dsp_arm_cfft_radix2_instance_q15Object *self;
66     //printf("New called\n");
67 
68     self = (dsp_arm_cfft_radix2_instance_q15Object *)type->tp_alloc(type, 0);
69     //printf("alloc called\n");
70 
71     if (self != NULL) {
72 
73         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_q15));
74 
75         self->instance->pTwiddle = NULL;
76         self->instance->pBitRevTable = NULL;
77 
78     }
79 
80 
81     return (PyObject *)self;
82 }
83 
84 static int
arm_cfft_radix2_instance_q15_init(dsp_arm_cfft_radix2_instance_q15Object * self,PyObject * args,PyObject * kwds)85 arm_cfft_radix2_instance_q15_init(dsp_arm_cfft_radix2_instance_q15Object *self, PyObject *args, PyObject *kwds)
86 {
87 
88     PyObject *pTwiddle=NULL;
89     PyObject *pBitRevTable=NULL;
90 char *kwlist[] = {
91 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
92 };
93 
94 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
95 ,&self->instance->ifftFlag
96 ,&self->instance->bitReverseFlag
97 ,&self->instance->twidCoefModifier
98 ,&self->instance->bitRevFactor
99 ))
100     {
101 
102 
103     }
104     return 0;
105 }
106 
107 GETFIELD(arm_cfft_radix2_instance_q15,fftLen,"h");
108 GETFIELD(arm_cfft_radix2_instance_q15,ifftFlag,"i");
109 GETFIELD(arm_cfft_radix2_instance_q15,bitReverseFlag,"i");
110 GETFIELD(arm_cfft_radix2_instance_q15,twidCoefModifier,"h");
111 GETFIELD(arm_cfft_radix2_instance_q15,bitRevFactor,"h");
112 
113 
114 static PyMethodDef arm_cfft_radix2_instance_q15_methods[] = {
115 
116     {"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_q15_fftLen,METH_NOARGS,"fftLen"},
117     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q15_ifftFlag,METH_NOARGS,"ifftFlag"},
118     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q15_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
119     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_q15_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
120     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_q15_bitRevFactor,METH_NOARGS,"bitRevFactor"},
121 
122     {NULL}  /* Sentinel */
123 };
124 
125 
126 DSPType(arm_cfft_radix2_instance_q15,arm_cfft_radix2_instance_q15_new,arm_cfft_radix2_instance_q15_dealloc,arm_cfft_radix2_instance_q15_init,arm_cfft_radix2_instance_q15_methods);
127 
128 
129 typedef struct {
130     PyObject_HEAD
131     arm_cfft_radix4_instance_q15 *instance;
132 } dsp_arm_cfft_radix4_instance_q15Object;
133 
134 
135 static void
arm_cfft_radix4_instance_q15_dealloc(dsp_arm_cfft_radix4_instance_q15Object * self)136 arm_cfft_radix4_instance_q15_dealloc(dsp_arm_cfft_radix4_instance_q15Object* self)
137 {
138     //printf("Dealloc called\n");
139     if (self->instance)
140     {
141 
142 
143        PyMem_Free(self->instance);
144     }
145 
146     Py_TYPE(self)->tp_free((PyObject*)self);
147 }
148 
149 
150 static PyObject *
arm_cfft_radix4_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)151 arm_cfft_radix4_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
152 {
153     dsp_arm_cfft_radix4_instance_q15Object *self;
154     //printf("New called\n");
155 
156     self = (dsp_arm_cfft_radix4_instance_q15Object *)type->tp_alloc(type, 0);
157     //printf("alloc called\n");
158 
159     if (self != NULL) {
160 
161         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_q15));
162 
163         self->instance->pTwiddle = NULL;
164         self->instance->pBitRevTable = NULL;
165 
166     }
167 
168 
169     return (PyObject *)self;
170 }
171 
172 static int
arm_cfft_radix4_instance_q15_init(dsp_arm_cfft_radix4_instance_q15Object * self,PyObject * args,PyObject * kwds)173 arm_cfft_radix4_instance_q15_init(dsp_arm_cfft_radix4_instance_q15Object *self, PyObject *args, PyObject *kwds)
174 {
175 
176     PyObject *pTwiddle=NULL;
177     PyObject *pBitRevTable=NULL;
178 char *kwlist[] = {
179 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
180 };
181 
182 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
183 ,&self->instance->ifftFlag
184 ,&self->instance->bitReverseFlag
185 ,&self->instance->twidCoefModifier
186 ,&self->instance->bitRevFactor
187 ))
188     {
189 
190 
191     }
192     return 0;
193 }
194 
195 GETFIELD(arm_cfft_radix4_instance_q15,fftLen,"h");
196 GETFIELD(arm_cfft_radix4_instance_q15,ifftFlag,"i");
197 GETFIELD(arm_cfft_radix4_instance_q15,bitReverseFlag,"i");
198 GETFIELD(arm_cfft_radix4_instance_q15,twidCoefModifier,"h");
199 GETFIELD(arm_cfft_radix4_instance_q15,bitRevFactor,"h");
200 
201 
202 static PyMethodDef arm_cfft_radix4_instance_q15_methods[] = {
203 
204     {"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_q15_fftLen,METH_NOARGS,"fftLen"},
205     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q15_ifftFlag,METH_NOARGS,"ifftFlag"},
206     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q15_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
207     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_q15_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
208     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_q15_bitRevFactor,METH_NOARGS,"bitRevFactor"},
209 
210     {NULL}  /* Sentinel */
211 };
212 
213 
214 DSPType(arm_cfft_radix4_instance_q15,arm_cfft_radix4_instance_q15_new,arm_cfft_radix4_instance_q15_dealloc,arm_cfft_radix4_instance_q15_init,arm_cfft_radix4_instance_q15_methods);
215 
216 
217 typedef struct {
218     PyObject_HEAD
219     arm_cfft_radix2_instance_q31 *instance;
220 } dsp_arm_cfft_radix2_instance_q31Object;
221 
222 
223 static void
arm_cfft_radix2_instance_q31_dealloc(dsp_arm_cfft_radix2_instance_q31Object * self)224 arm_cfft_radix2_instance_q31_dealloc(dsp_arm_cfft_radix2_instance_q31Object* self)
225 {
226     //printf("Dealloc called\n");
227     if (self->instance)
228     {
229 
230 
231        PyMem_Free(self->instance);
232     }
233 
234     Py_TYPE(self)->tp_free((PyObject*)self);
235 }
236 
237 
238 static PyObject *
arm_cfft_radix2_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)239 arm_cfft_radix2_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
240 {
241     dsp_arm_cfft_radix2_instance_q31Object *self;
242     //printf("New called\n");
243 
244     self = (dsp_arm_cfft_radix2_instance_q31Object *)type->tp_alloc(type, 0);
245     //printf("alloc called\n");
246 
247     if (self != NULL) {
248 
249         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_q31));
250 
251         self->instance->pTwiddle = NULL;
252         self->instance->pBitRevTable = NULL;
253 
254     }
255 
256 
257     return (PyObject *)self;
258 }
259 
260 static int
arm_cfft_radix2_instance_q31_init(dsp_arm_cfft_radix2_instance_q31Object * self,PyObject * args,PyObject * kwds)261 arm_cfft_radix2_instance_q31_init(dsp_arm_cfft_radix2_instance_q31Object *self, PyObject *args, PyObject *kwds)
262 {
263 
264     PyObject *pTwiddle=NULL;
265     PyObject *pBitRevTable=NULL;
266 char *kwlist[] = {
267 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
268 };
269 
270 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
271 ,&self->instance->ifftFlag
272 ,&self->instance->bitReverseFlag
273 ,&self->instance->twidCoefModifier
274 ,&self->instance->bitRevFactor
275 ))
276     {
277 
278 
279     }
280     return 0;
281 }
282 
283 GETFIELD(arm_cfft_radix2_instance_q31,fftLen,"h");
284 GETFIELD(arm_cfft_radix2_instance_q31,ifftFlag,"i");
285 GETFIELD(arm_cfft_radix2_instance_q31,bitReverseFlag,"i");
286 GETFIELD(arm_cfft_radix2_instance_q31,twidCoefModifier,"h");
287 GETFIELD(arm_cfft_radix2_instance_q31,bitRevFactor,"h");
288 
289 
290 static PyMethodDef arm_cfft_radix2_instance_q31_methods[] = {
291 
292     {"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_q31_fftLen,METH_NOARGS,"fftLen"},
293     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q31_ifftFlag,METH_NOARGS,"ifftFlag"},
294     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q31_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
295     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_q31_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
296     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_q31_bitRevFactor,METH_NOARGS,"bitRevFactor"},
297 
298     {NULL}  /* Sentinel */
299 };
300 
301 
302 DSPType(arm_cfft_radix2_instance_q31,arm_cfft_radix2_instance_q31_new,arm_cfft_radix2_instance_q31_dealloc,arm_cfft_radix2_instance_q31_init,arm_cfft_radix2_instance_q31_methods);
303 
304 
305 typedef struct {
306     PyObject_HEAD
307     arm_cfft_radix4_instance_q31 *instance;
308 } dsp_arm_cfft_radix4_instance_q31Object;
309 
310 
311 static void
arm_cfft_radix4_instance_q31_dealloc(dsp_arm_cfft_radix4_instance_q31Object * self)312 arm_cfft_radix4_instance_q31_dealloc(dsp_arm_cfft_radix4_instance_q31Object* self)
313 {
314     //printf("Dealloc called\n");
315     if (self->instance)
316     {
317 
318 
319        PyMem_Free(self->instance);
320     }
321 
322     Py_TYPE(self)->tp_free((PyObject*)self);
323 }
324 
325 
326 static PyObject *
arm_cfft_radix4_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)327 arm_cfft_radix4_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
328 {
329     dsp_arm_cfft_radix4_instance_q31Object *self;
330     //printf("New called\n");
331 
332     self = (dsp_arm_cfft_radix4_instance_q31Object *)type->tp_alloc(type, 0);
333     //printf("alloc called\n");
334 
335     if (self != NULL) {
336 
337         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_q31));
338 
339         self->instance->pTwiddle = NULL;
340         self->instance->pBitRevTable = NULL;
341 
342     }
343 
344 
345     return (PyObject *)self;
346 }
347 
348 static int
arm_cfft_radix4_instance_q31_init(dsp_arm_cfft_radix4_instance_q31Object * self,PyObject * args,PyObject * kwds)349 arm_cfft_radix4_instance_q31_init(dsp_arm_cfft_radix4_instance_q31Object *self, PyObject *args, PyObject *kwds)
350 {
351 
352     PyObject *pTwiddle=NULL;
353     PyObject *pBitRevTable=NULL;
354 char *kwlist[] = {
355 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
356 };
357 
358 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
359 ,&self->instance->ifftFlag
360 ,&self->instance->bitReverseFlag
361 ,&self->instance->twidCoefModifier
362 ,&self->instance->bitRevFactor
363 ))
364     {
365 
366 
367     }
368     return 0;
369 }
370 
371 GETFIELD(arm_cfft_radix4_instance_q31,fftLen,"h");
372 GETFIELD(arm_cfft_radix4_instance_q31,ifftFlag,"i");
373 GETFIELD(arm_cfft_radix4_instance_q31,bitReverseFlag,"i");
374 GETFIELD(arm_cfft_radix4_instance_q31,twidCoefModifier,"h");
375 GETFIELD(arm_cfft_radix4_instance_q31,bitRevFactor,"h");
376 
377 
378 static PyMethodDef arm_cfft_radix4_instance_q31_methods[] = {
379 
380     {"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_q31_fftLen,METH_NOARGS,"fftLen"},
381     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q31_ifftFlag,METH_NOARGS,"ifftFlag"},
382     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q31_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
383     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_q31_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
384     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_q31_bitRevFactor,METH_NOARGS,"bitRevFactor"},
385 
386     {NULL}  /* Sentinel */
387 };
388 
389 
390 DSPType(arm_cfft_radix4_instance_q31,arm_cfft_radix4_instance_q31_new,arm_cfft_radix4_instance_q31_dealloc,arm_cfft_radix4_instance_q31_init,arm_cfft_radix4_instance_q31_methods);
391 
392 
393 typedef struct {
394     PyObject_HEAD
395     arm_cfft_radix2_instance_f32 *instance;
396 } dsp_arm_cfft_radix2_instance_f32Object;
397 
398 
399 static void
arm_cfft_radix2_instance_f32_dealloc(dsp_arm_cfft_radix2_instance_f32Object * self)400 arm_cfft_radix2_instance_f32_dealloc(dsp_arm_cfft_radix2_instance_f32Object* self)
401 {
402     //printf("Dealloc called\n");
403     if (self->instance)
404     {
405 
406 
407        PyMem_Free(self->instance);
408     }
409 
410     Py_TYPE(self)->tp_free((PyObject*)self);
411 }
412 
413 
414 static PyObject *
arm_cfft_radix2_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)415 arm_cfft_radix2_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
416 {
417     dsp_arm_cfft_radix2_instance_f32Object *self;
418     //printf("New called\n");
419 
420     self = (dsp_arm_cfft_radix2_instance_f32Object *)type->tp_alloc(type, 0);
421     //printf("alloc called\n");
422 
423     if (self != NULL) {
424 
425         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_f32));
426 
427         self->instance->pTwiddle = NULL;
428         self->instance->pBitRevTable = NULL;
429 
430     }
431 
432 
433     return (PyObject *)self;
434 }
435 
436 static int
arm_cfft_radix2_instance_f32_init(dsp_arm_cfft_radix2_instance_f32Object * self,PyObject * args,PyObject * kwds)437 arm_cfft_radix2_instance_f32_init(dsp_arm_cfft_radix2_instance_f32Object *self, PyObject *args, PyObject *kwds)
438 {
439 
440     PyObject *pTwiddle=NULL;
441     PyObject *pBitRevTable=NULL;
442 char *kwlist[] = {
443 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor","onebyfftLen",NULL
444 };
445 
446 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihhf", kwlist,&self->instance->fftLen
447 ,&self->instance->ifftFlag
448 ,&self->instance->bitReverseFlag
449 ,&self->instance->twidCoefModifier
450 ,&self->instance->bitRevFactor
451 ,&self->instance->onebyfftLen
452 ))
453     {
454 
455 
456     }
457     return 0;
458 }
459 
460 GETFIELD(arm_cfft_radix2_instance_f32,fftLen,"h");
461 GETFIELD(arm_cfft_radix2_instance_f32,ifftFlag,"i");
462 GETFIELD(arm_cfft_radix2_instance_f32,bitReverseFlag,"i");
463 GETFIELD(arm_cfft_radix2_instance_f32,twidCoefModifier,"h");
464 GETFIELD(arm_cfft_radix2_instance_f32,bitRevFactor,"h");
465 GETFIELD(arm_cfft_radix2_instance_f32,onebyfftLen,"f");
466 
467 
468 static PyMethodDef arm_cfft_radix2_instance_f32_methods[] = {
469 
470     {"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_f32_fftLen,METH_NOARGS,"fftLen"},
471     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_f32_ifftFlag,METH_NOARGS,"ifftFlag"},
472     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_f32_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
473     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_f32_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
474     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_f32_bitRevFactor,METH_NOARGS,"bitRevFactor"},
475     {"onebyfftLen", (PyCFunction) Method_arm_cfft_radix2_instance_f32_onebyfftLen,METH_NOARGS,"onebyfftLen"},
476 
477     {NULL}  /* Sentinel */
478 };
479 
480 
481 DSPType(arm_cfft_radix2_instance_f32,arm_cfft_radix2_instance_f32_new,arm_cfft_radix2_instance_f32_dealloc,arm_cfft_radix2_instance_f32_init,arm_cfft_radix2_instance_f32_methods);
482 
483 
484 typedef struct {
485     PyObject_HEAD
486     arm_cfft_radix4_instance_f32 *instance;
487 } dsp_arm_cfft_radix4_instance_f32Object;
488 
489 
490 static void
arm_cfft_radix4_instance_f32_dealloc(dsp_arm_cfft_radix4_instance_f32Object * self)491 arm_cfft_radix4_instance_f32_dealloc(dsp_arm_cfft_radix4_instance_f32Object* self)
492 {
493     //printf("Dealloc called\n");
494     if (self->instance)
495     {
496 
497 
498        PyMem_Free(self->instance);
499     }
500 
501     Py_TYPE(self)->tp_free((PyObject*)self);
502 }
503 
504 
505 static PyObject *
arm_cfft_radix4_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)506 arm_cfft_radix4_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
507 {
508     dsp_arm_cfft_radix4_instance_f32Object *self;
509     //printf("New called\n");
510 
511     self = (dsp_arm_cfft_radix4_instance_f32Object *)type->tp_alloc(type, 0);
512     //printf("alloc called\n");
513 
514     if (self != NULL) {
515 
516         self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_f32));
517 
518         self->instance->pTwiddle = NULL;
519         self->instance->pBitRevTable = NULL;
520 
521     }
522 
523 
524     return (PyObject *)self;
525 }
526 
527 static int
arm_cfft_radix4_instance_f32_init(dsp_arm_cfft_radix4_instance_f32Object * self,PyObject * args,PyObject * kwds)528 arm_cfft_radix4_instance_f32_init(dsp_arm_cfft_radix4_instance_f32Object *self, PyObject *args, PyObject *kwds)
529 {
530 
531     PyObject *pTwiddle=NULL;
532     PyObject *pBitRevTable=NULL;
533 char *kwlist[] = {
534 "fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor","onebyfftLen",NULL
535 };
536 
537 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihhf", kwlist,&self->instance->fftLen
538 ,&self->instance->ifftFlag
539 ,&self->instance->bitReverseFlag
540 ,&self->instance->twidCoefModifier
541 ,&self->instance->bitRevFactor
542 ,&self->instance->onebyfftLen
543 ))
544     {
545 
546 
547     }
548     return 0;
549 }
550 
551 GETFIELD(arm_cfft_radix4_instance_f32,fftLen,"h");
552 GETFIELD(arm_cfft_radix4_instance_f32,ifftFlag,"i");
553 GETFIELD(arm_cfft_radix4_instance_f32,bitReverseFlag,"i");
554 GETFIELD(arm_cfft_radix4_instance_f32,twidCoefModifier,"h");
555 GETFIELD(arm_cfft_radix4_instance_f32,bitRevFactor,"h");
556 GETFIELD(arm_cfft_radix4_instance_f32,onebyfftLen,"f");
557 
558 
559 static PyMethodDef arm_cfft_radix4_instance_f32_methods[] = {
560 
561     {"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_f32_fftLen,METH_NOARGS,"fftLen"},
562     {"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_f32_ifftFlag,METH_NOARGS,"ifftFlag"},
563     {"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_f32_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
564     {"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_f32_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
565     {"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_f32_bitRevFactor,METH_NOARGS,"bitRevFactor"},
566     {"onebyfftLen", (PyCFunction) Method_arm_cfft_radix4_instance_f32_onebyfftLen,METH_NOARGS,"onebyfftLen"},
567 
568     {NULL}  /* Sentinel */
569 };
570 
571 
572 DSPType(arm_cfft_radix4_instance_f32,arm_cfft_radix4_instance_f32_new,arm_cfft_radix4_instance_f32_dealloc,arm_cfft_radix4_instance_f32_init,arm_cfft_radix4_instance_f32_methods);
573 
574 
575 typedef struct {
576     PyObject_HEAD
577     arm_cfft_instance_q15 *instance;
578 } dsp_arm_cfft_instance_q15Object;
579 
580 
581 static void
arm_cfft_instance_q15_dealloc(dsp_arm_cfft_instance_q15Object * self)582 arm_cfft_instance_q15_dealloc(dsp_arm_cfft_instance_q15Object* self)
583 {
584     //printf("Dealloc called\n");
585     if (self->instance)
586     {
587 
588 
589        PyMem_Free(self->instance);
590     }
591 
592     Py_TYPE(self)->tp_free((PyObject*)self);
593 }
594 
595 
596 static PyObject *
arm_cfft_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)597 arm_cfft_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
598 {
599     dsp_arm_cfft_instance_q15Object *self;
600     //printf("New called\n");
601 
602     self = (dsp_arm_cfft_instance_q15Object *)type->tp_alloc(type, 0);
603     //printf("alloc called\n");
604 
605     if (self != NULL) {
606 
607         self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_q15));
608 
609         self->instance->pTwiddle = NULL;
610         self->instance->pBitRevTable = NULL;
611 
612     }
613 
614 
615     return (PyObject *)self;
616 }
617 
618 static int
arm_cfft_instance_q15_init(dsp_arm_cfft_instance_q15Object * self,PyObject * args,PyObject * kwds)619 arm_cfft_instance_q15_init(dsp_arm_cfft_instance_q15Object *self, PyObject *args, PyObject *kwds)
620 {
621 
622     PyObject *pTwiddle=NULL;
623     PyObject *pBitRevTable=NULL;
624 char *kwlist[] = {
625 "fftLen","bitRevLength",NULL
626 };
627 
628 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
629 ,&self->instance->bitRevLength
630 ))
631     {
632 
633 
634     }
635     return 0;
636 }
637 
638 GETFIELD(arm_cfft_instance_q15,fftLen,"h");
639 GETFIELD(arm_cfft_instance_q15,bitRevLength,"h");
640 
641 
642 static PyMethodDef arm_cfft_instance_q15_methods[] = {
643 
644     {"fftLen", (PyCFunction) Method_arm_cfft_instance_q15_fftLen,METH_NOARGS,"fftLen"},
645     {"bitRevLength", (PyCFunction) Method_arm_cfft_instance_q15_bitRevLength,METH_NOARGS,"bitRevLength"},
646 
647     {NULL}  /* Sentinel */
648 };
649 
650 
651 DSPType(arm_cfft_instance_q15,arm_cfft_instance_q15_new,arm_cfft_instance_q15_dealloc,arm_cfft_instance_q15_init,arm_cfft_instance_q15_methods);
652 
653 
654 typedef struct {
655     PyObject_HEAD
656     arm_cfft_instance_q31 *instance;
657 } dsp_arm_cfft_instance_q31Object;
658 
659 
660 static void
arm_cfft_instance_q31_dealloc(dsp_arm_cfft_instance_q31Object * self)661 arm_cfft_instance_q31_dealloc(dsp_arm_cfft_instance_q31Object* self)
662 {
663     //printf("Dealloc called\n");
664     if (self->instance)
665     {
666 
667 
668        PyMem_Free(self->instance);
669     }
670 
671     Py_TYPE(self)->tp_free((PyObject*)self);
672 }
673 
674 
675 static PyObject *
arm_cfft_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)676 arm_cfft_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
677 {
678     dsp_arm_cfft_instance_q31Object *self;
679     //printf("New called\n");
680 
681     self = (dsp_arm_cfft_instance_q31Object *)type->tp_alloc(type, 0);
682     //printf("alloc called\n");
683 
684     if (self != NULL) {
685 
686         self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_q31));
687 
688         self->instance->pTwiddle = NULL;
689         self->instance->pBitRevTable = NULL;
690 
691     }
692 
693 
694     return (PyObject *)self;
695 }
696 
697 static int
arm_cfft_instance_q31_init(dsp_arm_cfft_instance_q31Object * self,PyObject * args,PyObject * kwds)698 arm_cfft_instance_q31_init(dsp_arm_cfft_instance_q31Object *self, PyObject *args, PyObject *kwds)
699 {
700 
701     PyObject *pTwiddle=NULL;
702     PyObject *pBitRevTable=NULL;
703 char *kwlist[] = {
704 "fftLen","bitRevLength",NULL
705 };
706 
707 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
708 ,&self->instance->bitRevLength
709 ))
710     {
711 
712 
713     }
714     return 0;
715 }
716 
717 GETFIELD(arm_cfft_instance_q31,fftLen,"h");
718 GETFIELD(arm_cfft_instance_q31,bitRevLength,"h");
719 
720 
721 static PyMethodDef arm_cfft_instance_q31_methods[] = {
722 
723     {"fftLen", (PyCFunction) Method_arm_cfft_instance_q31_fftLen,METH_NOARGS,"fftLen"},
724     {"bitRevLength", (PyCFunction) Method_arm_cfft_instance_q31_bitRevLength,METH_NOARGS,"bitRevLength"},
725 
726     {NULL}  /* Sentinel */
727 };
728 
729 
730 DSPType(arm_cfft_instance_q31,arm_cfft_instance_q31_new,arm_cfft_instance_q31_dealloc,arm_cfft_instance_q31_init,arm_cfft_instance_q31_methods);
731 
732 typedef struct {
733     PyObject_HEAD
734     arm_cfft_instance_f64 *instance;
735 } dsp_arm_cfft_instance_f64Object;
736 
737 
738 static void
arm_cfft_instance_f64_dealloc(dsp_arm_cfft_instance_f64Object * self)739 arm_cfft_instance_f64_dealloc(dsp_arm_cfft_instance_f64Object* self)
740 {
741     //printf("Dealloc called\n");
742     if (self->instance)
743     {
744 
745 
746        PyMem_Free(self->instance);
747     }
748 
749     Py_TYPE(self)->tp_free((PyObject*)self);
750 }
751 
752 
753 static PyObject *
arm_cfft_instance_f64_new(PyTypeObject * type,PyObject * args,PyObject * kwds)754 arm_cfft_instance_f64_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
755 {
756     dsp_arm_cfft_instance_f64Object *self;
757     //printf("New called\n");
758 
759     self = (dsp_arm_cfft_instance_f64Object *)type->tp_alloc(type, 0);
760     //printf("alloc called\n");
761 
762     if (self != NULL) {
763 
764         self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_f64));
765 
766         self->instance->pTwiddle = NULL;
767         self->instance->pBitRevTable = NULL;
768 
769     }
770 
771     return (PyObject *)self;
772 }
773 
774 static int
arm_cfft_instance_f64_init(dsp_arm_cfft_instance_f64Object * self,PyObject * args,PyObject * kwds)775 arm_cfft_instance_f64_init(dsp_arm_cfft_instance_f64Object *self, PyObject *args, PyObject *kwds)
776 {
777 
778     PyObject *pTwiddle=NULL;
779     PyObject *pBitRevTable=NULL;
780     char *kwlist[] = {
781         "fftLen","bitRevLength",NULL
782 };
783 
784 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
785 ,&self->instance->bitRevLength
786 ))
787     {
788 
789 
790     }
791     return 0;
792 }
793 
794 GETFIELD(arm_cfft_instance_f64,fftLen,"h");
795 GETFIELD(arm_cfft_instance_f64,bitRevLength,"h");
796 
797 
798 static PyMethodDef arm_cfft_instance_f64_methods[] = {
799 
800     {"fftLen", (PyCFunction) Method_arm_cfft_instance_f64_fftLen,METH_NOARGS,"fftLen"},
801     {"bitRevLength", (PyCFunction) Method_arm_cfft_instance_f64_bitRevLength,METH_NOARGS,"bitRevLength"},
802 
803     {NULL}  /* Sentinel */
804 };
805 
806 
807 DSPType(arm_cfft_instance_f64,arm_cfft_instance_f64_new,arm_cfft_instance_f64_dealloc,arm_cfft_instance_f64_init,arm_cfft_instance_f64_methods);
808 
809 
810 typedef struct {
811     PyObject_HEAD
812     arm_cfft_instance_f32 *instance;
813 } dsp_arm_cfft_instance_f32Object;
814 
815 
816 static void
arm_cfft_instance_f32_dealloc(dsp_arm_cfft_instance_f32Object * self)817 arm_cfft_instance_f32_dealloc(dsp_arm_cfft_instance_f32Object* self)
818 {
819     //printf("Dealloc called\n");
820     if (self->instance)
821     {
822 
823 
824        PyMem_Free(self->instance);
825     }
826 
827     Py_TYPE(self)->tp_free((PyObject*)self);
828 }
829 
830 
831 static PyObject *
arm_cfft_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)832 arm_cfft_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
833 {
834     dsp_arm_cfft_instance_f32Object *self;
835     //printf("New called\n");
836 
837     self = (dsp_arm_cfft_instance_f32Object *)type->tp_alloc(type, 0);
838     //printf("alloc called\n");
839 
840     if (self != NULL) {
841 
842         self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_f32));
843 
844         self->instance->pTwiddle = NULL;
845         self->instance->pBitRevTable = NULL;
846 
847     }
848 
849 
850     return (PyObject *)self;
851 }
852 
853 static int
arm_cfft_instance_f32_init(dsp_arm_cfft_instance_f32Object * self,PyObject * args,PyObject * kwds)854 arm_cfft_instance_f32_init(dsp_arm_cfft_instance_f32Object *self, PyObject *args, PyObject *kwds)
855 {
856 
857     PyObject *pTwiddle=NULL;
858     PyObject *pBitRevTable=NULL;
859 char *kwlist[] = {
860 "fftLen","bitRevLength",NULL
861 };
862 
863 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
864 ,&self->instance->bitRevLength
865 ))
866     {
867 
868 
869     }
870     return 0;
871 }
872 
873 GETFIELD(arm_cfft_instance_f32,fftLen,"h");
874 GETFIELD(arm_cfft_instance_f32,bitRevLength,"h");
875 
876 
877 static PyMethodDef arm_cfft_instance_f32_methods[] = {
878 
879     {"fftLen", (PyCFunction) Method_arm_cfft_instance_f32_fftLen,METH_NOARGS,"fftLen"},
880     {"bitRevLength", (PyCFunction) Method_arm_cfft_instance_f32_bitRevLength,METH_NOARGS,"bitRevLength"},
881 
882     {NULL}  /* Sentinel */
883 };
884 
885 
886 DSPType(arm_cfft_instance_f32,arm_cfft_instance_f32_new,arm_cfft_instance_f32_dealloc,arm_cfft_instance_f32_init,arm_cfft_instance_f32_methods);
887 
888 
889 typedef struct {
890     PyObject_HEAD
891     arm_rfft_instance_q15 *instance;
892 } dsp_arm_rfft_instance_q15Object;
893 
894 
895 static void
arm_rfft_instance_q15_dealloc(dsp_arm_rfft_instance_q15Object * self)896 arm_rfft_instance_q15_dealloc(dsp_arm_rfft_instance_q15Object* self)
897 {
898     //printf("Dealloc called\n");
899     if (self->instance)
900     {
901 
902 
903        PyMem_Free(self->instance);
904     }
905 
906     Py_TYPE(self)->tp_free((PyObject*)self);
907 }
908 
909 
910 static PyObject *
arm_rfft_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)911 arm_rfft_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
912 {
913     dsp_arm_rfft_instance_q15Object *self;
914     //printf("New called\n");
915 
916     self = (dsp_arm_rfft_instance_q15Object *)type->tp_alloc(type, 0);
917     //printf("alloc called\n");
918 
919     if (self != NULL) {
920 
921         self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_q15));
922 
923         self->instance->pTwiddleAReal = NULL;
924         self->instance->pTwiddleBReal = NULL;
925         self->instance->pCfft = NULL;
926 
927     }
928 
929 
930     return (PyObject *)self;
931 }
932 
933 static int
arm_rfft_instance_q15_init(dsp_arm_rfft_instance_q15Object * self,PyObject * args,PyObject * kwds)934 arm_rfft_instance_q15_init(dsp_arm_rfft_instance_q15Object *self, PyObject *args, PyObject *kwds)
935 {
936 
937     PyObject *pTwiddleAReal=NULL;
938     PyObject *pTwiddleBReal=NULL;
939     PyObject *pCfft=NULL;
940 char *kwlist[] = {
941 "fftLenReal","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
942 };
943 
944 if (PyArg_ParseTupleAndKeywords(args, kwds, "|iiii", kwlist,&self->instance->fftLenReal
945 ,&self->instance->ifftFlagR
946 ,&self->instance->bitReverseFlagR
947 ,&self->instance->twidCoefRModifier
948 ))
949     {
950 
951 
952     }
953     return 0;
954 }
955 
956 GETFIELD(arm_rfft_instance_q15,fftLenReal,"i");
957 GETFIELD(arm_rfft_instance_q15,ifftFlagR,"i");
958 GETFIELD(arm_rfft_instance_q15,bitReverseFlagR,"i");
959 GETFIELD(arm_rfft_instance_q15,twidCoefRModifier,"i");
960 
961 
962 static PyMethodDef arm_rfft_instance_q15_methods[] = {
963 
964     {"fftLenReal", (PyCFunction) Method_arm_rfft_instance_q15_fftLenReal,METH_NOARGS,"fftLenReal"},
965     {"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_q15_ifftFlagR,METH_NOARGS,"ifftFlagR"},
966     {"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_q15_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
967     {"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_q15_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
968 
969     {NULL}  /* Sentinel */
970 };
971 
972 
973 DSPType(arm_rfft_instance_q15,arm_rfft_instance_q15_new,arm_rfft_instance_q15_dealloc,arm_rfft_instance_q15_init,arm_rfft_instance_q15_methods);
974 
975 
976 typedef struct {
977     PyObject_HEAD
978     arm_rfft_instance_q31 *instance;
979 } dsp_arm_rfft_instance_q31Object;
980 
981 
982 static void
arm_rfft_instance_q31_dealloc(dsp_arm_rfft_instance_q31Object * self)983 arm_rfft_instance_q31_dealloc(dsp_arm_rfft_instance_q31Object* self)
984 {
985     //printf("Dealloc called\n");
986     if (self->instance)
987     {
988 
989 
990        PyMem_Free(self->instance);
991     }
992 
993     Py_TYPE(self)->tp_free((PyObject*)self);
994 }
995 
996 
997 static PyObject *
arm_rfft_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)998 arm_rfft_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
999 {
1000     dsp_arm_rfft_instance_q31Object *self;
1001     //printf("New called\n");
1002 
1003     self = (dsp_arm_rfft_instance_q31Object *)type->tp_alloc(type, 0);
1004     //printf("alloc called\n");
1005 
1006     if (self != NULL) {
1007 
1008         self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_q31));
1009 
1010         self->instance->pTwiddleAReal = NULL;
1011         self->instance->pTwiddleBReal = NULL;
1012         self->instance->pCfft = NULL;
1013 
1014     }
1015 
1016 
1017     return (PyObject *)self;
1018 }
1019 
1020 static int
arm_rfft_instance_q31_init(dsp_arm_rfft_instance_q31Object * self,PyObject * args,PyObject * kwds)1021 arm_rfft_instance_q31_init(dsp_arm_rfft_instance_q31Object *self, PyObject *args, PyObject *kwds)
1022 {
1023 
1024     PyObject *pTwiddleAReal=NULL;
1025     PyObject *pTwiddleBReal=NULL;
1026     PyObject *pCfft=NULL;
1027 char *kwlist[] = {
1028 "fftLenReal","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
1029 };
1030 
1031 if (PyArg_ParseTupleAndKeywords(args, kwds, "|iiii", kwlist,&self->instance->fftLenReal
1032 ,&self->instance->ifftFlagR
1033 ,&self->instance->bitReverseFlagR
1034 ,&self->instance->twidCoefRModifier
1035 ))
1036     {
1037 
1038 
1039     }
1040     return 0;
1041 }
1042 
1043 GETFIELD(arm_rfft_instance_q31,fftLenReal,"i");
1044 GETFIELD(arm_rfft_instance_q31,ifftFlagR,"i");
1045 GETFIELD(arm_rfft_instance_q31,bitReverseFlagR,"i");
1046 GETFIELD(arm_rfft_instance_q31,twidCoefRModifier,"i");
1047 
1048 
1049 static PyMethodDef arm_rfft_instance_q31_methods[] = {
1050 
1051     {"fftLenReal", (PyCFunction) Method_arm_rfft_instance_q31_fftLenReal,METH_NOARGS,"fftLenReal"},
1052     {"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_q31_ifftFlagR,METH_NOARGS,"ifftFlagR"},
1053     {"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_q31_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
1054     {"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_q31_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
1055 
1056     {NULL}  /* Sentinel */
1057 };
1058 
1059 
1060 DSPType(arm_rfft_instance_q31,arm_rfft_instance_q31_new,arm_rfft_instance_q31_dealloc,arm_rfft_instance_q31_init,arm_rfft_instance_q31_methods);
1061 
1062 
1063 typedef struct {
1064     PyObject_HEAD
1065     arm_rfft_instance_f32 *instance;
1066 } dsp_arm_rfft_instance_f32Object;
1067 
1068 
1069 static void
arm_rfft_instance_f32_dealloc(dsp_arm_rfft_instance_f32Object * self)1070 arm_rfft_instance_f32_dealloc(dsp_arm_rfft_instance_f32Object* self)
1071 {
1072     //printf("Dealloc called\n");
1073     if (self->instance)
1074     {
1075 
1076 
1077        PyMem_Free(self->instance);
1078     }
1079 
1080     Py_TYPE(self)->tp_free((PyObject*)self);
1081 }
1082 
1083 
1084 static PyObject *
arm_rfft_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1085 arm_rfft_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1086 {
1087     dsp_arm_rfft_instance_f32Object *self;
1088     //printf("New called\n");
1089 
1090     self = (dsp_arm_rfft_instance_f32Object *)type->tp_alloc(type, 0);
1091     //printf("alloc called\n");
1092 
1093     if (self != NULL) {
1094 
1095         self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_f32));
1096 
1097         self->instance->pTwiddleAReal = NULL;
1098         self->instance->pTwiddleBReal = NULL;
1099         self->instance->pCfft = NULL;
1100 
1101     }
1102 
1103 
1104     return (PyObject *)self;
1105 }
1106 
1107 static int
arm_rfft_instance_f32_init(dsp_arm_rfft_instance_f32Object * self,PyObject * args,PyObject * kwds)1108 arm_rfft_instance_f32_init(dsp_arm_rfft_instance_f32Object *self, PyObject *args, PyObject *kwds)
1109 {
1110 
1111     PyObject *pTwiddleAReal=NULL;
1112     PyObject *pTwiddleBReal=NULL;
1113     PyObject *pCfft=NULL;
1114 char *kwlist[] = {
1115 "fftLenReal","fftLenBy2","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
1116 };
1117 
1118 if (PyArg_ParseTupleAndKeywords(args, kwds, "|ihiii", kwlist,&self->instance->fftLenReal
1119 ,&self->instance->fftLenBy2
1120 ,&self->instance->ifftFlagR
1121 ,&self->instance->bitReverseFlagR
1122 ,&self->instance->twidCoefRModifier
1123 ))
1124     {
1125 
1126 
1127     }
1128     return 0;
1129 }
1130 
1131 GETFIELD(arm_rfft_instance_f32,fftLenReal,"i");
1132 GETFIELD(arm_rfft_instance_f32,fftLenBy2,"h");
1133 GETFIELD(arm_rfft_instance_f32,ifftFlagR,"i");
1134 GETFIELD(arm_rfft_instance_f32,bitReverseFlagR,"i");
1135 GETFIELD(arm_rfft_instance_f32,twidCoefRModifier,"i");
1136 
1137 
1138 static PyMethodDef arm_rfft_instance_f32_methods[] = {
1139 
1140     {"fftLenReal", (PyCFunction) Method_arm_rfft_instance_f32_fftLenReal,METH_NOARGS,"fftLenReal"},
1141     {"fftLenBy2", (PyCFunction) Method_arm_rfft_instance_f32_fftLenBy2,METH_NOARGS,"fftLenBy2"},
1142     {"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_f32_ifftFlagR,METH_NOARGS,"ifftFlagR"},
1143     {"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_f32_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
1144     {"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_f32_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
1145 
1146     {NULL}  /* Sentinel */
1147 };
1148 
1149 
1150 DSPType(arm_rfft_instance_f32,arm_rfft_instance_f32_new,arm_rfft_instance_f32_dealloc,arm_rfft_instance_f32_init,arm_rfft_instance_f32_methods);
1151 
1152 
1153 typedef struct {
1154     PyObject_HEAD
1155     arm_rfft_fast_instance_f64 *instance;
1156 } dsp_arm_rfft_fast_instance_f64Object;
1157 
1158 
1159 static void
arm_rfft_fast_instance_f64_dealloc(dsp_arm_rfft_fast_instance_f64Object * self)1160 arm_rfft_fast_instance_f64_dealloc(dsp_arm_rfft_fast_instance_f64Object* self)
1161 {
1162     //printf("Dealloc called\n");
1163     if (self->instance)
1164     {
1165 
1166 
1167        PyMem_Free(self->instance);
1168     }
1169 
1170     Py_TYPE(self)->tp_free((PyObject*)self);
1171 }
1172 
1173 
1174 static PyObject *
arm_rfft_fast_instance_f64_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1175 arm_rfft_fast_instance_f64_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1176 {
1177     dsp_arm_rfft_fast_instance_f64Object *self;
1178     //printf("New called\n");
1179 
1180     self = (dsp_arm_rfft_fast_instance_f64Object *)type->tp_alloc(type, 0);
1181     //printf("alloc called\n");
1182 
1183     if (self != NULL) {
1184 
1185         self->instance = PyMem_Malloc(sizeof(arm_rfft_fast_instance_f64));
1186 
1187         self->instance->pTwiddleRFFT = NULL;
1188 
1189     }
1190 
1191 
1192     return (PyObject *)self;
1193 }
1194 
1195 static int
arm_rfft_fast_instance_f64_init(dsp_arm_rfft_fast_instance_f64Object * self,PyObject * args,PyObject * kwds)1196 arm_rfft_fast_instance_f64_init(dsp_arm_rfft_fast_instance_f64Object *self, PyObject *args, PyObject *kwds)
1197 {
1198 
1199     PyObject *pTwiddleRFFT=NULL;
1200 char *kwlist[] = {
1201 "Sint","fftLenRFFT",NULL
1202 };
1203 
1204 if (PyArg_ParseTupleAndKeywords(args, kwds, "|?h", kwlist,&self->instance->Sint
1205 ,&self->instance->fftLenRFFT
1206 ))
1207     {
1208 
1209 
1210     }
1211     return 0;
1212 }
1213 
1214 GETFIELD(arm_rfft_fast_instance_f64,Sint,"?");
1215 GETFIELD(arm_rfft_fast_instance_f64,fftLenRFFT,"h");
1216 
1217 
1218 static PyMethodDef arm_rfft_fast_instance_f64_methods[] = {
1219 
1220     {"Sint", (PyCFunction) Method_arm_rfft_fast_instance_f64_Sint,METH_NOARGS,"Sint"},
1221     {"fftLenRFFT", (PyCFunction) Method_arm_rfft_fast_instance_f64_fftLenRFFT,METH_NOARGS,"fftLenRFFT"},
1222 
1223     {NULL}  /* Sentinel */
1224 };
1225 
1226 
1227 DSPType(arm_rfft_fast_instance_f64,arm_rfft_fast_instance_f64_new,arm_rfft_fast_instance_f64_dealloc,arm_rfft_fast_instance_f64_init,arm_rfft_fast_instance_f64_methods);
1228 
1229 
1230 typedef struct {
1231     PyObject_HEAD
1232     arm_rfft_fast_instance_f32 *instance;
1233 } dsp_arm_rfft_fast_instance_f32Object;
1234 
1235 
1236 static void
arm_rfft_fast_instance_f32_dealloc(dsp_arm_rfft_fast_instance_f32Object * self)1237 arm_rfft_fast_instance_f32_dealloc(dsp_arm_rfft_fast_instance_f32Object* self)
1238 {
1239     //printf("Dealloc called\n");
1240     if (self->instance)
1241     {
1242 
1243 
1244        PyMem_Free(self->instance);
1245     }
1246 
1247     Py_TYPE(self)->tp_free((PyObject*)self);
1248 }
1249 
1250 
1251 static PyObject *
arm_rfft_fast_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1252 arm_rfft_fast_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1253 {
1254     dsp_arm_rfft_fast_instance_f32Object *self;
1255     //printf("New called\n");
1256 
1257     self = (dsp_arm_rfft_fast_instance_f32Object *)type->tp_alloc(type, 0);
1258     //printf("alloc called\n");
1259 
1260     if (self != NULL) {
1261 
1262         self->instance = PyMem_Malloc(sizeof(arm_rfft_fast_instance_f32));
1263 
1264         self->instance->pTwiddleRFFT = NULL;
1265 
1266     }
1267 
1268 
1269     return (PyObject *)self;
1270 }
1271 
1272 static int
arm_rfft_fast_instance_f32_init(dsp_arm_rfft_fast_instance_f32Object * self,PyObject * args,PyObject * kwds)1273 arm_rfft_fast_instance_f32_init(dsp_arm_rfft_fast_instance_f32Object *self, PyObject *args, PyObject *kwds)
1274 {
1275 
1276     PyObject *pTwiddleRFFT=NULL;
1277 char *kwlist[] = {
1278 "Sint","fftLenRFFT",NULL
1279 };
1280 
1281 if (PyArg_ParseTupleAndKeywords(args, kwds, "|?h", kwlist,&self->instance->Sint
1282 ,&self->instance->fftLenRFFT
1283 ))
1284     {
1285 
1286 
1287     }
1288     return 0;
1289 }
1290 
1291 GETFIELD(arm_rfft_fast_instance_f32,Sint,"?");
1292 GETFIELD(arm_rfft_fast_instance_f32,fftLenRFFT,"h");
1293 
1294 
1295 static PyMethodDef arm_rfft_fast_instance_f32_methods[] = {
1296 
1297     {"Sint", (PyCFunction) Method_arm_rfft_fast_instance_f32_Sint,METH_NOARGS,"Sint"},
1298     {"fftLenRFFT", (PyCFunction) Method_arm_rfft_fast_instance_f32_fftLenRFFT,METH_NOARGS,"fftLenRFFT"},
1299 
1300     {NULL}  /* Sentinel */
1301 };
1302 
1303 
1304 DSPType(arm_rfft_fast_instance_f32,arm_rfft_fast_instance_f32_new,arm_rfft_fast_instance_f32_dealloc,arm_rfft_fast_instance_f32_init,arm_rfft_fast_instance_f32_methods);
1305 
1306 
1307 typedef struct {
1308     PyObject_HEAD
1309     arm_dct4_instance_f32 *instance;
1310 } dsp_arm_dct4_instance_f32Object;
1311 
1312 
1313 static void
arm_dct4_instance_f32_dealloc(dsp_arm_dct4_instance_f32Object * self)1314 arm_dct4_instance_f32_dealloc(dsp_arm_dct4_instance_f32Object* self)
1315 {
1316     //printf("Dealloc called\n");
1317     if (self->instance)
1318     {
1319 
1320 
1321        PyMem_Free(self->instance);
1322     }
1323 
1324     Py_TYPE(self)->tp_free((PyObject*)self);
1325 }
1326 
1327 
1328 static PyObject *
arm_dct4_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1329 arm_dct4_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1330 {
1331     dsp_arm_dct4_instance_f32Object *self;
1332     //printf("New called\n");
1333 
1334     self = (dsp_arm_dct4_instance_f32Object *)type->tp_alloc(type, 0);
1335     //printf("alloc called\n");
1336 
1337     if (self != NULL) {
1338 
1339         self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_f32));
1340 
1341         self->instance->pTwiddle = NULL;
1342         self->instance->pCosFactor = NULL;
1343         self->instance->pRfft = NULL;
1344         self->instance->pCfft = NULL;
1345 
1346     }
1347 
1348 
1349     return (PyObject *)self;
1350 }
1351 
1352 static int
arm_dct4_instance_f32_init(dsp_arm_dct4_instance_f32Object * self,PyObject * args,PyObject * kwds)1353 arm_dct4_instance_f32_init(dsp_arm_dct4_instance_f32Object *self, PyObject *args, PyObject *kwds)
1354 {
1355 
1356     PyObject *pTwiddle=NULL;
1357     PyObject *pCosFactor=NULL;
1358     PyObject *pRfft=NULL;
1359     PyObject *pCfft=NULL;
1360 char *kwlist[] = {
1361 "N","Nby2","normalize",NULL
1362 };
1363 
1364 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhf", kwlist,&self->instance->N
1365 ,&self->instance->Nby2
1366 ,&self->instance->normalize
1367 ))
1368     {
1369 
1370 
1371     }
1372     return 0;
1373 }
1374 
1375 GETFIELD(arm_dct4_instance_f32,N,"h");
1376 GETFIELD(arm_dct4_instance_f32,Nby2,"h");
1377 GETFIELD(arm_dct4_instance_f32,normalize,"f");
1378 
1379 
1380 static PyMethodDef arm_dct4_instance_f32_methods[] = {
1381 
1382     {"N", (PyCFunction) Method_arm_dct4_instance_f32_N,METH_NOARGS,"N"},
1383     {"Nby2", (PyCFunction) Method_arm_dct4_instance_f32_Nby2,METH_NOARGS,"Nby2"},
1384     {"normalize", (PyCFunction) Method_arm_dct4_instance_f32_normalize,METH_NOARGS,"normalize"},
1385 
1386     {NULL}  /* Sentinel */
1387 };
1388 
1389 
1390 DSPType(arm_dct4_instance_f32,arm_dct4_instance_f32_new,arm_dct4_instance_f32_dealloc,arm_dct4_instance_f32_init,arm_dct4_instance_f32_methods);
1391 
1392 
1393 typedef struct {
1394     PyObject_HEAD
1395     arm_dct4_instance_q31 *instance;
1396 } dsp_arm_dct4_instance_q31Object;
1397 
1398 
1399 static void
arm_dct4_instance_q31_dealloc(dsp_arm_dct4_instance_q31Object * self)1400 arm_dct4_instance_q31_dealloc(dsp_arm_dct4_instance_q31Object* self)
1401 {
1402     //printf("Dealloc called\n");
1403     if (self->instance)
1404     {
1405 
1406 
1407        PyMem_Free(self->instance);
1408     }
1409 
1410     Py_TYPE(self)->tp_free((PyObject*)self);
1411 }
1412 
1413 
1414 static PyObject *
arm_dct4_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1415 arm_dct4_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1416 {
1417     dsp_arm_dct4_instance_q31Object *self;
1418     //printf("New called\n");
1419 
1420     self = (dsp_arm_dct4_instance_q31Object *)type->tp_alloc(type, 0);
1421     //printf("alloc called\n");
1422 
1423     if (self != NULL) {
1424 
1425         self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_q31));
1426 
1427         self->instance->pTwiddle = NULL;
1428         self->instance->pCosFactor = NULL;
1429         self->instance->pRfft = NULL;
1430         self->instance->pCfft = NULL;
1431 
1432     }
1433 
1434 
1435     return (PyObject *)self;
1436 }
1437 
1438 static int
arm_dct4_instance_q31_init(dsp_arm_dct4_instance_q31Object * self,PyObject * args,PyObject * kwds)1439 arm_dct4_instance_q31_init(dsp_arm_dct4_instance_q31Object *self, PyObject *args, PyObject *kwds)
1440 {
1441 
1442     PyObject *pTwiddle=NULL;
1443     PyObject *pCosFactor=NULL;
1444     PyObject *pRfft=NULL;
1445     PyObject *pCfft=NULL;
1446 char *kwlist[] = {
1447 "N","Nby2","normalize",NULL
1448 };
1449 
1450 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhi", kwlist,&self->instance->N
1451 ,&self->instance->Nby2
1452 ,&self->instance->normalize
1453 ))
1454     {
1455 
1456 
1457     }
1458     return 0;
1459 }
1460 
1461 GETFIELD(arm_dct4_instance_q31,N,"h");
1462 GETFIELD(arm_dct4_instance_q31,Nby2,"h");
1463 GETFIELD(arm_dct4_instance_q31,normalize,"i");
1464 
1465 
1466 static PyMethodDef arm_dct4_instance_q31_methods[] = {
1467 
1468     {"N", (PyCFunction) Method_arm_dct4_instance_q31_N,METH_NOARGS,"N"},
1469     {"Nby2", (PyCFunction) Method_arm_dct4_instance_q31_Nby2,METH_NOARGS,"Nby2"},
1470     {"normalize", (PyCFunction) Method_arm_dct4_instance_q31_normalize,METH_NOARGS,"normalize"},
1471 
1472     {NULL}  /* Sentinel */
1473 };
1474 
1475 
1476 DSPType(arm_dct4_instance_q31,arm_dct4_instance_q31_new,arm_dct4_instance_q31_dealloc,arm_dct4_instance_q31_init,arm_dct4_instance_q31_methods);
1477 
1478 
1479 typedef struct {
1480     PyObject_HEAD
1481     arm_dct4_instance_q15 *instance;
1482 } dsp_arm_dct4_instance_q15Object;
1483 
1484 
1485 static void
arm_dct4_instance_q15_dealloc(dsp_arm_dct4_instance_q15Object * self)1486 arm_dct4_instance_q15_dealloc(dsp_arm_dct4_instance_q15Object* self)
1487 {
1488     //printf("Dealloc called\n");
1489     if (self->instance)
1490     {
1491 
1492 
1493        PyMem_Free(self->instance);
1494     }
1495 
1496     Py_TYPE(self)->tp_free((PyObject*)self);
1497 }
1498 
1499 
1500 static PyObject *
arm_dct4_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1501 arm_dct4_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1502 {
1503     dsp_arm_dct4_instance_q15Object *self;
1504     //printf("New called\n");
1505 
1506     self = (dsp_arm_dct4_instance_q15Object *)type->tp_alloc(type, 0);
1507     //printf("alloc called\n");
1508 
1509     if (self != NULL) {
1510 
1511         self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_q15));
1512 
1513         self->instance->pTwiddle = NULL;
1514         self->instance->pCosFactor = NULL;
1515         self->instance->pRfft = NULL;
1516         self->instance->pCfft = NULL;
1517 
1518     }
1519 
1520 
1521     return (PyObject *)self;
1522 }
1523 
1524 static int
arm_dct4_instance_q15_init(dsp_arm_dct4_instance_q15Object * self,PyObject * args,PyObject * kwds)1525 arm_dct4_instance_q15_init(dsp_arm_dct4_instance_q15Object *self, PyObject *args, PyObject *kwds)
1526 {
1527 
1528     PyObject *pTwiddle=NULL;
1529     PyObject *pCosFactor=NULL;
1530     PyObject *pRfft=NULL;
1531     PyObject *pCfft=NULL;
1532 char *kwlist[] = {
1533 "N","Nby2","normalize",NULL
1534 };
1535 
1536 if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhh", kwlist,&self->instance->N
1537 ,&self->instance->Nby2
1538 ,&self->instance->normalize
1539 ))
1540     {
1541 
1542 
1543     }
1544     return 0;
1545 }
1546 
1547 GETFIELD(arm_dct4_instance_q15,N,"h");
1548 GETFIELD(arm_dct4_instance_q15,Nby2,"h");
1549 GETFIELD(arm_dct4_instance_q15,normalize,"h");
1550 
1551 
1552 static PyMethodDef arm_dct4_instance_q15_methods[] = {
1553 
1554     {"N", (PyCFunction) Method_arm_dct4_instance_q15_N,METH_NOARGS,"N"},
1555     {"Nby2", (PyCFunction) Method_arm_dct4_instance_q15_Nby2,METH_NOARGS,"Nby2"},
1556     {"normalize", (PyCFunction) Method_arm_dct4_instance_q15_normalize,METH_NOARGS,"normalize"},
1557 
1558     {NULL}  /* Sentinel */
1559 };
1560 
1561 
1562 DSPType(arm_dct4_instance_q15,arm_dct4_instance_q15_new,arm_dct4_instance_q15_dealloc,arm_dct4_instance_q15_init,arm_dct4_instance_q15_methods);
1563 
1564 
1565 
1566 typedef struct {
1567     PyObject_HEAD
1568     arm_mfcc_instance_f32 *instance;
1569 } dsp_arm_mfcc_instance_f32Object;
1570 
1571 typedef struct {
1572     PyObject_HEAD
1573     arm_mfcc_instance_q31 *instance;
1574 } dsp_arm_mfcc_instance_q31Object;
1575 
1576 typedef struct {
1577     PyObject_HEAD
1578     arm_mfcc_instance_q15 *instance;
1579 } dsp_arm_mfcc_instance_q15Object;
1580 
1581 static void
arm_mfcc_instance_f32_dealloc(dsp_arm_mfcc_instance_f32Object * self)1582 arm_mfcc_instance_f32_dealloc(dsp_arm_mfcc_instance_f32Object* self)
1583 {
1584     //printf("Dealloc called\n");
1585     if (self->instance)
1586     {
1587 
1588 
1589        PyMem_Free(self->instance);
1590     }
1591 
1592     Py_TYPE(self)->tp_free((PyObject*)self);
1593 }
1594 
1595 static void
arm_mfcc_instance_q31_dealloc(dsp_arm_mfcc_instance_q31Object * self)1596 arm_mfcc_instance_q31_dealloc(dsp_arm_mfcc_instance_q31Object* self)
1597 {
1598     //printf("Dealloc called\n");
1599     if (self->instance)
1600     {
1601 
1602 
1603        PyMem_Free(self->instance);
1604     }
1605 
1606     Py_TYPE(self)->tp_free((PyObject*)self);
1607 }
1608 
1609 static void
arm_mfcc_instance_q15_dealloc(dsp_arm_mfcc_instance_q15Object * self)1610 arm_mfcc_instance_q15_dealloc(dsp_arm_mfcc_instance_q15Object* self)
1611 {
1612     //printf("Dealloc called\n");
1613     if (self->instance)
1614     {
1615 
1616 
1617        PyMem_Free(self->instance);
1618     }
1619 
1620     Py_TYPE(self)->tp_free((PyObject*)self);
1621 }
1622 
1623 static PyObject *
arm_mfcc_instance_f32_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1624 arm_mfcc_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1625 {
1626     dsp_arm_mfcc_instance_f32Object *self;
1627     //printf("New called\n");
1628 
1629     self = (dsp_arm_mfcc_instance_f32Object *)type->tp_alloc(type, 0);
1630     //printf("alloc called\n");
1631 
1632     if (self != NULL) {
1633 
1634         self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_f32));
1635 
1636         self->instance->dctCoefs = NULL;
1637         self->instance->filterCoefs = NULL;
1638         self->instance->windowCoefs = NULL;
1639         self->instance->filterPos = NULL;
1640         self->instance->filterLengths = NULL;
1641 
1642     }
1643 
1644 
1645     return (PyObject *)self;
1646 }
1647 
1648 static PyObject *
arm_mfcc_instance_q31_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1649 arm_mfcc_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1650 {
1651     dsp_arm_mfcc_instance_q31Object *self;
1652     //printf("New called\n");
1653 
1654     self = (dsp_arm_mfcc_instance_q31Object *)type->tp_alloc(type, 0);
1655     //printf("alloc called\n");
1656 
1657     if (self != NULL) {
1658 
1659         self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_q31));
1660 
1661         self->instance->dctCoefs = NULL;
1662         self->instance->filterCoefs = NULL;
1663         self->instance->windowCoefs = NULL;
1664         self->instance->filterPos = NULL;
1665         self->instance->filterLengths = NULL;
1666 
1667     }
1668 
1669 
1670     return (PyObject *)self;
1671 }
1672 
1673 static PyObject *
arm_mfcc_instance_q15_new(PyTypeObject * type,PyObject * args,PyObject * kwds)1674 arm_mfcc_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
1675 {
1676     dsp_arm_mfcc_instance_q15Object *self;
1677     //printf("New called\n");
1678 
1679     self = (dsp_arm_mfcc_instance_q15Object *)type->tp_alloc(type, 0);
1680     //printf("alloc called\n");
1681 
1682     if (self != NULL) {
1683 
1684         self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_q15));
1685 
1686         self->instance->dctCoefs = NULL;
1687         self->instance->filterCoefs = NULL;
1688         self->instance->windowCoefs = NULL;
1689         self->instance->filterPos = NULL;
1690         self->instance->filterLengths = NULL;
1691 
1692     }
1693 
1694 
1695     return (PyObject *)self;
1696 }
1697 
1698 static int
arm_mfcc_instance_f32_init(dsp_arm_mfcc_instance_f32Object * self,PyObject * args,PyObject * kwds)1699 arm_mfcc_instance_f32_init(dsp_arm_mfcc_instance_f32Object *self, PyObject *args, PyObject *kwds)
1700 {
1701 
1702     PyObject *pTwiddle=NULL;
1703     PyObject *pBitRevTable=NULL;
1704 char *kwlist[] = {
1705 "fftLen","nbMelFilters","nbDctOutputs",NULL
1706 };
1707 
1708 if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
1709 ,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
1710 ))
1711     {
1712 
1713 
1714     }
1715     return 0;
1716 }
1717 
1718 static int
arm_mfcc_instance_q31_init(dsp_arm_mfcc_instance_q31Object * self,PyObject * args,PyObject * kwds)1719 arm_mfcc_instance_q31_init(dsp_arm_mfcc_instance_q31Object *self, PyObject *args, PyObject *kwds)
1720 {
1721 
1722     PyObject *pTwiddle=NULL;
1723     PyObject *pBitRevTable=NULL;
1724 char *kwlist[] = {
1725 "fftLen","nbMelFilters","nbDctOutputs",NULL
1726 };
1727 
1728 if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
1729 ,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
1730 ))
1731     {
1732 
1733 
1734     }
1735     return 0;
1736 }
1737 
1738 static int
arm_mfcc_instance_q15_init(dsp_arm_mfcc_instance_q15Object * self,PyObject * args,PyObject * kwds)1739 arm_mfcc_instance_q15_init(dsp_arm_mfcc_instance_q15Object *self, PyObject *args, PyObject *kwds)
1740 {
1741 
1742     PyObject *pTwiddle=NULL;
1743     PyObject *pBitRevTable=NULL;
1744 char *kwlist[] = {
1745 "fftLen","nbMelFilters","nbDctOutputs",NULL
1746 };
1747 
1748 if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
1749 ,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
1750 ))
1751     {
1752 
1753 
1754     }
1755     return 0;
1756 }
1757 
1758 GETFIELD(arm_mfcc_instance_f32,fftLen,"i");
1759 GETFIELD(arm_mfcc_instance_f32,nbMelFilters,"i");
1760 GETFIELD(arm_mfcc_instance_f32,nbDctOutputs,"i");
1761 
1762 GETFIELD(arm_mfcc_instance_q31,fftLen,"i");
1763 GETFIELD(arm_mfcc_instance_q31,nbMelFilters,"i");
1764 GETFIELD(arm_mfcc_instance_q31,nbDctOutputs,"i");
1765 
1766 GETFIELD(arm_mfcc_instance_q15,fftLen,"i");
1767 GETFIELD(arm_mfcc_instance_q15,nbMelFilters,"i");
1768 GETFIELD(arm_mfcc_instance_q15,nbDctOutputs,"i");
1769 
1770 
1771 static PyMethodDef arm_mfcc_instance_f32_methods[] = {
1772 
1773     {"fftLen", (PyCFunction) Method_arm_mfcc_instance_f32_fftLen,METH_NOARGS,"fftLen"},
1774     {"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_f32_nbMelFilters,METH_NOARGS,"nbMelFilters"},
1775     {"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_f32_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
1776 
1777     {NULL}  /* Sentinel */
1778 };
1779 
1780 static PyMethodDef arm_mfcc_instance_q31_methods[] = {
1781 
1782     {"fftLen", (PyCFunction) Method_arm_mfcc_instance_q31_fftLen,METH_NOARGS,"fftLen"},
1783     {"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_q31_nbMelFilters,METH_NOARGS,"nbMelFilters"},
1784     {"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_q31_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
1785 
1786     {NULL}  /* Sentinel */
1787 };
1788 
1789 static PyMethodDef arm_mfcc_instance_q15_methods[] = {
1790 
1791     {"fftLen", (PyCFunction) Method_arm_mfcc_instance_q15_fftLen,METH_NOARGS,"fftLen"},
1792     {"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_q15_nbMelFilters,METH_NOARGS,"nbMelFilters"},
1793     {"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_q15_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
1794 
1795     {NULL}  /* Sentinel */
1796 };
1797 
1798 
1799 DSPType(arm_mfcc_instance_f32,arm_mfcc_instance_f32_new,arm_mfcc_instance_f32_dealloc,arm_mfcc_instance_f32_init,arm_mfcc_instance_f32_methods);
1800 DSPType(arm_mfcc_instance_q31,arm_mfcc_instance_q31_new,arm_mfcc_instance_q31_dealloc,arm_mfcc_instance_q31_init,arm_mfcc_instance_q31_methods);
1801 DSPType(arm_mfcc_instance_q15,arm_mfcc_instance_q15_new,arm_mfcc_instance_q15_dealloc,arm_mfcc_instance_q15_init,arm_mfcc_instance_q15_methods);
1802 
1803 
1804 
typeRegistration(PyObject * module)1805 void typeRegistration(PyObject *module) {
1806 
1807 
1808 
1809   ADDTYPE(arm_cfft_radix2_instance_q15);
1810   ADDTYPE(arm_cfft_radix4_instance_q15);
1811   ADDTYPE(arm_cfft_radix2_instance_q31);
1812   ADDTYPE(arm_cfft_radix4_instance_q31);
1813   ADDTYPE(arm_cfft_radix2_instance_f32);
1814   ADDTYPE(arm_cfft_radix4_instance_f32);
1815   ADDTYPE(arm_cfft_instance_q15);
1816   ADDTYPE(arm_cfft_instance_q31);
1817   ADDTYPE(arm_cfft_instance_f32);
1818   ADDTYPE(arm_rfft_instance_q15);
1819   ADDTYPE(arm_rfft_instance_q31);
1820   ADDTYPE(arm_rfft_fast_instance_f32);
1821   ADDTYPE(arm_rfft_fast_instance_f64);
1822   ADDTYPE(arm_dct4_instance_f32);
1823   ADDTYPE(arm_dct4_instance_q31);
1824   ADDTYPE(arm_dct4_instance_q15);
1825 
1826 
1827   ADDTYPE(arm_mfcc_instance_f32);
1828   ADDTYPE(arm_mfcc_instance_q31);
1829   ADDTYPE(arm_mfcc_instance_q15);
1830 }
1831 
1832 
1833 
1834 
1835 static PyObject *
cmsis_arm_cfft_radix2_init_q15(PyObject * obj,PyObject * args)1836 cmsis_arm_cfft_radix2_init_q15(PyObject *obj, PyObject *args)
1837 {
1838 
1839   PyObject *S=NULL; // input
1840   uint16_t fftLen; // input
1841   uint32_t ifftFlag; // input
1842   uint32_t bitReverseFlag; // input
1843 
1844   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
1845   {
1846 
1847     dsp_arm_cfft_radix2_instance_q15Object *selfS = (dsp_arm_cfft_radix2_instance_q15Object *)S;
1848 
1849     arm_status returnValue = arm_cfft_radix2_init_q15(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
1850     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
1851 
1852     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
1853 
1854     Py_DECREF(theReturnOBJ);
1855     return(pythonResult);
1856 
1857   }
1858   return(NULL);
1859 }
1860 
1861 
1862 static PyObject *
cmsis_arm_cfft_radix2_q15(PyObject * obj,PyObject * args)1863 cmsis_arm_cfft_radix2_q15(PyObject *obj, PyObject *args)
1864 {
1865 
1866   PyObject *S=NULL; // input
1867   PyObject *pSrc=NULL; // input
1868   q15_t *pSrc_converted=NULL; // input
1869 
1870   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
1871   {
1872 
1873     dsp_arm_cfft_radix2_instance_q15Object *selfS = (dsp_arm_cfft_radix2_instance_q15Object *)S;
1874     GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1875 
1876     arm_cfft_radix2_q15(selfS->instance,pSrc_converted);
1877     FREEARGUMENT(pSrc_converted);
1878     Py_RETURN_NONE;
1879 
1880   }
1881   return(NULL);
1882 }
1883 
1884 
1885 static PyObject *
cmsis_arm_cfft_radix4_init_q15(PyObject * obj,PyObject * args)1886 cmsis_arm_cfft_radix4_init_q15(PyObject *obj, PyObject *args)
1887 {
1888 
1889   PyObject *S=NULL; // input
1890   uint16_t fftLen; // input
1891   uint32_t ifftFlag; // input
1892   uint32_t bitReverseFlag; // input
1893 
1894   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
1895   {
1896 
1897     dsp_arm_cfft_radix4_instance_q15Object *selfS = (dsp_arm_cfft_radix4_instance_q15Object *)S;
1898 
1899     arm_status returnValue = arm_cfft_radix4_init_q15(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
1900     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
1901 
1902     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
1903 
1904     Py_DECREF(theReturnOBJ);
1905     return(pythonResult);
1906 
1907   }
1908   return(NULL);
1909 }
1910 
1911 
1912 static PyObject *
cmsis_arm_cfft_radix4_q15(PyObject * obj,PyObject * args)1913 cmsis_arm_cfft_radix4_q15(PyObject *obj, PyObject *args)
1914 {
1915 
1916   PyObject *S=NULL; // input
1917   PyObject *pSrc=NULL; // input
1918   q15_t *pSrc_converted=NULL; // input
1919 
1920   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
1921   {
1922 
1923     dsp_arm_cfft_radix4_instance_q15Object *selfS = (dsp_arm_cfft_radix4_instance_q15Object *)S;
1924     GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1925 
1926     arm_cfft_radix4_q15(selfS->instance,pSrc_converted);
1927     FREEARGUMENT(pSrc_converted);
1928     Py_RETURN_NONE;
1929 
1930   }
1931   return(NULL);
1932 }
1933 
1934 
1935 static PyObject *
cmsis_arm_cfft_radix2_init_q31(PyObject * obj,PyObject * args)1936 cmsis_arm_cfft_radix2_init_q31(PyObject *obj, PyObject *args)
1937 {
1938 
1939   PyObject *S=NULL; // input
1940   uint16_t fftLen; // input
1941   uint32_t ifftFlag; // input
1942   uint32_t bitReverseFlag; // input
1943 
1944   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
1945   {
1946 
1947     dsp_arm_cfft_radix2_instance_q31Object *selfS = (dsp_arm_cfft_radix2_instance_q31Object *)S;
1948 
1949     arm_status returnValue = arm_cfft_radix2_init_q31(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
1950     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
1951 
1952     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
1953 
1954     Py_DECREF(theReturnOBJ);
1955     return(pythonResult);
1956 
1957   }
1958   return(NULL);
1959 }
1960 
1961 
1962 static PyObject *
cmsis_arm_cfft_radix2_q31(PyObject * obj,PyObject * args)1963 cmsis_arm_cfft_radix2_q31(PyObject *obj, PyObject *args)
1964 {
1965 
1966   PyObject *S=NULL; // input
1967   PyObject *pSrc=NULL; // input
1968   q31_t *pSrc_converted=NULL; // input
1969 
1970   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
1971   {
1972 
1973     dsp_arm_cfft_radix2_instance_q31Object *selfS = (dsp_arm_cfft_radix2_instance_q31Object *)S;
1974     GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1975 
1976     arm_cfft_radix2_q31(selfS->instance,pSrc_converted);
1977     FREEARGUMENT(pSrc_converted);
1978     Py_RETURN_NONE;
1979 
1980   }
1981   return(NULL);
1982 }
1983 
1984 
1985 static PyObject *
cmsis_arm_cfft_radix4_q31(PyObject * obj,PyObject * args)1986 cmsis_arm_cfft_radix4_q31(PyObject *obj, PyObject *args)
1987 {
1988 
1989   PyObject *S=NULL; // input
1990   PyObject *pSrc=NULL; // input
1991   q31_t *pSrc_converted=NULL; // input
1992 
1993   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
1994   {
1995 
1996     dsp_arm_cfft_radix4_instance_q31Object *selfS = (dsp_arm_cfft_radix4_instance_q31Object *)S;
1997     GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1998 
1999     arm_cfft_radix4_q31(selfS->instance,pSrc_converted);
2000     FREEARGUMENT(pSrc_converted);
2001     Py_RETURN_NONE;
2002 
2003   }
2004   return(NULL);
2005 }
2006 
2007 
2008 static PyObject *
cmsis_arm_cfft_radix4_init_q31(PyObject * obj,PyObject * args)2009 cmsis_arm_cfft_radix4_init_q31(PyObject *obj, PyObject *args)
2010 {
2011 
2012   PyObject *S=NULL; // input
2013   uint16_t fftLen; // input
2014   uint32_t ifftFlag; // input
2015   uint32_t bitReverseFlag; // input
2016 
2017   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
2018   {
2019 
2020     dsp_arm_cfft_radix4_instance_q31Object *selfS = (dsp_arm_cfft_radix4_instance_q31Object *)S;
2021 
2022     arm_status returnValue = arm_cfft_radix4_init_q31(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2023     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2024 
2025     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2026 
2027     Py_DECREF(theReturnOBJ);
2028     return(pythonResult);
2029 
2030   }
2031   return(NULL);
2032 }
2033 
2034 
2035 static PyObject *
cmsis_arm_cfft_radix2_init_f32(PyObject * obj,PyObject * args)2036 cmsis_arm_cfft_radix2_init_f32(PyObject *obj, PyObject *args)
2037 {
2038 
2039   PyObject *S=NULL; // input
2040   uint16_t fftLen; // input
2041   uint32_t ifftFlag; // input
2042   uint32_t bitReverseFlag; // input
2043 
2044   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
2045   {
2046 
2047     dsp_arm_cfft_radix2_instance_f32Object *selfS = (dsp_arm_cfft_radix2_instance_f32Object *)S;
2048 
2049     arm_status returnValue = arm_cfft_radix2_init_f32(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2050     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2051 
2052     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2053 
2054     Py_DECREF(theReturnOBJ);
2055     return(pythonResult);
2056 
2057   }
2058   return(NULL);
2059 }
2060 
2061 
2062 static PyObject *
cmsis_arm_cfft_radix2_f32(PyObject * obj,PyObject * args)2063 cmsis_arm_cfft_radix2_f32(PyObject *obj, PyObject *args)
2064 {
2065 
2066   PyObject *S=NULL; // input
2067   PyObject *pSrc=NULL; // input
2068   float32_t *pSrc_converted=NULL; // input
2069 
2070   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
2071   {
2072 
2073     dsp_arm_cfft_radix2_instance_f32Object *selfS = (dsp_arm_cfft_radix2_instance_f32Object *)S;
2074     GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
2075 
2076     arm_cfft_radix2_f32(selfS->instance,pSrc_converted);
2077     FREEARGUMENT(pSrc_converted);
2078     Py_RETURN_NONE;
2079 
2080   }
2081   return(NULL);
2082 }
2083 
2084 
2085 static PyObject *
cmsis_arm_cfft_radix4_init_f32(PyObject * obj,PyObject * args)2086 cmsis_arm_cfft_radix4_init_f32(PyObject *obj, PyObject *args)
2087 {
2088 
2089   PyObject *S=NULL; // input
2090   uint16_t fftLen; // input
2091   uint32_t ifftFlag; // input
2092   uint32_t bitReverseFlag; // input
2093 
2094   if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
2095   {
2096 
2097     dsp_arm_cfft_radix4_instance_f32Object *selfS = (dsp_arm_cfft_radix4_instance_f32Object *)S;
2098 
2099     arm_status returnValue = arm_cfft_radix4_init_f32(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2100     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2101 
2102     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2103 
2104     Py_DECREF(theReturnOBJ);
2105     return(pythonResult);
2106 
2107   }
2108   return(NULL);
2109 }
2110 
2111 
2112 static PyObject *
cmsis_arm_cfft_radix4_f32(PyObject * obj,PyObject * args)2113 cmsis_arm_cfft_radix4_f32(PyObject *obj, PyObject *args)
2114 {
2115 
2116   PyObject *S=NULL; // input
2117   PyObject *pSrc=NULL; // input
2118   float32_t *pSrc_converted=NULL; // input
2119 
2120   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
2121   {
2122 
2123     dsp_arm_cfft_radix4_instance_f32Object *selfS = (dsp_arm_cfft_radix4_instance_f32Object *)S;
2124     GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
2125 
2126     arm_cfft_radix4_f32(selfS->instance,pSrc_converted);
2127     FREEARGUMENT(pSrc_converted);
2128     Py_RETURN_NONE;
2129 
2130   }
2131   return(NULL);
2132 }
2133 
2134 
2135 static PyObject *
cmsis_arm_cfft_q15(PyObject * obj,PyObject * args)2136 cmsis_arm_cfft_q15(PyObject *obj, PyObject *args)
2137 {
2138 
2139   PyObject *S=NULL; // input
2140   PyObject *p1=NULL; // input
2141   q15_t *p1_converted=NULL; // input
2142   uint32_t ifftFlag; // input
2143   uint32_t bitReverseFlag; // input
2144 
2145   if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
2146   {
2147 
2148     dsp_arm_cfft_instance_q15Object *selfS = (dsp_arm_cfft_instance_q15Object *)S;
2149     GETARGUMENT(p1,NPY_INT16,int16_t,int16_t);
2150 
2151     arm_cfft_q15(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2152  INT16ARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
2153 
2154     PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
2155 
2156     return(pythonResult);
2157 
2158   }
2159   return(NULL);
2160 }
2161 
2162 
2163 static PyObject *
cmsis_arm_cfft_q31(PyObject * obj,PyObject * args)2164 cmsis_arm_cfft_q31(PyObject *obj, PyObject *args)
2165 {
2166 
2167   PyObject *S=NULL; // input
2168   PyObject *p1=NULL; // input
2169   q31_t *p1_converted=NULL; // input
2170   uint32_t ifftFlag; // input
2171   uint32_t bitReverseFlag; // input
2172 
2173   if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
2174   {
2175 
2176     dsp_arm_cfft_instance_q31Object *selfS = (dsp_arm_cfft_instance_q31Object *)S;
2177     GETARGUMENT(p1,NPY_INT32,int32_t,int32_t);
2178 
2179     arm_cfft_q31(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2180  INT32ARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
2181 
2182     PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
2183 
2184     return(pythonResult);
2185 
2186   }
2187   return(NULL);
2188 }
2189 
2190 
2191 
2192 static PyObject *
cmsis_arm_cfft_f64(PyObject * obj,PyObject * args)2193 cmsis_arm_cfft_f64(PyObject *obj, PyObject *args)
2194 {
2195 
2196   PyObject *S=NULL; // input
2197   PyObject *p1=NULL; // input
2198   float64_t *p1_converted=NULL; // input
2199   uint32_t ifftFlag; // input
2200   uint32_t bitReverseFlag; // input
2201 
2202   if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
2203   {
2204 
2205     dsp_arm_cfft_instance_f64Object *selfS = (dsp_arm_cfft_instance_f64Object *)S;
2206     GETARGUMENT(p1,NPY_DOUBLE,double,float64_t);
2207 
2208     arm_cfft_f64(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2209     FLOAT64ARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
2210 
2211     PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
2212 
2213     return(pythonResult);
2214 
2215   }
2216   return(NULL);
2217 }
2218 
2219 
2220 static PyObject *
cmsis_arm_cfft_f32(PyObject * obj,PyObject * args)2221 cmsis_arm_cfft_f32(PyObject *obj, PyObject *args)
2222 {
2223 
2224   PyObject *S=NULL; // input
2225   PyObject *p1=NULL; // input
2226   float32_t *p1_converted=NULL; // input
2227   uint32_t ifftFlag; // input
2228   uint32_t bitReverseFlag; // input
2229 
2230   if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
2231   {
2232 
2233     dsp_arm_cfft_instance_f32Object *selfS = (dsp_arm_cfft_instance_f32Object *)S;
2234     GETARGUMENT(p1,NPY_DOUBLE,double,float32_t);
2235 
2236     arm_cfft_f32(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
2237  FLOATARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
2238 
2239     PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
2240 
2241     return(pythonResult);
2242 
2243   }
2244   return(NULL);
2245 }
2246 
2247 
2248 static PyObject *
cmsis_arm_rfft_init_q15(PyObject * obj,PyObject * args)2249 cmsis_arm_rfft_init_q15(PyObject *obj, PyObject *args)
2250 {
2251 
2252   PyObject *S=NULL; // input
2253   uint32_t fftLenReal; // input
2254   uint32_t ifftFlagR; // input
2255   uint32_t bitReverseFlag; // input
2256 
2257   if (PyArg_ParseTuple(args,"Oiii",&S,&fftLenReal,&ifftFlagR,&bitReverseFlag))
2258   {
2259 
2260     dsp_arm_rfft_instance_q15Object *selfS = (dsp_arm_rfft_instance_q15Object *)S;
2261 
2262     arm_status returnValue = arm_rfft_init_q15(selfS->instance,fftLenReal,ifftFlagR,bitReverseFlag);
2263     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2264 
2265     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2266 
2267     Py_DECREF(theReturnOBJ);
2268     return(pythonResult);
2269 
2270   }
2271   return(NULL);
2272 }
2273 
2274 
2275 static PyObject *
cmsis_arm_rfft_q15(PyObject * obj,PyObject * args)2276 cmsis_arm_rfft_q15(PyObject *obj, PyObject *args)
2277 {
2278 
2279   PyObject *S=NULL; // input
2280   PyObject *pSrc=NULL; // input
2281   q15_t *pSrc_converted=NULL; // input
2282   q15_t *pDst=NULL; // output
2283 
2284   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
2285   {
2286      int inputSize;
2287      int outputSize;
2288 
2289      dsp_arm_rfft_instance_q15Object *selfS = (dsp_arm_rfft_instance_q15Object *)S;
2290 
2291      inputSize=selfS->instance->fftLenReal;
2292      if (selfS->instance->ifftFlagR)
2293      {
2294         outputSize = inputSize;
2295      }
2296      else
2297      {
2298         outputSize = 2*inputSize;
2299      }
2300 
2301     GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
2302 
2303     pDst=PyMem_Malloc(sizeof(q15_t)*outputSize);
2304 
2305 
2306     arm_rfft_q15(selfS->instance,pSrc_converted,pDst);
2307  INT16ARRAY1(pDstOBJ,outputSize,pDst);
2308 
2309     PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
2310 
2311     FREEARGUMENT(pSrc_converted);
2312     Py_DECREF(pDstOBJ);
2313     return(pythonResult);
2314 
2315   }
2316   return(NULL);
2317 }
2318 
2319 
2320 static PyObject *
cmsis_arm_rfft_init_q31(PyObject * obj,PyObject * args)2321 cmsis_arm_rfft_init_q31(PyObject *obj, PyObject *args)
2322 {
2323 
2324   PyObject *S=NULL; // input
2325   uint32_t fftLenReal; // input
2326   uint32_t ifftFlagR; // input
2327   uint32_t bitReverseFlag; // input
2328 
2329   if (PyArg_ParseTuple(args,"Oiii",&S,&fftLenReal,&ifftFlagR,&bitReverseFlag))
2330   {
2331 
2332     dsp_arm_rfft_instance_q31Object *selfS = (dsp_arm_rfft_instance_q31Object *)S;
2333 
2334     arm_status returnValue = arm_rfft_init_q31(selfS->instance,fftLenReal,ifftFlagR,bitReverseFlag);
2335     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2336 
2337     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2338 
2339     Py_DECREF(theReturnOBJ);
2340     return(pythonResult);
2341 
2342   }
2343   return(NULL);
2344 }
2345 
2346 
2347 static PyObject *
cmsis_arm_rfft_q31(PyObject * obj,PyObject * args)2348 cmsis_arm_rfft_q31(PyObject *obj, PyObject *args)
2349 {
2350 
2351   PyObject *S=NULL; // input
2352   PyObject *pSrc=NULL; // input
2353   q31_t *pSrc_converted=NULL; // input
2354   q31_t *pDst=NULL; // output
2355 
2356 
2357 
2358   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
2359   {
2360      int inputSize;
2361      int outputSize;
2362 
2363      dsp_arm_rfft_instance_q31Object *selfS = (dsp_arm_rfft_instance_q31Object *)S;
2364 
2365      inputSize=selfS->instance->fftLenReal;
2366      if (selfS->instance->ifftFlagR)
2367      {
2368         outputSize = inputSize;
2369      }
2370      else
2371      {
2372         outputSize = 2*inputSize;
2373      }
2374 
2375     GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
2376 
2377     pDst=PyMem_Malloc(sizeof(q31_t)*outputSize);
2378 
2379 
2380     arm_rfft_q31(selfS->instance,pSrc_converted,pDst);
2381  INT32ARRAY1(pDstOBJ,outputSize,pDst);
2382 
2383     PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
2384 
2385     FREEARGUMENT(pSrc_converted);
2386     Py_DECREF(pDstOBJ);
2387     return(pythonResult);
2388 
2389   }
2390   return(NULL);
2391 }
2392 
2393 
2394 static PyObject *
cmsis_arm_rfft_init_f32(PyObject * obj,PyObject * args)2395 cmsis_arm_rfft_init_f32(PyObject *obj, PyObject *args)
2396 {
2397 
2398   PyObject *S=NULL; // input
2399   PyObject *S_CFFT=NULL; // input
2400   uint32_t fftLenReal; // input
2401   uint32_t ifftFlagR; // input
2402   uint32_t bitReverseFlag; // input
2403 
2404   if (PyArg_ParseTuple(args,"OOiii",&S,&S_CFFT,&fftLenReal,&ifftFlagR,&bitReverseFlag))
2405   {
2406 
2407     dsp_arm_rfft_instance_f32Object *selfS = (dsp_arm_rfft_instance_f32Object *)S;
2408     dsp_arm_cfft_radix4_instance_f32Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_f32Object *)S_CFFT;
2409 
2410     arm_status returnValue = arm_rfft_init_f32(selfS->instance,selfS_CFFT->instance,fftLenReal,ifftFlagR,bitReverseFlag);
2411     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2412 
2413     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2414 
2415     Py_DECREF(theReturnOBJ);
2416     return(pythonResult);
2417 
2418   }
2419   return(NULL);
2420 }
2421 
2422 
2423 static PyObject *
cmsis_arm_rfft_f32(PyObject * obj,PyObject * args)2424 cmsis_arm_rfft_f32(PyObject *obj, PyObject *args)
2425 {
2426 
2427   PyObject *S=NULL; // input
2428   PyObject *pSrc=NULL; // input
2429   float32_t *pSrc_converted=NULL; // input
2430   float32_t *pDst=NULL; // output
2431 
2432   if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
2433   {
2434 
2435     dsp_arm_rfft_instance_f32Object *selfS = (dsp_arm_rfft_instance_f32Object *)S;
2436     GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
2437 
2438     pDst=PyMem_Malloc(sizeof(float32_t)*2*selfS->instance->fftLenReal);
2439 
2440 
2441     arm_rfft_f32(selfS->instance,pSrc_converted,pDst);
2442  FLOATARRAY1(pDstOBJ,selfS->instance->fftLenReal+1,pDst);
2443 
2444     PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
2445 
2446     FREEARGUMENT(pSrc_converted);
2447     Py_DECREF(pDstOBJ);
2448     return(pythonResult);
2449 
2450   }
2451   return(NULL);
2452 }
2453 
2454 static PyObject *
cmsis_arm_rfft_fast_init_f64(PyObject * obj,PyObject * args)2455 cmsis_arm_rfft_fast_init_f64(PyObject *obj, PyObject *args)
2456 {
2457 
2458   PyObject *S=NULL; // input
2459   uint16_t fftLen; // input
2460 
2461   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2462   {
2463 
2464     dsp_arm_rfft_fast_instance_f64Object *selfS = (dsp_arm_rfft_fast_instance_f64Object *)S;
2465 
2466     arm_status returnValue = arm_rfft_fast_init_f64(selfS->instance,fftLen);
2467     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2468 
2469     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2470 
2471     Py_DECREF(theReturnOBJ);
2472     return(pythonResult);
2473 
2474   }
2475   return(NULL);
2476 }
2477 
2478 
2479 
2480 static PyObject *
cmsis_arm_rfft_fast_f64(PyObject * obj,PyObject * args)2481 cmsis_arm_rfft_fast_f64(PyObject *obj, PyObject *args)
2482 {
2483 
2484   PyObject *S=NULL; // input
2485   PyObject *p=NULL; // input
2486   float64_t *p_converted=NULL; // input
2487   float64_t *pOut=NULL; // output
2488   uint32_t ifftFlag; // input
2489 
2490   if (PyArg_ParseTuple(args,"OOi",&S,&p,&ifftFlag))
2491   {
2492 
2493     dsp_arm_rfft_fast_instance_f64Object *selfS = (dsp_arm_rfft_fast_instance_f64Object *)S;
2494     GETARGUMENT(p,NPY_DOUBLE,double,float64_t);
2495 
2496     pOut=PyMem_Malloc(sizeof(float64_t)*selfS->instance->fftLenRFFT);
2497 
2498 
2499     arm_rfft_fast_f64(selfS->instance,p_converted,pOut,(uint8_t)ifftFlag);
2500  FLOAT64ARRAY1(pOutOBJ,selfS->instance->fftLenRFFT,pOut);
2501 
2502     PyObject *pythonResult = Py_BuildValue("O",pOutOBJ);
2503 
2504     FREEARGUMENT(p_converted);
2505     Py_DECREF(pOutOBJ);
2506     return(pythonResult);
2507 
2508   }
2509   return(NULL);
2510 }
2511 
2512 
2513 
2514 static PyObject *
cmsis_arm_rfft_fast_init_f32(PyObject * obj,PyObject * args)2515 cmsis_arm_rfft_fast_init_f32(PyObject *obj, PyObject *args)
2516 {
2517 
2518   PyObject *S=NULL; // input
2519   uint16_t fftLen; // input
2520 
2521   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2522   {
2523 
2524     dsp_arm_rfft_fast_instance_f32Object *selfS = (dsp_arm_rfft_fast_instance_f32Object *)S;
2525 
2526     arm_status returnValue = arm_rfft_fast_init_f32(selfS->instance,fftLen);
2527     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2528 
2529     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2530 
2531     Py_DECREF(theReturnOBJ);
2532     return(pythonResult);
2533 
2534   }
2535   return(NULL);
2536 }
2537 
2538 
2539 
2540 static PyObject *
cmsis_arm_rfft_fast_f32(PyObject * obj,PyObject * args)2541 cmsis_arm_rfft_fast_f32(PyObject *obj, PyObject *args)
2542 {
2543 
2544   PyObject *S=NULL; // input
2545   PyObject *p=NULL; // input
2546   float32_t *p_converted=NULL; // input
2547   float32_t *pOut=NULL; // output
2548   uint32_t ifftFlag; // input
2549 
2550   if (PyArg_ParseTuple(args,"OOi",&S,&p,&ifftFlag))
2551   {
2552 
2553     dsp_arm_rfft_fast_instance_f32Object *selfS = (dsp_arm_rfft_fast_instance_f32Object *)S;
2554     GETARGUMENT(p,NPY_DOUBLE,double,float32_t);
2555 
2556     pOut=PyMem_Malloc(sizeof(float32_t)*(selfS->instance->fftLenRFFT));
2557 
2558 
2559     arm_rfft_fast_f32(selfS->instance,p_converted,pOut,(uint8_t)ifftFlag);
2560  FLOATARRAY1(pOutOBJ,(selfS->instance->fftLenRFFT),pOut);
2561 
2562     PyObject *pythonResult = Py_BuildValue("O",pOutOBJ);
2563 
2564     FREEARGUMENT(p_converted);
2565     Py_DECREF(pOutOBJ);
2566     return(pythonResult);
2567 
2568   }
2569   return(NULL);
2570 }
2571 
2572 
2573 static PyObject *
cmsis_arm_dct4_init_f32(PyObject * obj,PyObject * args)2574 cmsis_arm_dct4_init_f32(PyObject *obj, PyObject *args)
2575 {
2576 
2577   PyObject *S=NULL; // input
2578   PyObject *S_RFFT=NULL; // input
2579   PyObject *S_CFFT=NULL; // input
2580   uint16_t N; // input
2581   uint16_t Nby2; // input
2582   float32_t normalize; // input
2583 
2584   if (PyArg_ParseTuple(args,"OOOhhf",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
2585   {
2586 
2587     dsp_arm_dct4_instance_f32Object *selfS = (dsp_arm_dct4_instance_f32Object *)S;
2588     dsp_arm_rfft_instance_f32Object *selfS_RFFT = (dsp_arm_rfft_instance_f32Object *)S_RFFT;
2589     dsp_arm_cfft_radix4_instance_f32Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_f32Object *)S_CFFT;
2590     uint32_t outputLength = selfS->instance->N ;
2591 
2592     arm_status returnValue = arm_dct4_init_f32(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
2593     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2594 
2595     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2596 
2597     Py_DECREF(theReturnOBJ);
2598     return(pythonResult);
2599 
2600   }
2601   return(NULL);
2602 }
2603 
2604 
2605 static PyObject *
cmsis_arm_dct4_f32(PyObject * obj,PyObject * args)2606 cmsis_arm_dct4_f32(PyObject *obj, PyObject *args)
2607 {
2608 
2609   PyObject *S=NULL; // input
2610   PyObject *pState=NULL; // input
2611   float32_t *pState_converted=NULL; // input
2612   PyObject *pInlineBuffer=NULL; // input
2613   float32_t *pInlineBuffer_converted=NULL; // input
2614 
2615   if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
2616   {
2617 
2618     dsp_arm_dct4_instance_f32Object *selfS = (dsp_arm_dct4_instance_f32Object *)S;
2619     GETARGUMENT(pState,NPY_DOUBLE,double,float32_t);
2620     GETARGUMENT(pInlineBuffer,NPY_DOUBLE,double,float32_t);
2621     uint32_t outputLength = selfS->instance->N ;
2622 
2623     arm_dct4_f32(selfS->instance,pState_converted,pInlineBuffer_converted);
2624  FLOATARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
2625 
2626     PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
2627 
2628     FREEARGUMENT(pState_converted);
2629     return(pythonResult);
2630 
2631   }
2632   return(NULL);
2633 }
2634 
2635 
2636 static PyObject *
cmsis_arm_dct4_init_q31(PyObject * obj,PyObject * args)2637 cmsis_arm_dct4_init_q31(PyObject *obj, PyObject *args)
2638 {
2639 
2640   PyObject *S=NULL; // input
2641   PyObject *S_RFFT=NULL; // input
2642   PyObject *S_CFFT=NULL; // input
2643   uint16_t N; // input
2644   uint16_t Nby2; // input
2645   q31_t normalize; // input
2646 
2647   if (PyArg_ParseTuple(args,"OOOhhi",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
2648   {
2649 
2650     dsp_arm_dct4_instance_q31Object *selfS = (dsp_arm_dct4_instance_q31Object *)S;
2651     dsp_arm_rfft_instance_q31Object *selfS_RFFT = (dsp_arm_rfft_instance_q31Object *)S_RFFT;
2652     dsp_arm_cfft_radix4_instance_q31Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_q31Object *)S_CFFT;
2653     uint32_t outputLength = selfS->instance->N ;
2654 
2655     arm_status returnValue = arm_dct4_init_q31(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
2656     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2657 
2658     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2659 
2660     Py_DECREF(theReturnOBJ);
2661     return(pythonResult);
2662 
2663   }
2664   return(NULL);
2665 }
2666 
2667 
2668 static PyObject *
cmsis_arm_dct4_q31(PyObject * obj,PyObject * args)2669 cmsis_arm_dct4_q31(PyObject *obj, PyObject *args)
2670 {
2671 
2672   PyObject *S=NULL; // input
2673   PyObject *pState=NULL; // input
2674   q31_t *pState_converted=NULL; // input
2675   PyObject *pInlineBuffer=NULL; // input
2676   q31_t *pInlineBuffer_converted=NULL; // input
2677 
2678   if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
2679   {
2680 
2681     dsp_arm_dct4_instance_q31Object *selfS = (dsp_arm_dct4_instance_q31Object *)S;
2682     GETARGUMENT(pState,NPY_INT32,int32_t,int32_t);
2683     GETARGUMENT(pInlineBuffer,NPY_INT32,int32_t,int32_t);
2684     uint32_t outputLength = selfS->instance->N ;
2685 
2686     arm_dct4_q31(selfS->instance,pState_converted,pInlineBuffer_converted);
2687  INT32ARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
2688 
2689     PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
2690 
2691     FREEARGUMENT(pState_converted);
2692     return(pythonResult);
2693 
2694   }
2695   return(NULL);
2696 }
2697 
2698 
2699 static PyObject *
cmsis_arm_dct4_init_q15(PyObject * obj,PyObject * args)2700 cmsis_arm_dct4_init_q15(PyObject *obj, PyObject *args)
2701 {
2702 
2703   PyObject *S=NULL; // input
2704   PyObject *S_RFFT=NULL; // input
2705   PyObject *S_CFFT=NULL; // input
2706   uint16_t N; // input
2707   uint16_t Nby2; // input
2708   q15_t normalize; // input
2709 
2710   if (PyArg_ParseTuple(args,"OOOhhh",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
2711   {
2712 
2713     dsp_arm_dct4_instance_q15Object *selfS = (dsp_arm_dct4_instance_q15Object *)S;
2714     dsp_arm_rfft_instance_q15Object *selfS_RFFT = (dsp_arm_rfft_instance_q15Object *)S_RFFT;
2715     dsp_arm_cfft_radix4_instance_q15Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_q15Object *)S_CFFT;
2716     uint32_t outputLength = selfS->instance->N ;
2717 
2718     arm_status returnValue = arm_dct4_init_q15(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
2719     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2720 
2721     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2722 
2723     Py_DECREF(theReturnOBJ);
2724     return(pythonResult);
2725 
2726   }
2727   return(NULL);
2728 }
2729 
2730 
2731 static PyObject *
cmsis_arm_dct4_q15(PyObject * obj,PyObject * args)2732 cmsis_arm_dct4_q15(PyObject *obj, PyObject *args)
2733 {
2734 
2735   PyObject *S=NULL; // input
2736   PyObject *pState=NULL; // input
2737   q15_t *pState_converted=NULL; // input
2738   PyObject *pInlineBuffer=NULL; // input
2739   q15_t *pInlineBuffer_converted=NULL; // input
2740 
2741   if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
2742   {
2743 
2744     dsp_arm_dct4_instance_q15Object *selfS = (dsp_arm_dct4_instance_q15Object *)S;
2745     GETARGUMENT(pState,NPY_INT16,int16_t,int16_t);
2746     GETARGUMENT(pInlineBuffer,NPY_INT16,int16_t,int16_t);
2747     uint32_t outputLength = selfS->instance->N ;
2748 
2749     arm_dct4_q15(selfS->instance,pState_converted,pInlineBuffer_converted);
2750  INT16ARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
2751 
2752     PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
2753 
2754     FREEARGUMENT(pState_converted);
2755     return(pythonResult);
2756 
2757   }
2758   return(NULL);
2759 }
2760 
2761 
2762 
2763 
2764 static PyObject *
cmsis_arm_cfft_init_f32(PyObject * obj,PyObject * args)2765 cmsis_arm_cfft_init_f32(PyObject *obj, PyObject *args)
2766 {
2767 
2768   PyObject *S=NULL; // input
2769   uint16_t fftLen; // input
2770 
2771   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2772   {
2773 
2774     dsp_arm_cfft_instance_f32Object *selfS = (dsp_arm_cfft_instance_f32Object *)S;
2775 
2776     arm_status returnValue = arm_cfft_init_f32(selfS->instance,fftLen);
2777     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2778 
2779     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2780 
2781     Py_DECREF(theReturnOBJ);
2782     return(pythonResult);
2783 
2784   }
2785   return(NULL);
2786 }
2787 
2788 static PyObject *
cmsis_arm_cfft_init_f64(PyObject * obj,PyObject * args)2789 cmsis_arm_cfft_init_f64(PyObject *obj, PyObject *args)
2790 {
2791 
2792   PyObject *S=NULL; // input
2793   uint16_t fftLen; // input
2794 
2795   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2796   {
2797 
2798     dsp_arm_cfft_instance_f64Object *selfS = (dsp_arm_cfft_instance_f64Object *)S;
2799 
2800     arm_status returnValue = arm_cfft_init_f64(selfS->instance,fftLen);
2801     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2802 
2803     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2804 
2805     Py_DECREF(theReturnOBJ);
2806     return(pythonResult);
2807 
2808   }
2809   return(NULL);
2810 }
2811 
2812 static PyObject *
cmsis_arm_cfft_init_q31(PyObject * obj,PyObject * args)2813 cmsis_arm_cfft_init_q31(PyObject *obj, PyObject *args)
2814 {
2815 
2816   PyObject *S=NULL; // input
2817   uint16_t fftLen; // input
2818 
2819   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2820   {
2821 
2822     dsp_arm_cfft_instance_q31Object *selfS = (dsp_arm_cfft_instance_q31Object *)S;
2823 
2824     arm_status returnValue = arm_cfft_init_q31(selfS->instance,fftLen);
2825     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2826 
2827     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2828 
2829     Py_DECREF(theReturnOBJ);
2830     return(pythonResult);
2831 
2832   }
2833   return(NULL);
2834 }
2835 
2836 
2837 static PyObject *
cmsis_arm_cfft_init_q15(PyObject * obj,PyObject * args)2838 cmsis_arm_cfft_init_q15(PyObject *obj, PyObject *args)
2839 {
2840 
2841   PyObject *S=NULL; // input
2842   uint16_t fftLen; // input
2843 
2844   if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
2845   {
2846 
2847     dsp_arm_cfft_instance_q15Object *selfS = (dsp_arm_cfft_instance_q15Object *)S;
2848 
2849     arm_status returnValue = arm_cfft_init_q15(selfS->instance,fftLen);
2850     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2851 
2852     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2853 
2854     Py_DECREF(theReturnOBJ);
2855     return(pythonResult);
2856 
2857   }
2858   return(NULL);
2859 }
2860 
2861 
2862 
2863 /*
2864 
2865 MFCC
2866 
2867 */
2868 
2869 static PyObject *
cmsis_arm_mfcc_init_f32(PyObject * obj,PyObject * args)2870 cmsis_arm_mfcc_init_f32(PyObject *obj, PyObject *args)
2871 {
2872 
2873   PyObject *S=NULL; // input
2874   uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
2875 
2876   PyObject *pdctCoefs=NULL; // input
2877   float32_t *pdctCoefs_converted=NULL; // input
2878 
2879   PyObject *pfilterCoefs=NULL; // input
2880   float32_t *pfilterCoefs_converted=NULL; // input
2881 
2882   PyObject *pwindowCoefs=NULL; // input
2883   float32_t *pwindowCoefs_converted=NULL; // input
2884 
2885   PyObject *pfilterPos=NULL; // input
2886   uint32_t *pfilterPos_converted=NULL; // input
2887 
2888   PyObject *pfilterLengths=NULL; // input
2889   uint32_t *pfilterLengths_converted=NULL; // input
2890 
2891   if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
2892     &pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
2893   {
2894 
2895     dsp_arm_mfcc_instance_f32Object *selfS = (dsp_arm_mfcc_instance_f32Object *)S;
2896 
2897     GETARGUMENT(pdctCoefs,NPY_DOUBLE,double,float32_t);
2898     GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
2899     GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
2900     GETARGUMENT(pfilterCoefs,NPY_DOUBLE,double,float32_t);
2901     GETARGUMENT(pwindowCoefs,NPY_DOUBLE,double,float32_t);
2902 
2903 
2904     arm_status returnValue = arm_mfcc_init_f32(selfS->instance,
2905         fftLen,nbMelFilters,nbDctOutputs,
2906         pdctCoefs_converted,
2907         pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
2908         pwindowCoefs_converted);
2909     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
2910 
2911     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
2912 
2913     Py_DECREF(theReturnOBJ);
2914     return(pythonResult);
2915 
2916   }
2917   return(NULL);
2918 }
2919 
2920 static PyObject *
cmsis_arm_mfcc_f32(PyObject * obj,PyObject * args)2921 cmsis_arm_mfcc_f32(PyObject *obj, PyObject *args)
2922 {
2923 
2924   PyObject *S=NULL; // input
2925   PyObject *p1=NULL; // input
2926   float32_t *p1_converted=NULL; // input
2927 
2928   PyObject *tmp=NULL; // input
2929   float32_t *tmp_converted=NULL; // input
2930 
2931   float32_t *pDst;
2932   if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
2933   {
2934 
2935     dsp_arm_mfcc_instance_f32Object *selfS = (dsp_arm_mfcc_instance_f32Object *)S;
2936     GETARGUMENT(p1,NPY_DOUBLE,double,float32_t);
2937     GETARGUMENT(tmp,NPY_DOUBLE,double,float32_t);
2938 
2939     pDst=PyMem_Malloc(sizeof(float32_t)*selfS->instance->nbDctOutputs);
2940 
2941     arm_mfcc_f32(selfS->instance,p1_converted,pDst,tmp_converted);
2942 
2943     FLOATARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
2944 
2945     PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
2946     Py_DECREF(pDstOBJ);
2947 
2948     FREEARGUMENT(p1_converted);
2949     FREEARGUMENT(tmp_converted);
2950 
2951 
2952 
2953 
2954     return(pythonResult);
2955 
2956   }
2957   return(NULL);
2958 }
2959 
2960 static PyObject *
cmsis_arm_mfcc_init_q15(PyObject * obj,PyObject * args)2961 cmsis_arm_mfcc_init_q15(PyObject *obj, PyObject *args)
2962 {
2963 
2964   PyObject *S=NULL; // input
2965   uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
2966 
2967   PyObject *pdctCoefs=NULL; // input
2968   q15_t *pdctCoefs_converted=NULL; // input
2969 
2970   PyObject *pfilterCoefs=NULL; // input
2971   q15_t *pfilterCoefs_converted=NULL; // input
2972 
2973   PyObject *pwindowCoefs=NULL; // input
2974   q15_t *pwindowCoefs_converted=NULL; // input
2975 
2976   PyObject *pfilterPos=NULL; // input
2977   uint32_t *pfilterPos_converted=NULL; // input
2978 
2979   PyObject *pfilterLengths=NULL; // input
2980   uint32_t *pfilterLengths_converted=NULL; // input
2981 
2982   if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
2983     &pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
2984   {
2985 
2986     dsp_arm_mfcc_instance_q15Object *selfS = (dsp_arm_mfcc_instance_q15Object *)S;
2987 
2988     GETARGUMENT(pdctCoefs,NPY_INT16,int16_t,int16_t);
2989     GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
2990     GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
2991     GETARGUMENT(pfilterCoefs,NPY_INT16,int16_t,int16_t);
2992     GETARGUMENT(pwindowCoefs,NPY_INT16,int16_t,int16_t);
2993 
2994 
2995     arm_status returnValue = arm_mfcc_init_q15(selfS->instance,
2996         fftLen,nbMelFilters,nbDctOutputs,
2997         pdctCoefs_converted,
2998         pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
2999         pwindowCoefs_converted);
3000     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
3001 
3002     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
3003 
3004     Py_DECREF(theReturnOBJ);
3005     return(pythonResult);
3006 
3007   }
3008   return(NULL);
3009 }
3010 
3011 static PyObject *
cmsis_arm_mfcc_q15(PyObject * obj,PyObject * args)3012 cmsis_arm_mfcc_q15(PyObject *obj, PyObject *args)
3013 {
3014 
3015   PyObject *S=NULL; // input
3016   PyObject *p1=NULL; // input
3017   q15_t *p1_converted=NULL; // input
3018 
3019   PyObject *tmp=NULL; // input
3020   q31_t *tmp_converted=NULL; // input
3021 
3022   q15_t *pDst;
3023   if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
3024   {
3025 
3026     dsp_arm_mfcc_instance_q15Object *selfS = (dsp_arm_mfcc_instance_q15Object *)S;
3027     GETARGUMENT(p1,NPY_INT16,int16_t,int16_t);
3028     GETARGUMENT(tmp,NPY_INT32,int32_t,int32_t);
3029 
3030     pDst=PyMem_Malloc(sizeof(q15_t)*selfS->instance->nbDctOutputs);
3031 
3032     arm_status status = arm_mfcc_q15(selfS->instance,p1_converted,pDst,tmp_converted);
3033 
3034     INT16ARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
3035 
3036     PyObject* theReturnOBJ=Py_BuildValue("i",status);
3037     PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ);
3038     Py_DECREF(pDstOBJ);
3039     Py_DECREF(theReturnOBJ);
3040 
3041     FREEARGUMENT(p1_converted);
3042     FREEARGUMENT(tmp_converted);
3043 
3044 
3045 
3046     return(pythonResult);
3047 
3048   }
3049   return(NULL);
3050 }
3051 
3052 static PyObject *
cmsis_arm_mfcc_init_q31(PyObject * obj,PyObject * args)3053 cmsis_arm_mfcc_init_q31(PyObject *obj, PyObject *args)
3054 {
3055 
3056   PyObject *S=NULL; // input
3057   uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
3058 
3059   PyObject *pdctCoefs=NULL; // input
3060   q31_t *pdctCoefs_converted=NULL; // input
3061 
3062   PyObject *pfilterCoefs=NULL; // input
3063   q31_t *pfilterCoefs_converted=NULL; // input
3064 
3065   PyObject *pwindowCoefs=NULL; // input
3066   q31_t *pwindowCoefs_converted=NULL; // input
3067 
3068   PyObject *pfilterPos=NULL; // input
3069   uint32_t *pfilterPos_converted=NULL; // input
3070 
3071   PyObject *pfilterLengths=NULL; // input
3072   uint32_t *pfilterLengths_converted=NULL; // input
3073 
3074   if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
3075     &pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
3076   {
3077 
3078     dsp_arm_mfcc_instance_q31Object *selfS = (dsp_arm_mfcc_instance_q31Object *)S;
3079 
3080     GETARGUMENT(pdctCoefs,NPY_INT32,int32_t,int32_t);
3081     GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
3082     GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
3083     GETARGUMENT(pfilterCoefs,NPY_INT32,int32_t,int32_t);
3084     GETARGUMENT(pwindowCoefs,NPY_INT32,int32_t,int32_t);
3085 
3086 
3087     arm_status returnValue = arm_mfcc_init_q31(selfS->instance,
3088         fftLen,nbMelFilters,nbDctOutputs,
3089         pdctCoefs_converted,
3090         pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
3091         pwindowCoefs_converted);
3092     PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
3093 
3094     PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
3095 
3096     Py_DECREF(theReturnOBJ);
3097     return(pythonResult);
3098 
3099   }
3100   return(NULL);
3101 }
3102 
3103 static PyObject *
cmsis_arm_mfcc_q31(PyObject * obj,PyObject * args)3104 cmsis_arm_mfcc_q31(PyObject *obj, PyObject *args)
3105 {
3106 
3107   PyObject *S=NULL; // input
3108   PyObject *p1=NULL; // input
3109   q31_t *p1_converted=NULL; // input
3110 
3111   PyObject *tmp=NULL; // input
3112   q31_t *tmp_converted=NULL; // input
3113 
3114   q31_t *pDst;
3115   if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
3116   {
3117 
3118     dsp_arm_mfcc_instance_q31Object *selfS = (dsp_arm_mfcc_instance_q31Object *)S;
3119     GETARGUMENT(p1,NPY_INT32,int32_t,int32_t);
3120     GETARGUMENT(tmp,NPY_INT32,int32_t,int32_t);
3121 
3122     pDst=PyMem_Malloc(sizeof(q31_t)*selfS->instance->nbDctOutputs);
3123 
3124     arm_status status = arm_mfcc_q31(selfS->instance,p1_converted,pDst,tmp_converted);
3125 
3126     INT32ARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
3127 
3128     PyObject* theReturnOBJ=Py_BuildValue("i",status);
3129     PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ);
3130     Py_DECREF(pDstOBJ);
3131     Py_DECREF(theReturnOBJ);
3132 
3133     FREEARGUMENT(p1_converted);
3134     FREEARGUMENT(tmp_converted);
3135 
3136 
3137 
3138     return(pythonResult);
3139 
3140   }
3141   return(NULL);
3142 }
3143 
3144 
3145 static PyMethodDef CMSISDSPMethods[] = {
3146 
3147 
3148 
3149 
3150 {"arm_cfft_radix2_init_q15",  cmsis_arm_cfft_radix2_init_q15, METH_VARARGS,""},
3151 {"arm_cfft_radix2_q15",  cmsis_arm_cfft_radix2_q15, METH_VARARGS,""},
3152 {"arm_cfft_radix4_init_q15",  cmsis_arm_cfft_radix4_init_q15, METH_VARARGS,""},
3153 {"arm_cfft_radix4_q15",  cmsis_arm_cfft_radix4_q15, METH_VARARGS,""},
3154 {"arm_cfft_radix2_init_q31",  cmsis_arm_cfft_radix2_init_q31, METH_VARARGS,""},
3155 {"arm_cfft_radix2_q31",  cmsis_arm_cfft_radix2_q31, METH_VARARGS,""},
3156 {"arm_cfft_radix4_q31",  cmsis_arm_cfft_radix4_q31, METH_VARARGS,""},
3157 {"arm_cfft_radix4_init_q31",  cmsis_arm_cfft_radix4_init_q31, METH_VARARGS,""},
3158 {"arm_cfft_radix2_init_f32",  cmsis_arm_cfft_radix2_init_f32, METH_VARARGS,""},
3159 {"arm_cfft_radix2_f32",  cmsis_arm_cfft_radix2_f32, METH_VARARGS,""},
3160 {"arm_cfft_radix4_init_f32",  cmsis_arm_cfft_radix4_init_f32, METH_VARARGS,""},
3161 {"arm_cfft_radix4_f32",  cmsis_arm_cfft_radix4_f32, METH_VARARGS,""},
3162 {"arm_cfft_q15",  cmsis_arm_cfft_q15, METH_VARARGS,""},
3163 {"arm_cfft_q31",  cmsis_arm_cfft_q31, METH_VARARGS,""},
3164 {"arm_cfft_f64",  cmsis_arm_cfft_f64, METH_VARARGS,""},
3165 {"arm_cfft_f32",  cmsis_arm_cfft_f32, METH_VARARGS,""},
3166 {"arm_rfft_init_q15",  cmsis_arm_rfft_init_q15, METH_VARARGS,""},
3167 {"arm_rfft_q15",  cmsis_arm_rfft_q15, METH_VARARGS,""},
3168 {"arm_rfft_init_q31",  cmsis_arm_rfft_init_q31, METH_VARARGS,""},
3169 {"arm_rfft_q31",  cmsis_arm_rfft_q31, METH_VARARGS,""},
3170 {"arm_rfft_fast_init_f64",  cmsis_arm_rfft_fast_init_f64, METH_VARARGS,""},
3171 {"arm_rfft_fast_f64",  cmsis_arm_rfft_fast_f64, METH_VARARGS,""},
3172 {"arm_rfft_fast_f32",  cmsis_arm_rfft_fast_f32, METH_VARARGS,""},
3173 {"arm_rfft_fast_init_f32",  cmsis_arm_rfft_fast_init_f32, METH_VARARGS,""},
3174 {"arm_rfft_fast_f32",  cmsis_arm_rfft_fast_f32, METH_VARARGS,""},
3175 {"arm_dct4_init_f32",  cmsis_arm_dct4_init_f32, METH_VARARGS,""},
3176 {"arm_dct4_f32",  cmsis_arm_dct4_f32, METH_VARARGS,""},
3177 {"arm_dct4_init_q31",  cmsis_arm_dct4_init_q31, METH_VARARGS,""},
3178 {"arm_dct4_q31",  cmsis_arm_dct4_q31, METH_VARARGS,""},
3179 {"arm_dct4_init_q15",  cmsis_arm_dct4_init_q15, METH_VARARGS,""},
3180 {"arm_dct4_q15",  cmsis_arm_dct4_q15, METH_VARARGS,""},
3181 
3182 
3183 {"arm_cfft_init_f32",  cmsis_arm_cfft_init_f32, METH_VARARGS,""},
3184 {"arm_cfft_init_f64",  cmsis_arm_cfft_init_f64, METH_VARARGS,""},
3185 {"arm_cfft_init_q31",  cmsis_arm_cfft_init_q31, METH_VARARGS,""},
3186 {"arm_cfft_init_q15",  cmsis_arm_cfft_init_q15, METH_VARARGS,""},
3187 
3188 
3189     {"arm_mfcc_init_f32",  cmsis_arm_mfcc_init_f32, METH_VARARGS,""},
3190     {"arm_mfcc_f32",  cmsis_arm_mfcc_f32, METH_VARARGS,""},
3191     {"arm_mfcc_init_q15",  cmsis_arm_mfcc_init_q15, METH_VARARGS,""},
3192     {"arm_mfcc_q15",  cmsis_arm_mfcc_q15, METH_VARARGS,""},
3193     {"arm_mfcc_init_q31",  cmsis_arm_mfcc_init_q31, METH_VARARGS,""},
3194     {"arm_mfcc_q31",  cmsis_arm_mfcc_q31, METH_VARARGS,""},
3195 
3196     {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
3197     {NULL, NULL, 0, NULL}        /* Sentinel */
3198 };
3199 
3200 #ifdef IS_PY3K
cmsisdsp_traverse(PyObject * m,visitproc visit,void * arg)3201 static int cmsisdsp_traverse(PyObject *m, visitproc visit, void *arg) {
3202     Py_VISIT(GETSTATE(m)->error);
3203     return 0;
3204 }
3205 
cmsisdsp_clear(PyObject * m)3206 static int cmsisdsp_clear(PyObject *m) {
3207     Py_CLEAR(GETSTATE(m)->error);
3208     return 0;
3209 }
3210 
3211 
3212 static struct PyModuleDef moduledef = {
3213         PyModuleDef_HEAD_INIT,
3214         MODNAME,
3215         NULL,
3216         sizeof(struct module_state),
3217         CMSISDSPMethods,
3218         NULL,
3219         cmsisdsp_traverse,
3220         cmsisdsp_clear,
3221         NULL
3222 };
3223 
3224 #define INITERROR return NULL
3225 
3226 PyMODINIT_FUNC
CAT(PyInit_,MODINITNAME)3227 CAT(PyInit_,MODINITNAME)(void)
3228 
3229 
3230 #else
3231 #define INITERROR return
3232 
3233 void CAT(init,MODINITNAME)(void)
3234 #endif
3235 {
3236     import_array();
3237 
3238   #ifdef IS_PY3K
3239     PyObject *module = PyModule_Create(&moduledef);
3240   #else
3241     PyObject *module = Py_InitModule(MODNAME, CMSISDSPMethods);
3242   #endif
3243 
3244   if (module == NULL)
3245       INITERROR;
3246   struct module_state *st = GETSTATE(module);
3247 
3248   st->error = PyErr_NewException(MODNAME".Error", NULL, NULL);
3249   if (st->error == NULL) {
3250       Py_DECREF(module);
3251       INITERROR;
3252   }
3253 
3254 
3255   typeRegistration(module);
3256 
3257   #ifdef IS_PY3K
3258     return module;
3259   #endif
3260 }