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_statistics"
30 #define MODINITNAME cmsisdsp_statistics
31
32 #include "cmsisdsp_module.h"
33
34
35 NUMPYVECTORFROMBUFFER(f32,float32_t,NPY_FLOAT);
36
37
38
typeRegistration(PyObject * module)39 void typeRegistration(PyObject *module) {
40
41
42 }
43
44
45
46
47 static PyObject *
cmsis_arm_power_q31(PyObject * obj,PyObject * args)48 cmsis_arm_power_q31(PyObject *obj, PyObject *args)
49 {
50
51 PyObject *pSrc=NULL; // input
52 q31_t *pSrc_converted=NULL; // input
53 uint32_t blockSize; // input
54 q63_t pResult; // output
55
56 if (PyArg_ParseTuple(args,"O",&pSrc))
57 {
58
59 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
60 blockSize = arraySizepSrc ;
61
62
63 arm_power_q31(pSrc_converted,blockSize,&pResult);
64 PyObject* pResultOBJ=Py_BuildValue("L",pResult);
65
66 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
67
68 FREEARGUMENT(pSrc_converted);
69 Py_DECREF(pResultOBJ);
70 return(pythonResult);
71
72 }
73 return(NULL);
74 }
75
76
77 static PyObject *
cmsis_arm_power_f32(PyObject * obj,PyObject * args)78 cmsis_arm_power_f32(PyObject *obj, PyObject *args)
79 {
80
81 PyObject *pSrc=NULL; // input
82 float32_t *pSrc_converted=NULL; // input
83 uint32_t blockSize; // input
84 float32_t pResult; // output
85
86 if (PyArg_ParseTuple(args,"O",&pSrc))
87 {
88
89 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
90 blockSize = arraySizepSrc ;
91
92
93 arm_power_f32(pSrc_converted,blockSize,&pResult);
94 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
95
96 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
97
98 FREEARGUMENT(pSrc_converted);
99 Py_DECREF(pResultOBJ);
100 return(pythonResult);
101
102 }
103 return(NULL);
104 }
105
106 static PyObject *
cmsis_arm_power_f64(PyObject * obj,PyObject * args)107 cmsis_arm_power_f64(PyObject *obj, PyObject *args)
108 {
109
110 PyObject *pSrc=NULL; // input
111 float64_t *pSrc_converted=NULL; // input
112 uint32_t blockSize; // input
113 float64_t pResult; // output
114
115 if (PyArg_ParseTuple(args,"O",&pSrc))
116 {
117
118 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
119 blockSize = arraySizepSrc ;
120
121
122 arm_power_f64(pSrc_converted,blockSize,&pResult);
123 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
124
125 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
126
127 FREEARGUMENT(pSrc_converted);
128 Py_DECREF(pResultOBJ);
129 return(pythonResult);
130
131 }
132 return(NULL);
133 }
134
135
136 static PyObject *
cmsis_arm_power_q15(PyObject * obj,PyObject * args)137 cmsis_arm_power_q15(PyObject *obj, PyObject *args)
138 {
139
140 PyObject *pSrc=NULL; // input
141 q15_t *pSrc_converted=NULL; // input
142 uint32_t blockSize; // input
143 q63_t pResult; // output
144
145 if (PyArg_ParseTuple(args,"O",&pSrc))
146 {
147
148 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
149 blockSize = arraySizepSrc ;
150
151
152
153 arm_power_q15(pSrc_converted,blockSize,&pResult);
154 PyObject* pResultOBJ=Py_BuildValue("L",pResult);
155
156 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
157
158 FREEARGUMENT(pSrc_converted);
159 Py_DECREF(pResultOBJ);
160 return(pythonResult);
161
162 }
163 return(NULL);
164 }
165
166
167 static PyObject *
cmsis_arm_power_q7(PyObject * obj,PyObject * args)168 cmsis_arm_power_q7(PyObject *obj, PyObject *args)
169 {
170
171 PyObject *pSrc=NULL; // input
172 q7_t *pSrc_converted=NULL; // input
173 uint32_t blockSize; // input
174 q31_t pResult; // output
175
176 if (PyArg_ParseTuple(args,"O",&pSrc))
177 {
178
179 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
180 blockSize = arraySizepSrc ;
181
182
183 arm_power_q7(pSrc_converted,blockSize,&pResult);
184 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
185
186 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
187
188 FREEARGUMENT(pSrc_converted);
189 Py_DECREF(pResultOBJ);
190 return(pythonResult);
191
192 }
193 return(NULL);
194 }
195
196
197 static PyObject *
cmsis_arm_mean_q7(PyObject * obj,PyObject * args)198 cmsis_arm_mean_q7(PyObject *obj, PyObject *args)
199 {
200
201 PyObject *pSrc=NULL; // input
202 q7_t *pSrc_converted=NULL; // input
203 uint32_t blockSize; // input
204 q7_t pResult; // output
205
206 if (PyArg_ParseTuple(args,"O",&pSrc))
207 {
208
209 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
210 blockSize = arraySizepSrc ;
211
212
213
214 arm_mean_q7(pSrc_converted,blockSize,&pResult);
215 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
216
217 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
218
219 FREEARGUMENT(pSrc_converted);
220 Py_DECREF(pResultOBJ);
221 return(pythonResult);
222
223 }
224 return(NULL);
225 }
226
227
228 static PyObject *
cmsis_arm_mean_q15(PyObject * obj,PyObject * args)229 cmsis_arm_mean_q15(PyObject *obj, PyObject *args)
230 {
231
232 PyObject *pSrc=NULL; // input
233 q15_t *pSrc_converted=NULL; // input
234 uint32_t blockSize; // input
235 q15_t pResult; // output
236
237 if (PyArg_ParseTuple(args,"O",&pSrc))
238 {
239
240 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
241 blockSize = arraySizepSrc ;
242
243
244
245 arm_mean_q15(pSrc_converted,blockSize,&pResult);
246 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
247
248 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
249
250 FREEARGUMENT(pSrc_converted);
251 Py_DECREF(pResultOBJ);
252 return(pythonResult);
253
254 }
255 return(NULL);
256 }
257
258
259 static PyObject *
cmsis_arm_mean_q31(PyObject * obj,PyObject * args)260 cmsis_arm_mean_q31(PyObject *obj, PyObject *args)
261 {
262
263 PyObject *pSrc=NULL; // input
264 q31_t *pSrc_converted=NULL; // input
265 uint32_t blockSize; // input
266 q31_t pResult; // output
267
268 if (PyArg_ParseTuple(args,"O",&pSrc))
269 {
270
271 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
272 blockSize = arraySizepSrc ;
273
274
275
276 arm_mean_q31(pSrc_converted,blockSize,&pResult);
277 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
278
279 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
280
281 FREEARGUMENT(pSrc_converted);
282 Py_DECREF(pResultOBJ);
283 return(pythonResult);
284
285 }
286 return(NULL);
287 }
288
289
290 static PyObject *
cmsis_arm_mean_f32(PyObject * obj,PyObject * args)291 cmsis_arm_mean_f32(PyObject *obj, PyObject *args)
292 {
293
294 PyObject *pSrc=NULL; // input
295 float32_t *pSrc_converted=NULL; // input
296 uint32_t blockSize; // input
297 float32_t pResult; // output
298
299 if (PyArg_ParseTuple(args,"O",&pSrc))
300 {
301
302 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
303 blockSize = arraySizepSrc ;
304
305
306 arm_mean_f32(pSrc_converted,blockSize,&pResult);
307 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
308
309 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
310
311 FREEARGUMENT(pSrc_converted);
312 Py_DECREF(pResultOBJ);
313 return(pythonResult);
314
315 }
316 return(NULL);
317 }
318
319 static PyObject *
cmsis_arm_mean_f64(PyObject * obj,PyObject * args)320 cmsis_arm_mean_f64(PyObject *obj, PyObject *args)
321 {
322
323 PyObject *pSrc=NULL; // input
324 float64_t *pSrc_converted=NULL; // input
325 uint32_t blockSize; // input
326 float64_t pResult; // output
327
328 if (PyArg_ParseTuple(args,"O",&pSrc))
329 {
330
331 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
332 blockSize = arraySizepSrc ;
333
334
335 arm_mean_f64(pSrc_converted,blockSize,&pResult);
336 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
337
338 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
339
340 FREEARGUMENT(pSrc_converted);
341 Py_DECREF(pResultOBJ);
342 return(pythonResult);
343
344 }
345 return(NULL);
346 }
347
348 static PyObject *
cmsis_arm_var_f32(PyObject * obj,PyObject * args)349 cmsis_arm_var_f32(PyObject *obj, PyObject *args)
350 {
351
352 PyObject *pSrc=NULL; // input
353 float32_t *pSrc_converted=NULL; // input
354 uint32_t blockSize; // input
355 float32_t pResult; // output
356
357 if (PyArg_ParseTuple(args,"O",&pSrc))
358 {
359
360 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
361 blockSize = arraySizepSrc ;
362
363
364
365 arm_var_f32(pSrc_converted,blockSize,&pResult);
366 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
367
368 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
369
370 FREEARGUMENT(pSrc_converted);
371 Py_DECREF(pResultOBJ);
372 return(pythonResult);
373
374 }
375 return(NULL);
376 }
377
378 static PyObject *
cmsis_arm_var_f64(PyObject * obj,PyObject * args)379 cmsis_arm_var_f64(PyObject *obj, PyObject *args)
380 {
381
382 PyObject *pSrc=NULL; // input
383 float64_t *pSrc_converted=NULL; // input
384 uint32_t blockSize; // input
385 float64_t pResult; // output
386
387 if (PyArg_ParseTuple(args,"O",&pSrc))
388 {
389
390 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
391 blockSize = arraySizepSrc ;
392
393
394
395 arm_var_f64(pSrc_converted,blockSize,&pResult);
396 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
397
398 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
399
400 FREEARGUMENT(pSrc_converted);
401 Py_DECREF(pResultOBJ);
402 return(pythonResult);
403
404 }
405 return(NULL);
406 }
407
408 static PyObject *
cmsis_arm_var_q31(PyObject * obj,PyObject * args)409 cmsis_arm_var_q31(PyObject *obj, PyObject *args)
410 {
411
412 PyObject *pSrc=NULL; // input
413 q31_t *pSrc_converted=NULL; // input
414 uint32_t blockSize; // input
415 q31_t pResult; // output
416
417 if (PyArg_ParseTuple(args,"O",&pSrc))
418 {
419
420 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
421 blockSize = arraySizepSrc ;
422
423
424 arm_var_q31(pSrc_converted,blockSize,&pResult);
425 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
426
427 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
428
429 FREEARGUMENT(pSrc_converted);
430 Py_DECREF(pResultOBJ);
431 return(pythonResult);
432
433 }
434 return(NULL);
435 }
436
437
438 static PyObject *
cmsis_arm_var_q15(PyObject * obj,PyObject * args)439 cmsis_arm_var_q15(PyObject *obj, PyObject *args)
440 {
441
442 PyObject *pSrc=NULL; // input
443 q15_t *pSrc_converted=NULL; // input
444 uint32_t blockSize; // input
445 q15_t pResult; // output
446
447 if (PyArg_ParseTuple(args,"O",&pSrc))
448 {
449
450 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
451 blockSize = arraySizepSrc ;
452
453 arm_var_q15(pSrc_converted,blockSize,&pResult);
454 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
455
456 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
457
458 FREEARGUMENT(pSrc_converted);
459 Py_DECREF(pResultOBJ);
460 return(pythonResult);
461
462 }
463 return(NULL);
464 }
465
466
467 static PyObject *
cmsis_arm_rms_f32(PyObject * obj,PyObject * args)468 cmsis_arm_rms_f32(PyObject *obj, PyObject *args)
469 {
470
471 PyObject *pSrc=NULL; // input
472 float32_t *pSrc_converted=NULL; // input
473 uint32_t blockSize; // input
474 float32_t pResult; // output
475
476 if (PyArg_ParseTuple(args,"O",&pSrc))
477 {
478
479 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
480 blockSize = arraySizepSrc ;
481
482
483
484 arm_rms_f32(pSrc_converted,blockSize,&pResult);
485 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
486
487 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
488
489 FREEARGUMENT(pSrc_converted);
490 Py_DECREF(pResultOBJ);
491 return(pythonResult);
492
493 }
494 return(NULL);
495 }
496
497
498 static PyObject *
cmsis_arm_rms_q31(PyObject * obj,PyObject * args)499 cmsis_arm_rms_q31(PyObject *obj, PyObject *args)
500 {
501
502 PyObject *pSrc=NULL; // input
503 q31_t *pSrc_converted=NULL; // input
504 uint32_t blockSize; // input
505 q31_t pResult; // output
506
507 if (PyArg_ParseTuple(args,"O",&pSrc))
508 {
509
510 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
511 blockSize = arraySizepSrc ;
512
513 arm_rms_q31(pSrc_converted,blockSize,&pResult);
514 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
515
516 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
517
518 FREEARGUMENT(pSrc_converted);
519 Py_DECREF(pResultOBJ);
520 return(pythonResult);
521
522 }
523 return(NULL);
524 }
525
526
527 static PyObject *
cmsis_arm_rms_q15(PyObject * obj,PyObject * args)528 cmsis_arm_rms_q15(PyObject *obj, PyObject *args)
529 {
530
531 PyObject *pSrc=NULL; // input
532 q15_t *pSrc_converted=NULL; // input
533 uint32_t blockSize; // input
534 q15_t pResult; // output
535
536 if (PyArg_ParseTuple(args,"O",&pSrc))
537 {
538
539 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
540 blockSize = arraySizepSrc ;
541
542
543 arm_rms_q15(pSrc_converted,blockSize,&pResult);
544 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
545
546 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
547
548 FREEARGUMENT(pSrc_converted);
549 Py_DECREF(pResultOBJ);
550 return(pythonResult);
551
552 }
553 return(NULL);
554 }
555
556
557 static PyObject *
cmsis_arm_std_f32(PyObject * obj,PyObject * args)558 cmsis_arm_std_f32(PyObject *obj, PyObject *args)
559 {
560
561 PyObject *pSrc=NULL; // input
562 float32_t *pSrc_converted=NULL; // input
563 uint32_t blockSize; // input
564 float32_t pResult; // output
565
566 if (PyArg_ParseTuple(args,"O",&pSrc))
567 {
568
569 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
570 blockSize = arraySizepSrc ;
571
572
573
574 arm_std_f32(pSrc_converted,blockSize,&pResult);
575 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
576
577 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
578
579 FREEARGUMENT(pSrc_converted);
580 Py_DECREF(pResultOBJ);
581 return(pythonResult);
582
583 }
584 return(NULL);
585 }
586
587 static PyObject *
cmsis_arm_std_f64(PyObject * obj,PyObject * args)588 cmsis_arm_std_f64(PyObject *obj, PyObject *args)
589 {
590
591 PyObject *pSrc=NULL; // input
592 float64_t *pSrc_converted=NULL; // input
593 uint32_t blockSize; // input
594 float64_t pResult; // output
595
596 if (PyArg_ParseTuple(args,"O",&pSrc))
597 {
598
599 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
600 blockSize = arraySizepSrc ;
601
602
603
604 arm_std_f64(pSrc_converted,blockSize,&pResult);
605 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
606
607 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
608
609 FREEARGUMENT(pSrc_converted);
610 Py_DECREF(pResultOBJ);
611 return(pythonResult);
612
613 }
614 return(NULL);
615 }
616
617
618 static PyObject *
cmsis_arm_std_q31(PyObject * obj,PyObject * args)619 cmsis_arm_std_q31(PyObject *obj, PyObject *args)
620 {
621
622 PyObject *pSrc=NULL; // input
623 q31_t *pSrc_converted=NULL; // input
624 uint32_t blockSize; // input
625 q31_t pResult; // output
626
627 if (PyArg_ParseTuple(args,"O",&pSrc))
628 {
629
630 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
631 blockSize = arraySizepSrc ;
632
633 arm_std_q31(pSrc_converted,blockSize,&pResult);
634 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
635
636 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
637
638 FREEARGUMENT(pSrc_converted);
639 Py_DECREF(pResultOBJ);
640 return(pythonResult);
641
642 }
643 return(NULL);
644 }
645
646
647 static PyObject *
cmsis_arm_std_q15(PyObject * obj,PyObject * args)648 cmsis_arm_std_q15(PyObject *obj, PyObject *args)
649 {
650
651 PyObject *pSrc=NULL; // input
652 q15_t *pSrc_converted=NULL; // input
653 uint32_t blockSize; // input
654 q15_t pResult; // output
655
656 if (PyArg_ParseTuple(args,"O",&pSrc))
657 {
658
659 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
660 blockSize = arraySizepSrc ;
661
662 arm_std_q15(pSrc_converted,blockSize,&pResult);
663 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
664
665 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
666
667 FREEARGUMENT(pSrc_converted);
668 Py_DECREF(pResultOBJ);
669 return(pythonResult);
670
671 }
672 return(NULL);
673 }
674
675
676
677
678 static PyObject *
cmsis_arm_min_q7(PyObject * obj,PyObject * args)679 cmsis_arm_min_q7(PyObject *obj, PyObject *args)
680 {
681 PyObject *pSrc=NULL; // input
682 q7_t *pSrc_converted=NULL; // input
683 uint32_t blockSize; // input
684 q7_t pResult; // output
685 uint32_t pIndex; // output
686
687 if (PyArg_ParseTuple(args,"O",&pSrc))
688 {
689
690 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
691 blockSize = arraySizepSrc ;
692
693
694 arm_min_q7(pSrc_converted,blockSize,&pResult,&pIndex);
695 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
696 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
697
698 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
699
700 FREEARGUMENT(pSrc_converted);
701 Py_DECREF(pResultOBJ);
702 Py_DECREF(pIndexOBJ);
703 return(pythonResult);
704
705 }
706 return(NULL);
707 }
708
709 static PyObject *
cmsis_arm_min_no_idx_q7(PyObject * obj,PyObject * args)710 cmsis_arm_min_no_idx_q7(PyObject *obj, PyObject *args)
711 {
712 PyObject *pSrc=NULL; // input
713 q7_t *pSrc_converted=NULL; // input
714 uint32_t blockSize; // input
715 q7_t pResult;
716
717 if (PyArg_ParseTuple(args,"O",&pSrc))
718 {
719
720 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
721 blockSize = arraySizepSrc ;
722
723
724
725 arm_min_no_idx_q7(pSrc_converted,blockSize,&pResult);
726 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
727
728
729 FREEARGUMENT(pSrc_converted);
730 return(pResultOBJ);
731
732 }
733 return(NULL);
734 }
735
736 static PyObject *
cmsis_arm_absmin_q7(PyObject * obj,PyObject * args)737 cmsis_arm_absmin_q7(PyObject *obj, PyObject *args)
738 {
739 PyObject *pSrc=NULL; // input
740 q7_t *pSrc_converted=NULL; // input
741 uint32_t blockSize; // input
742 q7_t pResult; // output
743 uint32_t pIndex; // output
744
745 if (PyArg_ParseTuple(args,"O",&pSrc))
746 {
747
748 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
749 blockSize = arraySizepSrc ;
750
751
752 arm_absmin_q7(pSrc_converted,blockSize,&pResult,&pIndex);
753 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
754 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
755
756 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
757
758 FREEARGUMENT(pSrc_converted);
759 Py_DECREF(pResultOBJ);
760 Py_DECREF(pIndexOBJ);
761 return(pythonResult);
762
763 }
764 return(NULL);
765 }
766
767 static PyObject *
cmsis_arm_absmin_no_idx_q7(PyObject * obj,PyObject * args)768 cmsis_arm_absmin_no_idx_q7(PyObject *obj, PyObject *args)
769 {
770 PyObject *pSrc=NULL; // input
771 q7_t *pSrc_converted=NULL; // input
772 uint32_t blockSize; // input
773 q7_t pResult; // output
774
775 if (PyArg_ParseTuple(args,"O",&pSrc))
776 {
777
778 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
779 blockSize = arraySizepSrc ;
780
781
782
783
784
785 arm_absmin_no_idx_q7(pSrc_converted,blockSize,&pResult);
786 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
787
788
789 FREEARGUMENT(pSrc_converted);
790 return(pResultOBJ);
791
792 }
793 return(NULL);
794 }
795
796
797 static PyObject *
cmsis_arm_min_q15(PyObject * obj,PyObject * args)798 cmsis_arm_min_q15(PyObject *obj, PyObject *args)
799 {
800
801 PyObject *pSrc=NULL; // input
802 q15_t *pSrc_converted=NULL; // input
803 uint32_t blockSize; // input
804 q15_t pResult; // output
805 uint32_t pIndex; // output
806
807 if (PyArg_ParseTuple(args,"O",&pSrc))
808 {
809
810 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
811 blockSize = arraySizepSrc ;
812
813
814 arm_min_q15(pSrc_converted,blockSize,&pResult,&pIndex);
815 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
816 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
817
818 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
819
820 FREEARGUMENT(pSrc_converted);
821 Py_DECREF(pResultOBJ);
822 Py_DECREF(pIndexOBJ);
823 return(pythonResult);
824
825 }
826 return(NULL);
827 }
828
829 static PyObject *
cmsis_arm_min_no_idx_q15(PyObject * obj,PyObject * args)830 cmsis_arm_min_no_idx_q15(PyObject *obj, PyObject *args)
831 {
832
833 PyObject *pSrc=NULL; // input
834 q15_t *pSrc_converted=NULL; // input
835 uint32_t blockSize; // input
836 q15_t pResult; // output
837
838 if (PyArg_ParseTuple(args,"O",&pSrc))
839 {
840
841 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
842 blockSize = arraySizepSrc ;
843
844
845
846
847
848 arm_min_no_idx_q15(pSrc_converted,blockSize,&pResult);
849 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
850
851
852 FREEARGUMENT(pSrc_converted);
853 return(pResultOBJ);
854
855 }
856 return(NULL);
857 }
858
859 static PyObject *
cmsis_arm_absmin_q15(PyObject * obj,PyObject * args)860 cmsis_arm_absmin_q15(PyObject *obj, PyObject *args)
861 {
862
863 PyObject *pSrc=NULL; // input
864 q15_t *pSrc_converted=NULL; // input
865 uint32_t blockSize; // input
866 q15_t pResult; // output
867 uint32_t pIndex; // output
868
869 if (PyArg_ParseTuple(args,"O",&pSrc))
870 {
871
872 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
873 blockSize = arraySizepSrc ;
874
875 arm_absmin_q15(pSrc_converted,blockSize,&pResult,&pIndex);
876 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
877 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
878
879 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
880
881 FREEARGUMENT(pSrc_converted);
882 Py_DECREF(pResultOBJ);
883 Py_DECREF(pIndexOBJ);
884 return(pythonResult);
885
886 }
887 return(NULL);
888 }
889
890 static PyObject *
cmsis_arm_absmin_no_idx_q15(PyObject * obj,PyObject * args)891 cmsis_arm_absmin_no_idx_q15(PyObject *obj, PyObject *args)
892 {
893
894 PyObject *pSrc=NULL; // input
895 q15_t *pSrc_converted=NULL; // input
896 uint32_t blockSize; // input
897 q15_t pResult; // output
898
899 if (PyArg_ParseTuple(args,"O",&pSrc))
900 {
901
902 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
903 blockSize = arraySizepSrc ;
904
905
906
907
908
909 arm_absmin_no_idx_q15(pSrc_converted,blockSize,&pResult);
910 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
911
912
913 FREEARGUMENT(pSrc_converted);
914 return(pResultOBJ);
915
916 }
917 return(NULL);
918 }
919
920
921 static PyObject *
cmsis_arm_min_q31(PyObject * obj,PyObject * args)922 cmsis_arm_min_q31(PyObject *obj, PyObject *args)
923 {
924
925 PyObject *pSrc=NULL; // input
926 q31_t *pSrc_converted=NULL; // input
927 uint32_t blockSize; // input
928 q31_t pResult; // output
929 uint32_t pIndex; // output
930
931 if (PyArg_ParseTuple(args,"O",&pSrc))
932 {
933
934 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
935 blockSize = arraySizepSrc ;
936
937 arm_min_q31(pSrc_converted,blockSize,&pResult,&pIndex);
938 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
939 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
940
941 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
942
943 FREEARGUMENT(pSrc_converted);
944 Py_DECREF(pResultOBJ);
945 Py_DECREF(pIndexOBJ);
946 return(pythonResult);
947
948 }
949 return(NULL);
950 }
951
952 static PyObject *
cmsis_arm_min_no_idx_q31(PyObject * obj,PyObject * args)953 cmsis_arm_min_no_idx_q31(PyObject *obj, PyObject *args)
954 {
955
956 PyObject *pSrc=NULL; // input
957 q31_t *pSrc_converted=NULL; // input
958 uint32_t blockSize; // input
959 q31_t pResult; // output
960
961 if (PyArg_ParseTuple(args,"O",&pSrc))
962 {
963
964 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
965 blockSize = arraySizepSrc ;
966
967
968
969
970
971 arm_min_no_idx_q31(pSrc_converted,blockSize,&pResult);
972 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
973
974
975 FREEARGUMENT(pSrc_converted);
976 return(pResultOBJ);
977
978 }
979 return(NULL);
980 }
981
982 static PyObject *
cmsis_arm_absmin_q31(PyObject * obj,PyObject * args)983 cmsis_arm_absmin_q31(PyObject *obj, PyObject *args)
984 {
985
986 PyObject *pSrc=NULL; // input
987 q31_t *pSrc_converted=NULL; // input
988 uint32_t blockSize; // input
989 q31_t pResult; // output
990 uint32_t pIndex; // output
991
992 if (PyArg_ParseTuple(args,"O",&pSrc))
993 {
994
995 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
996 blockSize = arraySizepSrc ;
997
998
999 arm_absmin_q31(pSrc_converted,blockSize,&pResult,&pIndex);
1000 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1001 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1002
1003 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1004
1005 FREEARGUMENT(pSrc_converted);
1006 Py_DECREF(pResultOBJ);
1007 Py_DECREF(pIndexOBJ);
1008 return(pythonResult);
1009
1010 }
1011 return(NULL);
1012 }
1013
1014 static PyObject *
cmsis_arm_absmin_no_idx_q31(PyObject * obj,PyObject * args)1015 cmsis_arm_absmin_no_idx_q31(PyObject *obj, PyObject *args)
1016 {
1017
1018 PyObject *pSrc=NULL; // input
1019 q31_t *pSrc_converted=NULL; // input
1020 uint32_t blockSize; // input
1021 q31_t pResult; // output
1022
1023 if (PyArg_ParseTuple(args,"O",&pSrc))
1024 {
1025
1026 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1027 blockSize = arraySizepSrc ;
1028
1029
1030
1031
1032 arm_absmin_no_idx_q31(pSrc_converted,blockSize,&pResult);
1033 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1034
1035
1036 FREEARGUMENT(pSrc_converted);
1037 return(pResultOBJ);
1038
1039 }
1040 return(NULL);
1041 }
1042
1043
1044 static PyObject *
cmsis_arm_min_f32(PyObject * obj,PyObject * args)1045 cmsis_arm_min_f32(PyObject *obj, PyObject *args)
1046 {
1047
1048 PyObject *pSrc=NULL; // input
1049 float32_t *pSrc_converted=NULL; // input
1050 uint32_t blockSize; // input
1051 float32_t pResult; // output
1052 uint32_t pIndex; // output
1053
1054 if (PyArg_ParseTuple(args,"O",&pSrc))
1055 {
1056
1057 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1058 blockSize = arraySizepSrc ;
1059
1060
1061 arm_min_f32(pSrc_converted,blockSize,&pResult,&pIndex);
1062 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1063 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1064
1065 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1066
1067 FREEARGUMENT(pSrc_converted);
1068 Py_DECREF(pResultOBJ);
1069 Py_DECREF(pIndexOBJ);
1070 return(pythonResult);
1071
1072 }
1073 return(NULL);
1074 }
1075
1076 static PyObject *
cmsis_arm_min_f64(PyObject * obj,PyObject * args)1077 cmsis_arm_min_f64(PyObject *obj, PyObject *args)
1078 {
1079
1080 PyObject *pSrc=NULL; // input
1081 float64_t *pSrc_converted=NULL; // input
1082 uint32_t blockSize; // input
1083 float64_t pResult; // output
1084 uint32_t pIndex; // output
1085
1086 if (PyArg_ParseTuple(args,"O",&pSrc))
1087 {
1088
1089 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1090 blockSize = arraySizepSrc ;
1091
1092
1093 arm_min_f64(pSrc_converted,blockSize,&pResult,&pIndex);
1094 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1095 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1096
1097 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1098
1099 FREEARGUMENT(pSrc_converted);
1100 Py_DECREF(pResultOBJ);
1101 Py_DECREF(pIndexOBJ);
1102 return(pythonResult);
1103
1104 }
1105 return(NULL);
1106 }
1107
1108 static PyObject *
cmsis_arm_min_no_idx_f32(PyObject * obj,PyObject * args)1109 cmsis_arm_min_no_idx_f32(PyObject *obj, PyObject *args)
1110 {
1111
1112 PyObject *pSrc=NULL; // input
1113 float32_t *pSrc_converted=NULL; // input
1114 uint32_t blockSize; // input
1115 float32_t pResult; // output
1116
1117 if (PyArg_ParseTuple(args,"O",&pSrc))
1118 {
1119
1120 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1121 blockSize = arraySizepSrc ;
1122
1123
1124 arm_min_no_idx_f32(pSrc_converted,blockSize,&pResult);
1125 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1126
1127 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1128
1129 FREEARGUMENT(pSrc_converted);
1130 Py_DECREF(pResultOBJ);
1131 return(pythonResult);
1132
1133 }
1134 return(NULL);
1135 }
1136
1137 static PyObject *
cmsis_arm_min_no_idx_f64(PyObject * obj,PyObject * args)1138 cmsis_arm_min_no_idx_f64(PyObject *obj, PyObject *args)
1139 {
1140
1141 PyObject *pSrc=NULL; // input
1142 float64_t *pSrc_converted=NULL; // input
1143 uint32_t blockSize; // input
1144 float64_t pResult; // output
1145
1146 if (PyArg_ParseTuple(args,"O",&pSrc))
1147 {
1148
1149 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1150 blockSize = arraySizepSrc ;
1151
1152
1153 arm_min_no_idx_f64(pSrc_converted,blockSize,&pResult);
1154 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1155
1156 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1157
1158 FREEARGUMENT(pSrc_converted);
1159 Py_DECREF(pResultOBJ);
1160 return(pythonResult);
1161
1162 }
1163 return(NULL);
1164 }
1165
1166 static PyObject *
cmsis_arm_absmin_f32(PyObject * obj,PyObject * args)1167 cmsis_arm_absmin_f32(PyObject *obj, PyObject *args)
1168 {
1169
1170 PyObject *pSrc=NULL; // input
1171 float32_t *pSrc_converted=NULL; // input
1172 uint32_t blockSize; // input
1173 float32_t pResult; // output
1174 uint32_t pIndex; // output
1175
1176 if (PyArg_ParseTuple(args,"O",&pSrc))
1177 {
1178
1179 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1180 blockSize = arraySizepSrc ;
1181
1182
1183 arm_absmin_f32(pSrc_converted,blockSize,&pResult,&pIndex);
1184 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1185 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1186
1187 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1188
1189 FREEARGUMENT(pSrc_converted);
1190 Py_DECREF(pResultOBJ);
1191 Py_DECREF(pIndexOBJ);
1192 return(pythonResult);
1193
1194 }
1195 return(NULL);
1196 }
1197
1198 static PyObject *
cmsis_arm_absmin_f64(PyObject * obj,PyObject * args)1199 cmsis_arm_absmin_f64(PyObject *obj, PyObject *args)
1200 {
1201
1202 PyObject *pSrc=NULL; // input
1203 float64_t *pSrc_converted=NULL; // input
1204 uint32_t blockSize; // input
1205 float64_t pResult; // output
1206 uint32_t pIndex; // output
1207
1208 if (PyArg_ParseTuple(args,"O",&pSrc))
1209 {
1210
1211 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1212 blockSize = arraySizepSrc ;
1213
1214
1215 arm_absmin_f64(pSrc_converted,blockSize,&pResult,&pIndex);
1216 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1217 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1218
1219 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1220
1221 FREEARGUMENT(pSrc_converted);
1222 Py_DECREF(pResultOBJ);
1223 Py_DECREF(pIndexOBJ);
1224 return(pythonResult);
1225
1226 }
1227 return(NULL);
1228 }
1229
1230 static PyObject *
cmsis_arm_absmin_no_idx_f32(PyObject * obj,PyObject * args)1231 cmsis_arm_absmin_no_idx_f32(PyObject *obj, PyObject *args)
1232 {
1233
1234 PyObject *pSrc=NULL; // input
1235 float32_t *pSrc_converted=NULL; // input
1236 uint32_t blockSize; // input
1237 float32_t pResult; // output
1238
1239 if (PyArg_ParseTuple(args,"O",&pSrc))
1240 {
1241
1242 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1243 blockSize = arraySizepSrc ;
1244
1245 arm_absmin_no_idx_f32(pSrc_converted,blockSize,&pResult);
1246 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1247
1248 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1249
1250 FREEARGUMENT(pSrc_converted);
1251 Py_DECREF(pResultOBJ);
1252 return(pythonResult);
1253
1254 }
1255 return(NULL);
1256 }
1257
1258 static PyObject *
cmsis_arm_absmin_no_idx_f64(PyObject * obj,PyObject * args)1259 cmsis_arm_absmin_no_idx_f64(PyObject *obj, PyObject *args)
1260 {
1261
1262 PyObject *pSrc=NULL; // input
1263 float64_t *pSrc_converted=NULL; // input
1264 uint32_t blockSize; // input
1265 float64_t pResult; // output
1266
1267 if (PyArg_ParseTuple(args,"O",&pSrc))
1268 {
1269
1270 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1271 blockSize = arraySizepSrc ;
1272
1273 arm_absmin_no_idx_f64(pSrc_converted,blockSize,&pResult);
1274 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1275
1276 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1277
1278 FREEARGUMENT(pSrc_converted);
1279 Py_DECREF(pResultOBJ);
1280 return(pythonResult);
1281
1282 }
1283 return(NULL);
1284 }
1285
1286
1287 static PyObject *
cmsis_arm_max_q7(PyObject * obj,PyObject * args)1288 cmsis_arm_max_q7(PyObject *obj, PyObject *args)
1289 {
1290
1291 PyObject *pSrc=NULL; // input
1292 q7_t *pSrc_converted=NULL; // input
1293 uint32_t blockSize; // input
1294 q7_t pResult; // output
1295 uint32_t pIndex; // output
1296
1297 if (PyArg_ParseTuple(args,"O",&pSrc))
1298 {
1299
1300 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
1301 blockSize = arraySizepSrc ;
1302
1303
1304 arm_max_q7(pSrc_converted,blockSize,&pResult,&pIndex);
1305 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1306 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1307
1308 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1309
1310 FREEARGUMENT(pSrc_converted);
1311 Py_DECREF(pResultOBJ);
1312 Py_DECREF(pIndexOBJ);
1313 return(pythonResult);
1314
1315 }
1316 return(NULL);
1317 }
1318
1319 static PyObject *
cmsis_arm_max_no_idx_q7(PyObject * obj,PyObject * args)1320 cmsis_arm_max_no_idx_q7(PyObject *obj, PyObject *args)
1321 {
1322
1323 PyObject *pSrc=NULL; // input
1324 q7_t *pSrc_converted=NULL; // input
1325 uint32_t blockSize; // input
1326 q7_t pResult; // output
1327
1328 if (PyArg_ParseTuple(args,"O",&pSrc))
1329 {
1330
1331 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
1332 blockSize = arraySizepSrc ;
1333
1334
1335
1336
1337
1338 arm_max_no_idx_q7(pSrc_converted,blockSize,&pResult);
1339 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1340
1341
1342 FREEARGUMENT(pSrc_converted);
1343 return(pResultOBJ);
1344
1345 }
1346 return(NULL);
1347 }
1348
1349 static PyObject *
cmsis_arm_absmax_q7(PyObject * obj,PyObject * args)1350 cmsis_arm_absmax_q7(PyObject *obj, PyObject *args)
1351 {
1352
1353 PyObject *pSrc=NULL; // input
1354 q7_t *pSrc_converted=NULL; // input
1355 uint32_t blockSize; // input
1356 q7_t pResult; // output
1357 uint32_t pIndex; // output
1358
1359 if (PyArg_ParseTuple(args,"O",&pSrc))
1360 {
1361
1362 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
1363 blockSize = arraySizepSrc ;
1364
1365
1366 arm_absmax_q7(pSrc_converted,blockSize,&pResult,&pIndex);
1367 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1368 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1369
1370 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1371
1372 FREEARGUMENT(pSrc_converted);
1373 Py_DECREF(pResultOBJ);
1374 Py_DECREF(pIndexOBJ);
1375 return(pythonResult);
1376
1377 }
1378 return(NULL);
1379 }
1380
1381 static PyObject *
cmsis_arm_absmax_no_idx_q7(PyObject * obj,PyObject * args)1382 cmsis_arm_absmax_no_idx_q7(PyObject *obj, PyObject *args)
1383 {
1384
1385 PyObject *pSrc=NULL; // input
1386 q7_t *pSrc_converted=NULL; // input
1387 uint32_t blockSize; // input
1388 q7_t pResult; // output
1389
1390 if (PyArg_ParseTuple(args,"O",&pSrc))
1391 {
1392
1393 GETARGUMENT(pSrc,NPY_BYTE,int8_t,q7_t);
1394 blockSize = arraySizepSrc ;
1395
1396
1397
1398
1399
1400 arm_absmax_no_idx_q7(pSrc_converted,blockSize,&pResult);
1401 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1402
1403
1404 FREEARGUMENT(pSrc_converted);
1405 return(pResultOBJ);
1406
1407 }
1408 return(NULL);
1409 }
1410
1411
1412 static PyObject *
cmsis_arm_max_q15(PyObject * obj,PyObject * args)1413 cmsis_arm_max_q15(PyObject *obj, PyObject *args)
1414 {
1415
1416 PyObject *pSrc=NULL; // input
1417 q15_t *pSrc_converted=NULL; // input
1418 uint32_t blockSize; // input
1419 q15_t pResult; // output
1420 uint32_t pIndex; // output
1421
1422 if (PyArg_ParseTuple(args,"O",&pSrc))
1423 {
1424
1425 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1426 blockSize = arraySizepSrc ;
1427
1428
1429 arm_max_q15(pSrc_converted,blockSize,&pResult,&pIndex);
1430 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
1431 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1432
1433 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1434
1435 FREEARGUMENT(pSrc_converted);
1436 Py_DECREF(pResultOBJ);
1437 Py_DECREF(pIndexOBJ);
1438 return(pythonResult);
1439
1440 }
1441 return(NULL);
1442 }
1443
1444 static PyObject *
cmsis_arm_max_no_idx_q15(PyObject * obj,PyObject * args)1445 cmsis_arm_max_no_idx_q15(PyObject *obj, PyObject *args)
1446 {
1447
1448 PyObject *pSrc=NULL; // input
1449 q15_t *pSrc_converted=NULL; // input
1450 uint32_t blockSize; // input
1451 q15_t pResult; // output
1452
1453 if (PyArg_ParseTuple(args,"O",&pSrc))
1454 {
1455
1456 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1457 blockSize = arraySizepSrc ;
1458
1459
1460
1461
1462
1463 arm_max_no_idx_q15(pSrc_converted,blockSize,&pResult);
1464 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
1465
1466
1467 FREEARGUMENT(pSrc_converted);
1468 return(pResultOBJ);
1469
1470 }
1471 return(NULL);
1472 }
1473
1474 static PyObject *
cmsis_arm_absmax_q15(PyObject * obj,PyObject * args)1475 cmsis_arm_absmax_q15(PyObject *obj, PyObject *args)
1476 {
1477
1478 PyObject *pSrc=NULL; // input
1479 q15_t *pSrc_converted=NULL; // input
1480 uint32_t blockSize; // input
1481 q15_t pResult; // output
1482 uint32_t pIndex; // output
1483
1484 if (PyArg_ParseTuple(args,"O",&pSrc))
1485 {
1486
1487 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1488 blockSize = arraySizepSrc ;
1489
1490 arm_absmax_q15(pSrc_converted,blockSize,&pResult,&pIndex);
1491 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
1492 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1493
1494 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1495
1496 FREEARGUMENT(pSrc_converted);
1497 Py_DECREF(pResultOBJ);
1498 Py_DECREF(pIndexOBJ);
1499 return(pythonResult);
1500
1501 }
1502 return(NULL);
1503 }
1504
1505 static PyObject *
cmsis_arm_absmax_no_idx_q15(PyObject * obj,PyObject * args)1506 cmsis_arm_absmax_no_idx_q15(PyObject *obj, PyObject *args)
1507 {
1508
1509 PyObject *pSrc=NULL; // input
1510 q15_t *pSrc_converted=NULL; // input
1511 uint32_t blockSize; // input
1512 q15_t pResult; // output
1513
1514 if (PyArg_ParseTuple(args,"O",&pSrc))
1515 {
1516
1517 GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
1518 blockSize = arraySizepSrc ;
1519
1520
1521
1522
1523 arm_absmax_no_idx_q15(pSrc_converted,blockSize,&pResult);
1524 PyObject* pResultOBJ=Py_BuildValue("h",pResult);
1525
1526
1527 FREEARGUMENT(pSrc_converted);
1528 return(pResultOBJ);
1529
1530 }
1531 return(NULL);
1532 }
1533
1534
1535 static PyObject *
cmsis_arm_max_q31(PyObject * obj,PyObject * args)1536 cmsis_arm_max_q31(PyObject *obj, PyObject *args)
1537 {
1538
1539 PyObject *pSrc=NULL; // input
1540 q31_t *pSrc_converted=NULL; // input
1541 uint32_t blockSize; // input
1542 q31_t pResult; // output
1543 uint32_t pIndex; // output
1544
1545 if (PyArg_ParseTuple(args,"O",&pSrc))
1546 {
1547
1548 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1549 blockSize = arraySizepSrc ;
1550
1551 arm_max_q31(pSrc_converted,blockSize,&pResult,&pIndex);
1552 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1553 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1554
1555 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1556
1557 FREEARGUMENT(pSrc_converted);
1558 Py_DECREF(pResultOBJ);
1559 Py_DECREF(pIndexOBJ);
1560 return(pythonResult);
1561
1562 }
1563 return(NULL);
1564 }
1565
1566 static PyObject *
cmsis_arm_max_no_idx_q31(PyObject * obj,PyObject * args)1567 cmsis_arm_max_no_idx_q31(PyObject *obj, PyObject *args)
1568 {
1569
1570 PyObject *pSrc=NULL; // input
1571 q31_t *pSrc_converted=NULL; // input
1572 uint32_t blockSize; // input
1573 q31_t pResult; // output
1574
1575 if (PyArg_ParseTuple(args,"O",&pSrc))
1576 {
1577
1578 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1579 blockSize = arraySizepSrc ;
1580
1581
1582
1583
1584
1585 arm_max_no_idx_q31(pSrc_converted,blockSize,&pResult);
1586 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1587
1588
1589 FREEARGUMENT(pSrc_converted);
1590 return(pResultOBJ);
1591
1592 }
1593 return(NULL);
1594 }
1595
1596 static PyObject *
cmsis_arm_absmax_q31(PyObject * obj,PyObject * args)1597 cmsis_arm_absmax_q31(PyObject *obj, PyObject *args)
1598 {
1599
1600 PyObject *pSrc=NULL; // input
1601 q31_t *pSrc_converted=NULL; // input
1602 uint32_t blockSize; // input
1603 q31_t pResult; // output
1604 uint32_t pIndex; // output
1605
1606 if (PyArg_ParseTuple(args,"O",&pSrc))
1607 {
1608
1609 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1610 blockSize = arraySizepSrc ;
1611
1612 arm_absmax_q31(pSrc_converted,blockSize,&pResult,&pIndex);
1613 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1614 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1615
1616 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1617
1618 FREEARGUMENT(pSrc_converted);
1619 Py_DECREF(pResultOBJ);
1620 Py_DECREF(pIndexOBJ);
1621 return(pythonResult);
1622
1623 }
1624 return(NULL);
1625 }
1626
1627 static PyObject *
cmsis_arm_absmax_no_idx_q31(PyObject * obj,PyObject * args)1628 cmsis_arm_absmax_no_idx_q31(PyObject *obj, PyObject *args)
1629 {
1630
1631 PyObject *pSrc=NULL; // input
1632 q31_t *pSrc_converted=NULL; // input
1633 uint32_t blockSize; // input
1634 q31_t pResult; // output
1635
1636 if (PyArg_ParseTuple(args,"O",&pSrc))
1637 {
1638
1639 GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
1640 blockSize = arraySizepSrc ;
1641
1642
1643
1644
1645 arm_absmax_no_idx_q31(pSrc_converted,blockSize,&pResult);
1646 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
1647
1648
1649 FREEARGUMENT(pSrc_converted);
1650 return(pResultOBJ);
1651
1652 }
1653 return(NULL);
1654 }
1655
1656
1657 static PyObject *
cmsis_arm_max_f32(PyObject * obj,PyObject * args)1658 cmsis_arm_max_f32(PyObject *obj, PyObject *args)
1659 {
1660
1661 PyObject *pSrc=NULL; // input
1662 float32_t *pSrc_converted=NULL; // input
1663 uint32_t blockSize; // input
1664 float32_t pResult; // output
1665 uint32_t pIndex; // output
1666
1667 if (PyArg_ParseTuple(args,"O",&pSrc))
1668 {
1669
1670 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1671 blockSize = arraySizepSrc ;
1672
1673
1674 arm_max_f32(pSrc_converted,blockSize,&pResult,&pIndex);
1675 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1676 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1677
1678 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1679
1680 FREEARGUMENT(pSrc_converted);
1681 Py_DECREF(pResultOBJ);
1682 Py_DECREF(pIndexOBJ);
1683 return(pythonResult);
1684
1685 }
1686 return(NULL);
1687 }
1688
1689 static PyObject *
cmsis_arm_max_f64(PyObject * obj,PyObject * args)1690 cmsis_arm_max_f64(PyObject *obj, PyObject *args)
1691 {
1692
1693 PyObject *pSrc=NULL; // input
1694 float64_t *pSrc_converted=NULL; // input
1695 uint32_t blockSize; // input
1696 float64_t pResult; // output
1697 uint32_t pIndex; // output
1698
1699 if (PyArg_ParseTuple(args,"O",&pSrc))
1700 {
1701
1702 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1703 blockSize = arraySizepSrc ;
1704
1705
1706 arm_max_f64(pSrc_converted,blockSize,&pResult,&pIndex);
1707 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1708 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1709
1710 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1711
1712 FREEARGUMENT(pSrc_converted);
1713 Py_DECREF(pResultOBJ);
1714 Py_DECREF(pIndexOBJ);
1715 return(pythonResult);
1716
1717 }
1718 return(NULL);
1719 }
1720
1721 static PyObject *
cmsis_arm_max_no_idx_f32(PyObject * obj,PyObject * args)1722 cmsis_arm_max_no_idx_f32(PyObject *obj, PyObject *args)
1723 {
1724
1725 PyObject *pSrc=NULL; // input
1726 float32_t *pSrc_converted=NULL; // input
1727 uint32_t blockSize; // input
1728 float32_t pResult; // output
1729
1730 if (PyArg_ParseTuple(args,"O",&pSrc))
1731 {
1732
1733 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1734 blockSize = arraySizepSrc ;
1735
1736
1737 arm_max_no_idx_f32(pSrc_converted,blockSize,&pResult);
1738 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1739
1740 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1741
1742 FREEARGUMENT(pSrc_converted);
1743 Py_DECREF(pResultOBJ);
1744 return(pythonResult);
1745
1746 }
1747 return(NULL);
1748 }
1749
1750 static PyObject *
cmsis_arm_max_no_idx_f64(PyObject * obj,PyObject * args)1751 cmsis_arm_max_no_idx_f64(PyObject *obj, PyObject *args)
1752 {
1753
1754 PyObject *pSrc=NULL; // input
1755 float64_t *pSrc_converted=NULL; // input
1756 uint32_t blockSize; // input
1757 float64_t pResult; // output
1758
1759 if (PyArg_ParseTuple(args,"O",&pSrc))
1760 {
1761
1762 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1763 blockSize = arraySizepSrc ;
1764
1765
1766 arm_max_no_idx_f64(pSrc_converted,blockSize,&pResult);
1767 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1768
1769 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1770
1771 FREEARGUMENT(pSrc_converted);
1772 Py_DECREF(pResultOBJ);
1773 return(pythonResult);
1774
1775 }
1776 return(NULL);
1777 }
1778
1779 static PyObject *
cmsis_arm_absmax_f32(PyObject * obj,PyObject * args)1780 cmsis_arm_absmax_f32(PyObject *obj, PyObject *args)
1781 {
1782
1783 PyObject *pSrc=NULL; // input
1784 float32_t *pSrc_converted=NULL; // input
1785 uint32_t blockSize; // input
1786 float32_t pResult; // output
1787 uint32_t pIndex; // output
1788
1789 if (PyArg_ParseTuple(args,"O",&pSrc))
1790 {
1791
1792 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1793 blockSize = arraySizepSrc ;
1794
1795 arm_absmax_f32(pSrc_converted,blockSize,&pResult,&pIndex);
1796 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1797 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1798
1799 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1800
1801 FREEARGUMENT(pSrc_converted);
1802 Py_DECREF(pResultOBJ);
1803 Py_DECREF(pIndexOBJ);
1804 return(pythonResult);
1805
1806 }
1807 return(NULL);
1808 }
1809
1810 static PyObject *
cmsis_arm_absmax_f64(PyObject * obj,PyObject * args)1811 cmsis_arm_absmax_f64(PyObject *obj, PyObject *args)
1812 {
1813
1814 PyObject *pSrc=NULL; // input
1815 float64_t *pSrc_converted=NULL; // input
1816 uint32_t blockSize; // input
1817 float64_t pResult; // output
1818 uint32_t pIndex; // output
1819
1820 if (PyArg_ParseTuple(args,"O",&pSrc))
1821 {
1822
1823 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1824 blockSize = arraySizepSrc ;
1825
1826 arm_absmax_f64(pSrc_converted,blockSize,&pResult,&pIndex);
1827 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1828 PyObject* pIndexOBJ=Py_BuildValue("i",pIndex);
1829
1830 PyObject *pythonResult = Py_BuildValue("OO",pResultOBJ,pIndexOBJ);
1831
1832 FREEARGUMENT(pSrc_converted);
1833 Py_DECREF(pResultOBJ);
1834 Py_DECREF(pIndexOBJ);
1835 return(pythonResult);
1836
1837 }
1838 return(NULL);
1839 }
1840
1841 static PyObject *
cmsis_arm_absmax_no_idx_f32(PyObject * obj,PyObject * args)1842 cmsis_arm_absmax_no_idx_f32(PyObject *obj, PyObject *args)
1843 {
1844
1845 PyObject *pSrc=NULL; // input
1846 float32_t *pSrc_converted=NULL; // input
1847 uint32_t blockSize; // input
1848 float32_t pResult; // output
1849
1850 if (PyArg_ParseTuple(args,"O",&pSrc))
1851 {
1852
1853 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1854 blockSize = arraySizepSrc ;
1855
1856 arm_absmax_no_idx_f32(pSrc_converted,blockSize,&pResult);
1857 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1858
1859 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1860
1861 FREEARGUMENT(pSrc_converted);
1862 Py_DECREF(pResultOBJ);
1863 return(pythonResult);
1864
1865 }
1866 return(NULL);
1867 }
1868
1869 static PyObject *
cmsis_arm_absmax_no_idx_f64(PyObject * obj,PyObject * args)1870 cmsis_arm_absmax_no_idx_f64(PyObject *obj, PyObject *args)
1871 {
1872
1873 PyObject *pSrc=NULL; // input
1874 float64_t *pSrc_converted=NULL; // input
1875 uint32_t blockSize; // input
1876 float64_t pResult; // output
1877
1878 if (PyArg_ParseTuple(args,"O",&pSrc))
1879 {
1880
1881 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1882 blockSize = arraySizepSrc ;
1883
1884 arm_absmax_no_idx_f64(pSrc_converted,blockSize,&pResult);
1885 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1886
1887 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1888
1889 FREEARGUMENT(pSrc_converted);
1890 Py_DECREF(pResultOBJ);
1891 return(pythonResult);
1892
1893 }
1894 return(NULL);
1895 }
1896
1897 static PyObject *
cmsis_arm_entropy_f32(PyObject * obj,PyObject * args)1898 cmsis_arm_entropy_f32(PyObject *obj, PyObject *args)
1899 {
1900
1901 PyObject *pSrc=NULL; // input
1902 float32_t *pSrc_converted=NULL; // input
1903 uint32_t blockSize; // input
1904 float32_t pResult; // output
1905
1906 if (PyArg_ParseTuple(args,"O",&pSrc))
1907 {
1908
1909 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1910 blockSize = arraySizepSrc ;
1911
1912 pResult=arm_entropy_f32(pSrc_converted,blockSize);
1913 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1914
1915 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1916
1917 FREEARGUMENT(pSrc_converted);
1918 Py_DECREF(pResultOBJ);
1919 return(pythonResult);
1920
1921 }
1922 return(NULL);
1923 }
1924
1925 static PyObject *
cmsis_arm_accumulate_f32(PyObject * obj,PyObject * args)1926 cmsis_arm_accumulate_f32(PyObject *obj, PyObject *args)
1927 {
1928
1929 PyObject *pSrc=NULL; // input
1930 float32_t *pSrc_converted=NULL; // input
1931 uint32_t blockSize; // input
1932 float32_t pResult; // output
1933
1934 if (PyArg_ParseTuple(args,"O",&pSrc))
1935 {
1936
1937 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
1938 blockSize = arraySizepSrc ;
1939
1940 arm_accumulate_f32(pSrc_converted,blockSize,&pResult);
1941 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
1942
1943 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1944
1945 FREEARGUMENT(pSrc_converted);
1946 Py_DECREF(pResultOBJ);
1947 return(pythonResult);
1948
1949 }
1950 return(NULL);
1951 }
1952
1953 static PyObject *
cmsis_arm_entropy_f64(PyObject * obj,PyObject * args)1954 cmsis_arm_entropy_f64(PyObject *obj, PyObject *args)
1955 {
1956
1957 PyObject *pSrc=NULL; // input
1958 float64_t *pSrc_converted=NULL; // input
1959 uint32_t blockSize; // input
1960 float64_t pResult; // output
1961
1962 if (PyArg_ParseTuple(args,"O",&pSrc))
1963 {
1964
1965 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1966 blockSize = arraySizepSrc ;
1967
1968 pResult=arm_entropy_f64(pSrc_converted,blockSize);
1969 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1970
1971 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
1972
1973 FREEARGUMENT(pSrc_converted);
1974 Py_DECREF(pResultOBJ);
1975 return(pythonResult);
1976
1977 }
1978 return(NULL);
1979 }
1980
1981 static PyObject *
cmsis_arm_accumulate_f64(PyObject * obj,PyObject * args)1982 cmsis_arm_accumulate_f64(PyObject *obj, PyObject *args)
1983 {
1984
1985 PyObject *pSrc=NULL; // input
1986 float64_t *pSrc_converted=NULL; // input
1987 uint32_t blockSize; // input
1988 float64_t pResult; // output
1989
1990 if (PyArg_ParseTuple(args,"O",&pSrc))
1991 {
1992
1993 GETARGUMENT(pSrc,NPY_DOUBLE,double,float64_t);
1994 blockSize = arraySizepSrc ;
1995
1996 arm_accumulate_f64(pSrc_converted,blockSize,&pResult);
1997 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
1998
1999 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2000
2001 FREEARGUMENT(pSrc_converted);
2002 Py_DECREF(pResultOBJ);
2003 return(pythonResult);
2004
2005 }
2006 return(NULL);
2007 }
2008
2009 static PyObject *
cmsis_arm_kullback_leibler_f32(PyObject * obj,PyObject * args)2010 cmsis_arm_kullback_leibler_f32(PyObject *obj, PyObject *args)
2011 {
2012
2013 PyObject *pSrcA=NULL; // input
2014 float32_t *pSrcA_converted=NULL; // input
2015 PyObject *pSrcB=NULL; // input
2016 float32_t *pSrcB_converted=NULL; // input
2017 uint32_t blockSize; // input
2018 float32_t result; // output
2019
2020 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2021 {
2022
2023 GETARGUMENT(pSrcA,NPY_DOUBLE,double,float32_t);
2024 GETARGUMENT(pSrcB,NPY_DOUBLE,double,float32_t);
2025 blockSize = arraySizepSrcA ;
2026
2027
2028
2029 result=arm_kullback_leibler_f32(pSrcA_converted,pSrcB_converted,blockSize);
2030 PyObject* resultOBJ=Py_BuildValue("f",result);
2031
2032 PyObject *pythonResult = Py_BuildValue("O",resultOBJ);
2033
2034 FREEARGUMENT(pSrcA_converted);
2035 FREEARGUMENT(pSrcB_converted);
2036 Py_DECREF(resultOBJ);
2037 return(pythonResult);
2038
2039 }
2040 return(NULL);
2041 }
2042
2043 static PyObject *
cmsis_arm_kullback_leibler_f64(PyObject * obj,PyObject * args)2044 cmsis_arm_kullback_leibler_f64(PyObject *obj, PyObject *args)
2045 {
2046
2047 PyObject *pSrcA=NULL; // input
2048 float64_t *pSrcA_converted=NULL; // input
2049 PyObject *pSrcB=NULL; // input
2050 float64_t *pSrcB_converted=NULL; // input
2051 uint32_t blockSize; // input
2052 float64_t result; // output
2053
2054 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2055 {
2056
2057 GETARGUMENT(pSrcA,NPY_DOUBLE,double,float64_t);
2058 GETARGUMENT(pSrcB,NPY_DOUBLE,double,float64_t);
2059 blockSize = arraySizepSrcA ;
2060
2061
2062
2063 result=arm_kullback_leibler_f64(pSrcA_converted,pSrcB_converted,blockSize);
2064 PyObject* resultOBJ=Py_BuildValue("d",result);
2065
2066 PyObject *pythonResult = Py_BuildValue("O",resultOBJ);
2067
2068 FREEARGUMENT(pSrcA_converted);
2069 FREEARGUMENT(pSrcB_converted);
2070 Py_DECREF(resultOBJ);
2071 return(pythonResult);
2072
2073 }
2074 return(NULL);
2075 }
2076
2077 static PyObject *
cmsis_arm_logsumexp_f32(PyObject * obj,PyObject * args)2078 cmsis_arm_logsumexp_f32(PyObject *obj, PyObject *args)
2079 {
2080
2081 PyObject *pSrc=NULL; // input
2082 float32_t *pSrc_converted=NULL; // input
2083 uint32_t blockSize; // input
2084 float32_t pResult; // output
2085
2086 if (PyArg_ParseTuple(args,"O",&pSrc))
2087 {
2088
2089 GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
2090 blockSize = arraySizepSrc ;
2091
2092 pResult=arm_logsumexp_f32(pSrc_converted,blockSize);
2093 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
2094
2095 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2096
2097 FREEARGUMENT(pSrc_converted);
2098 Py_DECREF(pResultOBJ);
2099 return(pythonResult);
2100
2101 }
2102 return(NULL);
2103 }
2104
2105 static PyObject *
cmsis_arm_logsumexp_dot_prod_f32(PyObject * obj,PyObject * args)2106 cmsis_arm_logsumexp_dot_prod_f32(PyObject *obj, PyObject *args)
2107 {
2108
2109 PyObject *pSrcA=NULL; // input
2110 float32_t *pSrcA_converted=NULL; // input
2111 PyObject *pSrcB=NULL; // input
2112 float32_t *pSrcB_converted=NULL; // input
2113 uint32_t blockSize; // input
2114 float32_t result; // output
2115
2116 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2117 {
2118
2119 GETARGUMENT(pSrcA,NPY_DOUBLE,double,float32_t);
2120 GETARGUMENT(pSrcB,NPY_DOUBLE,double,float32_t);
2121 blockSize = arraySizepSrcA ;
2122
2123 float32_t *tmp=PyMem_Malloc(sizeof(float32_t)*blockSize);
2124
2125 result=arm_logsumexp_dot_prod_f32(pSrcA_converted,pSrcB_converted,blockSize,tmp);
2126 PyMem_Free(tmp);
2127
2128 PyObject* resultOBJ=Py_BuildValue("f",result);
2129
2130 PyObject *pythonResult = Py_BuildValue("O",resultOBJ);
2131
2132 FREEARGUMENT(pSrcA_converted);
2133 FREEARGUMENT(pSrcB_converted);
2134 Py_DECREF(resultOBJ);
2135 return(pythonResult);
2136
2137 }
2138 return(NULL);
2139 }
2140
2141 static PyObject *
cmsis_arm_mse_q7(PyObject * obj,PyObject * args)2142 cmsis_arm_mse_q7(PyObject *obj, PyObject *args)
2143 {
2144
2145 PyObject *pSrcA=NULL; // input
2146 q7_t *pSrcA_converted=NULL; // input
2147 PyObject *pSrcB=NULL; // input
2148 q7_t *pSrcB_converted=NULL; // input
2149
2150 uint32_t blockSize; // input
2151 q7_t pResult; // output
2152
2153 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2154 {
2155
2156 GETARGUMENT(pSrcA,NPY_BYTE,int8_t,q7_t);
2157 GETARGUMENT(pSrcB,NPY_BYTE,int8_t,q7_t);
2158
2159 blockSize = arraySizepSrcA ;
2160
2161
2162 arm_mse_q7(pSrcA_converted,pSrcB_converted, blockSize,&pResult);
2163 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
2164
2165 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2166
2167 FREEARGUMENT(pSrcA_converted);
2168 FREEARGUMENT(pSrcB_converted);
2169
2170 Py_DECREF(pResultOBJ);
2171 return(pythonResult);
2172
2173 }
2174 return(NULL);
2175 }
2176
2177 static PyObject *
cmsis_arm_mse_q15(PyObject * obj,PyObject * args)2178 cmsis_arm_mse_q15(PyObject *obj, PyObject *args)
2179 {
2180
2181 PyObject *pSrcA=NULL; // input
2182 q15_t *pSrcA_converted=NULL; // input
2183 PyObject *pSrcB=NULL; // input
2184 q15_t *pSrcB_converted=NULL; // input
2185
2186 uint32_t blockSize; // input
2187 q15_t pResult; // output
2188
2189 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2190 {
2191
2192 GETARGUMENT(pSrcA,NPY_INT16,int16_t,q15_t);
2193 GETARGUMENT(pSrcB,NPY_INT16,int16_t,q15_t);
2194
2195 blockSize = arraySizepSrcA ;
2196
2197
2198 arm_mse_q15(pSrcA_converted,pSrcB_converted,blockSize,&pResult);
2199 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
2200
2201 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2202
2203 FREEARGUMENT(pSrcA_converted);
2204 FREEARGUMENT(pSrcB_converted);
2205
2206 Py_DECREF(pResultOBJ);
2207 return(pythonResult);
2208
2209 }
2210 return(NULL);
2211 }
2212
2213 static PyObject *
cmsis_arm_mse_q31(PyObject * obj,PyObject * args)2214 cmsis_arm_mse_q31(PyObject *obj, PyObject *args)
2215 {
2216
2217 PyObject *pSrcA=NULL; // input
2218 q31_t *pSrcA_converted=NULL; // input
2219 PyObject *pSrcB=NULL; // input
2220 q31_t *pSrcB_converted=NULL; // input
2221
2222 uint32_t blockSize; // input
2223 q31_t pResult; // output
2224
2225 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2226 {
2227
2228 GETARGUMENT(pSrcA,NPY_INT32,int32_t,q31_t);
2229 GETARGUMENT(pSrcB,NPY_INT32,int32_t,q31_t);
2230
2231 blockSize = arraySizepSrcA ;
2232
2233
2234 arm_mse_q31(pSrcA_converted,pSrcB_converted,blockSize,&pResult);
2235 PyObject* pResultOBJ=Py_BuildValue("i",pResult);
2236
2237 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2238
2239 FREEARGUMENT(pSrcA_converted);
2240 FREEARGUMENT(pSrcB_converted);
2241
2242 Py_DECREF(pResultOBJ);
2243 return(pythonResult);
2244
2245 }
2246 return(NULL);
2247 }
2248
2249 static PyObject *
cmsis_arm_mse_f32(PyObject * obj,PyObject * args)2250 cmsis_arm_mse_f32(PyObject *obj, PyObject *args)
2251 {
2252
2253 PyObject *pSrcA=NULL; // input
2254 float32_t *pSrcA_converted=NULL; // input
2255 PyObject *pSrcB=NULL; // input
2256 float32_t *pSrcB_converted=NULL; // input
2257
2258 uint32_t blockSize; // input
2259 float32_t pResult; // output
2260
2261 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2262 {
2263
2264 GETARGUMENT(pSrcA,NPY_DOUBLE,double,float32_t);
2265 GETARGUMENT(pSrcB,NPY_DOUBLE,double,float32_t);
2266
2267 blockSize = arraySizepSrcA ;
2268
2269
2270 arm_mse_f32(pSrcA_converted,pSrcB_converted,blockSize,&pResult);
2271 PyObject* pResultOBJ=Py_BuildValue("f",pResult);
2272
2273 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2274
2275 FREEARGUMENT(pSrcA_converted);
2276 FREEARGUMENT(pSrcB_converted);
2277
2278 Py_DECREF(pResultOBJ);
2279 return(pythonResult);
2280
2281 }
2282 return(NULL);
2283 }
2284
2285 static PyObject *
cmsis_arm_mse_f64(PyObject * obj,PyObject * args)2286 cmsis_arm_mse_f64(PyObject *obj, PyObject *args)
2287 {
2288
2289 PyObject *pSrcA=NULL; // input
2290 float64_t *pSrcA_converted=NULL; // input
2291 PyObject *pSrcB=NULL; // input
2292 float64_t *pSrcB_converted=NULL; // input
2293
2294 uint32_t blockSize; // input
2295 float64_t pResult; // output
2296
2297 if (PyArg_ParseTuple(args,"OO",&pSrcA,&pSrcB))
2298 {
2299
2300 GETARGUMENT(pSrcA,NPY_DOUBLE,double,float64_t);
2301 GETARGUMENT(pSrcB,NPY_DOUBLE,double,float64_t);
2302
2303 blockSize = arraySizepSrcA ;
2304
2305
2306 arm_mse_f64(pSrcA_converted,pSrcB_converted,blockSize,&pResult);
2307 PyObject* pResultOBJ=Py_BuildValue("d",pResult);
2308
2309 PyObject *pythonResult = Py_BuildValue("O",pResultOBJ);
2310
2311 FREEARGUMENT(pSrcA_converted);
2312 FREEARGUMENT(pSrcB_converted);
2313
2314 Py_DECREF(pResultOBJ);
2315 return(pythonResult);
2316
2317 }
2318 return(NULL);
2319 }
2320
2321 static PyMethodDef CMSISDSPMethods[] = {
2322
2323
2324 {"arm_power_q31", cmsis_arm_power_q31, METH_VARARGS,""},
2325 {"arm_power_f32", cmsis_arm_power_f32, METH_VARARGS,""},
2326 {"arm_power_f64", cmsis_arm_power_f64, METH_VARARGS,""},
2327 {"arm_power_q15", cmsis_arm_power_q15, METH_VARARGS,""},
2328 {"arm_power_q7", cmsis_arm_power_q7, METH_VARARGS,""},
2329 {"arm_mean_q7", cmsis_arm_mean_q7, METH_VARARGS,""},
2330 {"arm_mean_q15", cmsis_arm_mean_q15, METH_VARARGS,""},
2331 {"arm_mean_q31", cmsis_arm_mean_q31, METH_VARARGS,""},
2332 {"arm_mean_f32", cmsis_arm_mean_f32, METH_VARARGS,""},
2333 {"arm_mean_f64", cmsis_arm_mean_f64, METH_VARARGS,""},
2334 {"arm_var_f32", cmsis_arm_var_f32, METH_VARARGS,""},
2335 {"arm_var_f64", cmsis_arm_var_f64, METH_VARARGS,""},
2336 {"arm_var_q31", cmsis_arm_var_q31, METH_VARARGS,""},
2337 {"arm_var_q15", cmsis_arm_var_q15, METH_VARARGS,""},
2338 {"arm_rms_f32", cmsis_arm_rms_f32, METH_VARARGS,""},
2339 {"arm_rms_q31", cmsis_arm_rms_q31, METH_VARARGS,""},
2340 {"arm_rms_q15", cmsis_arm_rms_q15, METH_VARARGS,""},
2341 {"arm_std_f32", cmsis_arm_std_f32, METH_VARARGS,""},
2342 {"arm_std_f64", cmsis_arm_std_f64, METH_VARARGS,""},
2343
2344 {"arm_std_q31", cmsis_arm_std_q31, METH_VARARGS,""},
2345 {"arm_std_q15", cmsis_arm_std_q15, METH_VARARGS,""},
2346
2347 {"arm_min_q7", cmsis_arm_min_q7, METH_VARARGS,""},
2348 {"arm_min_no_idx_q7", cmsis_arm_min_no_idx_q7, METH_VARARGS,""},
2349 {"arm_min_no_idx_q15", cmsis_arm_min_no_idx_q15, METH_VARARGS,""},
2350 {"arm_min_no_idx_q31", cmsis_arm_min_no_idx_q31, METH_VARARGS,""},
2351 {"arm_min_q15", cmsis_arm_min_q15, METH_VARARGS,""},
2352 {"arm_min_q31", cmsis_arm_min_q31, METH_VARARGS,""},
2353 {"arm_min_f32", cmsis_arm_min_f32, METH_VARARGS,""},
2354 {"arm_min_f64", cmsis_arm_min_f64, METH_VARARGS,""},
2355 {"arm_min_no_idx_f32", cmsis_arm_min_no_idx_f32, METH_VARARGS,""},
2356 {"arm_min_no_idx_f64", cmsis_arm_min_no_idx_f64, METH_VARARGS,""},
2357
2358 {"arm_absmin_q7", cmsis_arm_absmin_q7, METH_VARARGS,""},
2359 {"arm_absmin_q15", cmsis_arm_absmin_q15, METH_VARARGS,""},
2360 {"arm_absmin_q31", cmsis_arm_absmin_q31, METH_VARARGS,""},
2361 {"arm_absmin_no_idx_q7", cmsis_arm_absmin_no_idx_q7, METH_VARARGS,""},
2362 {"arm_absmin_no_idx_q15", cmsis_arm_absmin_no_idx_q15, METH_VARARGS,""},
2363 {"arm_absmin_no_idx_q31", cmsis_arm_absmin_no_idx_q31, METH_VARARGS,""},
2364 {"arm_absmin_f32", cmsis_arm_absmin_f32, METH_VARARGS,""},
2365 {"arm_absmin_f64", cmsis_arm_absmin_f64, METH_VARARGS,""},
2366 {"arm_absmin_no_idx_f64", cmsis_arm_absmin_no_idx_f64, METH_VARARGS,""},
2367 {"arm_absmin_no_idx_f32", cmsis_arm_absmin_no_idx_f32, METH_VARARGS,""},
2368 {"arm_max_q7", cmsis_arm_max_q7, METH_VARARGS,""},
2369 {"arm_max_q15", cmsis_arm_max_q15, METH_VARARGS,""},
2370 {"arm_max_q31", cmsis_arm_max_q31, METH_VARARGS,""},
2371 {"arm_absmax_q7", cmsis_arm_absmax_q7, METH_VARARGS,""},
2372 {"arm_absmax_q15", cmsis_arm_absmax_q15, METH_VARARGS,""},
2373 {"arm_absmax_q31", cmsis_arm_absmax_q31, METH_VARARGS,""},
2374 {"arm_max_f32", cmsis_arm_max_f32, METH_VARARGS,""},
2375 {"arm_max_f64", cmsis_arm_max_f64, METH_VARARGS,""},
2376
2377 {"arm_max_no_idx_f32", cmsis_arm_max_no_idx_f32, METH_VARARGS,""},
2378 {"arm_max_no_idx_f64", cmsis_arm_max_no_idx_f64, METH_VARARGS,""},
2379
2380 {"arm_absmax_f32", cmsis_arm_absmax_f32, METH_VARARGS,""},
2381 {"arm_absmax_f64", cmsis_arm_absmax_f64, METH_VARARGS,""},
2382
2383 {"arm_absmax_no_idx_f32", cmsis_arm_absmax_no_idx_f32, METH_VARARGS,""},
2384 {"arm_absmax_no_idx_f64", cmsis_arm_absmax_no_idx_f64, METH_VARARGS,""},
2385
2386 {"arm_max_no_idx_q7", cmsis_arm_max_no_idx_q7, METH_VARARGS,""},
2387 {"arm_max_no_idx_q15", cmsis_arm_max_no_idx_q15, METH_VARARGS,""},
2388 {"arm_max_no_idx_q31", cmsis_arm_max_no_idx_q31, METH_VARARGS,""},
2389 {"arm_absmax_no_idx_q7", cmsis_arm_absmax_no_idx_q7, METH_VARARGS,""},
2390 {"arm_absmax_no_idx_q15", cmsis_arm_absmax_no_idx_q15, METH_VARARGS,""},
2391 {"arm_absmax_no_idx_q31", cmsis_arm_absmax_no_idx_q31, METH_VARARGS,""},
2392 {"arm_entropy_f32", cmsis_arm_entropy_f32, METH_VARARGS,""},
2393 {"arm_entropy_f64", cmsis_arm_entropy_f64, METH_VARARGS,""},
2394 {"arm_kullback_leibler_f32", cmsis_arm_kullback_leibler_f32, METH_VARARGS,""},
2395 {"arm_kullback_leibler_f64", cmsis_arm_kullback_leibler_f64, METH_VARARGS,""},
2396
2397 {"arm_logsumexp_f32", cmsis_arm_logsumexp_f32, METH_VARARGS,""},
2398 {"arm_logsumexp_dot_prod_f32", cmsis_arm_logsumexp_dot_prod_f32, METH_VARARGS,""},
2399 {"arm_mse_q7", cmsis_arm_mse_q7, METH_VARARGS,""},
2400 {"arm_mse_q15", cmsis_arm_mse_q15, METH_VARARGS,""},
2401 {"arm_mse_q31", cmsis_arm_mse_q31, METH_VARARGS,""},
2402 {"arm_mse_f32", cmsis_arm_mse_f32, METH_VARARGS,""},
2403 {"arm_mse_f64", cmsis_arm_mse_f64, METH_VARARGS,""},
2404 {"arm_accumulate_f32", cmsis_arm_accumulate_f32, METH_VARARGS,""},
2405 {"arm_accumulate_f64", cmsis_arm_accumulate_f64, METH_VARARGS,""},
2406
2407
2408 {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
2409 {NULL, NULL, 0, NULL} /* Sentinel */
2410 };
2411
2412 #ifdef IS_PY3K
cmsisdsp_traverse(PyObject * m,visitproc visit,void * arg)2413 static int cmsisdsp_traverse(PyObject *m, visitproc visit, void *arg) {
2414 Py_VISIT(GETSTATE(m)->error);
2415 return 0;
2416 }
2417
cmsisdsp_clear(PyObject * m)2418 static int cmsisdsp_clear(PyObject *m) {
2419 Py_CLEAR(GETSTATE(m)->error);
2420 return 0;
2421 }
2422
2423
2424 static struct PyModuleDef moduledef = {
2425 PyModuleDef_HEAD_INIT,
2426 MODNAME,
2427 NULL,
2428 sizeof(struct module_state),
2429 CMSISDSPMethods,
2430 NULL,
2431 cmsisdsp_traverse,
2432 cmsisdsp_clear,
2433 NULL
2434 };
2435
2436 #define INITERROR return NULL
2437
2438 PyMODINIT_FUNC
CAT(PyInit_,MODINITNAME)2439 CAT(PyInit_,MODINITNAME)(void)
2440
2441
2442 #else
2443 #define INITERROR return
2444
2445 void CAT(init,MODINITNAME)(void)
2446 #endif
2447 {
2448 import_array();
2449
2450 #ifdef IS_PY3K
2451 PyObject *module = PyModule_Create(&moduledef);
2452 #else
2453 PyObject *module = Py_InitModule(MODNAME, CMSISDSPMethods);
2454 #endif
2455
2456 if (module == NULL)
2457 INITERROR;
2458 struct module_state *st = GETSTATE(module);
2459
2460 st->error = PyErr_NewException(MODNAME".Error", NULL, NULL);
2461 if (st->error == NULL) {
2462 Py_DECREF(module);
2463 INITERROR;
2464 }
2465
2466
2467 typeRegistration(module);
2468
2469 #ifdef IS_PY3K
2470 return module;
2471 #endif
2472 }