You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/PythonWrapper/cmsisdsp_pkg/src/cmsisdsp_transform.c

3233 lines
82 KiB
C

/* ----------------------------------------------------------------------
* Project: CMSIS DSP Python Wrapper
* Title: cmsismodule.h
* Description: C code for the CMSIS-DSP Python wrapper
*
* $Date: 27 April 2021
* $Revision: V1.0
*
* Target Processor: Cortex-M cores
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define MODNAME "cmsisdsp_transform"
#define MODINITNAME cmsisdsp_transform
#include "cmsisdsp_module.h"
NUMPYVECTORFROMBUFFER(f32,float32_t,NPY_FLOAT);
typedef struct {
PyObject_HEAD
arm_cfft_radix2_instance_q15 *instance;
} dsp_arm_cfft_radix2_instance_q15Object;
static void
arm_cfft_radix2_instance_q15_dealloc(dsp_arm_cfft_radix2_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix2_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix2_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix2_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_q15));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix2_instance_q15_init(dsp_arm_cfft_radix2_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix2_instance_q15,fftLen,"h");
GETFIELD(arm_cfft_radix2_instance_q15,ifftFlag,"i");
GETFIELD(arm_cfft_radix2_instance_q15,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix2_instance_q15,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix2_instance_q15,bitRevFactor,"h");
static PyMethodDef arm_cfft_radix2_instance_q15_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_q15_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q15_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q15_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_q15_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_q15_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_radix4_instance_q15 *instance;
} dsp_arm_cfft_radix4_instance_q15Object;
static void
arm_cfft_radix4_instance_q15_dealloc(dsp_arm_cfft_radix4_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix4_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix4_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix4_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_q15));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix4_instance_q15_init(dsp_arm_cfft_radix4_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix4_instance_q15,fftLen,"h");
GETFIELD(arm_cfft_radix4_instance_q15,ifftFlag,"i");
GETFIELD(arm_cfft_radix4_instance_q15,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix4_instance_q15,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix4_instance_q15,bitRevFactor,"h");
static PyMethodDef arm_cfft_radix4_instance_q15_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_q15_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q15_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q15_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_q15_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_q15_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_radix2_instance_q31 *instance;
} dsp_arm_cfft_radix2_instance_q31Object;
static void
arm_cfft_radix2_instance_q31_dealloc(dsp_arm_cfft_radix2_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix2_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix2_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix2_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_q31));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix2_instance_q31_init(dsp_arm_cfft_radix2_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix2_instance_q31,fftLen,"h");
GETFIELD(arm_cfft_radix2_instance_q31,ifftFlag,"i");
GETFIELD(arm_cfft_radix2_instance_q31,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix2_instance_q31,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix2_instance_q31,bitRevFactor,"h");
static PyMethodDef arm_cfft_radix2_instance_q31_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_q31_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q31_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_q31_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_q31_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_q31_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_radix4_instance_q31 *instance;
} dsp_arm_cfft_radix4_instance_q31Object;
static void
arm_cfft_radix4_instance_q31_dealloc(dsp_arm_cfft_radix4_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix4_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix4_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix4_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_q31));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix4_instance_q31_init(dsp_arm_cfft_radix4_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihh", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix4_instance_q31,fftLen,"h");
GETFIELD(arm_cfft_radix4_instance_q31,ifftFlag,"i");
GETFIELD(arm_cfft_radix4_instance_q31,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix4_instance_q31,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix4_instance_q31,bitRevFactor,"h");
static PyMethodDef arm_cfft_radix4_instance_q31_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_q31_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q31_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_q31_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_q31_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_q31_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_radix2_instance_f32 *instance;
} dsp_arm_cfft_radix2_instance_f32Object;
static void
arm_cfft_radix2_instance_f32_dealloc(dsp_arm_cfft_radix2_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix2_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix2_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix2_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix2_instance_f32));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix2_instance_f32_init(dsp_arm_cfft_radix2_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor","onebyfftLen",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihhf", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
,&self->instance->onebyfftLen
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix2_instance_f32,fftLen,"h");
GETFIELD(arm_cfft_radix2_instance_f32,ifftFlag,"i");
GETFIELD(arm_cfft_radix2_instance_f32,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix2_instance_f32,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix2_instance_f32,bitRevFactor,"h");
GETFIELD(arm_cfft_radix2_instance_f32,onebyfftLen,"f");
static PyMethodDef arm_cfft_radix2_instance_f32_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix2_instance_f32_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix2_instance_f32_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix2_instance_f32_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix2_instance_f32_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix2_instance_f32_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{"onebyfftLen", (PyCFunction) Method_arm_cfft_radix2_instance_f32_onebyfftLen,METH_NOARGS,"onebyfftLen"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_radix4_instance_f32 *instance;
} dsp_arm_cfft_radix4_instance_f32Object;
static void
arm_cfft_radix4_instance_f32_dealloc(dsp_arm_cfft_radix4_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_radix4_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_radix4_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_radix4_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_radix4_instance_f32));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_radix4_instance_f32_init(dsp_arm_cfft_radix4_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","ifftFlag","bitReverseFlag","twidCoefModifier","bitRevFactor","onebyfftLen",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hiihhf", kwlist,&self->instance->fftLen
,&self->instance->ifftFlag
,&self->instance->bitReverseFlag
,&self->instance->twidCoefModifier
,&self->instance->bitRevFactor
,&self->instance->onebyfftLen
))
{
}
return 0;
}
GETFIELD(arm_cfft_radix4_instance_f32,fftLen,"h");
GETFIELD(arm_cfft_radix4_instance_f32,ifftFlag,"i");
GETFIELD(arm_cfft_radix4_instance_f32,bitReverseFlag,"i");
GETFIELD(arm_cfft_radix4_instance_f32,twidCoefModifier,"h");
GETFIELD(arm_cfft_radix4_instance_f32,bitRevFactor,"h");
GETFIELD(arm_cfft_radix4_instance_f32,onebyfftLen,"f");
static PyMethodDef arm_cfft_radix4_instance_f32_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_radix4_instance_f32_fftLen,METH_NOARGS,"fftLen"},
{"ifftFlag", (PyCFunction) Method_arm_cfft_radix4_instance_f32_ifftFlag,METH_NOARGS,"ifftFlag"},
{"bitReverseFlag", (PyCFunction) Method_arm_cfft_radix4_instance_f32_bitReverseFlag,METH_NOARGS,"bitReverseFlag"},
{"twidCoefModifier", (PyCFunction) Method_arm_cfft_radix4_instance_f32_twidCoefModifier,METH_NOARGS,"twidCoefModifier"},
{"bitRevFactor", (PyCFunction) Method_arm_cfft_radix4_instance_f32_bitRevFactor,METH_NOARGS,"bitRevFactor"},
{"onebyfftLen", (PyCFunction) Method_arm_cfft_radix4_instance_f32_onebyfftLen,METH_NOARGS,"onebyfftLen"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_instance_q15 *instance;
} dsp_arm_cfft_instance_q15Object;
static void
arm_cfft_instance_q15_dealloc(dsp_arm_cfft_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_q15));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_instance_q15_init(dsp_arm_cfft_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","bitRevLength",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
,&self->instance->bitRevLength
))
{
}
return 0;
}
GETFIELD(arm_cfft_instance_q15,fftLen,"h");
GETFIELD(arm_cfft_instance_q15,bitRevLength,"h");
static PyMethodDef arm_cfft_instance_q15_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_instance_q15_fftLen,METH_NOARGS,"fftLen"},
{"bitRevLength", (PyCFunction) Method_arm_cfft_instance_q15_bitRevLength,METH_NOARGS,"bitRevLength"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_instance_q31 *instance;
} dsp_arm_cfft_instance_q31Object;
static void
arm_cfft_instance_q31_dealloc(dsp_arm_cfft_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_q31));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_instance_q31_init(dsp_arm_cfft_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","bitRevLength",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
,&self->instance->bitRevLength
))
{
}
return 0;
}
GETFIELD(arm_cfft_instance_q31,fftLen,"h");
GETFIELD(arm_cfft_instance_q31,bitRevLength,"h");
static PyMethodDef arm_cfft_instance_q31_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_instance_q31_fftLen,METH_NOARGS,"fftLen"},
{"bitRevLength", (PyCFunction) Method_arm_cfft_instance_q31_bitRevLength,METH_NOARGS,"bitRevLength"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_instance_f64 *instance;
} dsp_arm_cfft_instance_f64Object;
static void
arm_cfft_instance_f64_dealloc(dsp_arm_cfft_instance_f64Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_instance_f64_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_instance_f64Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_instance_f64Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_f64));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_instance_f64_init(dsp_arm_cfft_instance_f64Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","bitRevLength",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
,&self->instance->bitRevLength
))
{
}
return 0;
}
GETFIELD(arm_cfft_instance_f64,fftLen,"h");
GETFIELD(arm_cfft_instance_f64,bitRevLength,"h");
static PyMethodDef arm_cfft_instance_f64_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_instance_f64_fftLen,METH_NOARGS,"fftLen"},
{"bitRevLength", (PyCFunction) Method_arm_cfft_instance_f64_bitRevLength,METH_NOARGS,"bitRevLength"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_cfft_instance_f32 *instance;
} dsp_arm_cfft_instance_f32Object;
static void
arm_cfft_instance_f32_dealloc(dsp_arm_cfft_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_cfft_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_cfft_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_cfft_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_cfft_instance_f32));
self->instance->pTwiddle = NULL;
self->instance->pBitRevTable = NULL;
}
return (PyObject *)self;
}
static int
arm_cfft_instance_f32_init(dsp_arm_cfft_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","bitRevLength",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hh", kwlist,&self->instance->fftLen
,&self->instance->bitRevLength
))
{
}
return 0;
}
GETFIELD(arm_cfft_instance_f32,fftLen,"h");
GETFIELD(arm_cfft_instance_f32,bitRevLength,"h");
static PyMethodDef arm_cfft_instance_f32_methods[] = {
{"fftLen", (PyCFunction) Method_arm_cfft_instance_f32_fftLen,METH_NOARGS,"fftLen"},
{"bitRevLength", (PyCFunction) Method_arm_cfft_instance_f32_bitRevLength,METH_NOARGS,"bitRevLength"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_rfft_instance_q15 *instance;
} dsp_arm_rfft_instance_q15Object;
static void
arm_rfft_instance_q15_dealloc(dsp_arm_rfft_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_rfft_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_rfft_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_rfft_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_q15));
self->instance->pTwiddleAReal = NULL;
self->instance->pTwiddleBReal = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_rfft_instance_q15_init(dsp_arm_rfft_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddleAReal=NULL;
PyObject *pTwiddleBReal=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"fftLenReal","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|iiii", kwlist,&self->instance->fftLenReal
,&self->instance->ifftFlagR
,&self->instance->bitReverseFlagR
,&self->instance->twidCoefRModifier
))
{
}
return 0;
}
GETFIELD(arm_rfft_instance_q15,fftLenReal,"i");
GETFIELD(arm_rfft_instance_q15,ifftFlagR,"i");
GETFIELD(arm_rfft_instance_q15,bitReverseFlagR,"i");
GETFIELD(arm_rfft_instance_q15,twidCoefRModifier,"i");
static PyMethodDef arm_rfft_instance_q15_methods[] = {
{"fftLenReal", (PyCFunction) Method_arm_rfft_instance_q15_fftLenReal,METH_NOARGS,"fftLenReal"},
{"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_q15_ifftFlagR,METH_NOARGS,"ifftFlagR"},
{"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_q15_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
{"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_q15_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_rfft_instance_q31 *instance;
} dsp_arm_rfft_instance_q31Object;
static void
arm_rfft_instance_q31_dealloc(dsp_arm_rfft_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_rfft_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_rfft_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_rfft_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_q31));
self->instance->pTwiddleAReal = NULL;
self->instance->pTwiddleBReal = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_rfft_instance_q31_init(dsp_arm_rfft_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddleAReal=NULL;
PyObject *pTwiddleBReal=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"fftLenReal","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|iiii", kwlist,&self->instance->fftLenReal
,&self->instance->ifftFlagR
,&self->instance->bitReverseFlagR
,&self->instance->twidCoefRModifier
))
{
}
return 0;
}
GETFIELD(arm_rfft_instance_q31,fftLenReal,"i");
GETFIELD(arm_rfft_instance_q31,ifftFlagR,"i");
GETFIELD(arm_rfft_instance_q31,bitReverseFlagR,"i");
GETFIELD(arm_rfft_instance_q31,twidCoefRModifier,"i");
static PyMethodDef arm_rfft_instance_q31_methods[] = {
{"fftLenReal", (PyCFunction) Method_arm_rfft_instance_q31_fftLenReal,METH_NOARGS,"fftLenReal"},
{"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_q31_ifftFlagR,METH_NOARGS,"ifftFlagR"},
{"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_q31_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
{"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_q31_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_rfft_instance_f32 *instance;
} dsp_arm_rfft_instance_f32Object;
static void
arm_rfft_instance_f32_dealloc(dsp_arm_rfft_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_rfft_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_rfft_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_rfft_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_rfft_instance_f32));
self->instance->pTwiddleAReal = NULL;
self->instance->pTwiddleBReal = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_rfft_instance_f32_init(dsp_arm_rfft_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddleAReal=NULL;
PyObject *pTwiddleBReal=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"fftLenReal","fftLenBy2","ifftFlagR","bitReverseFlagR","twidCoefRModifier",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|ihiii", kwlist,&self->instance->fftLenReal
,&self->instance->fftLenBy2
,&self->instance->ifftFlagR
,&self->instance->bitReverseFlagR
,&self->instance->twidCoefRModifier
))
{
}
return 0;
}
GETFIELD(arm_rfft_instance_f32,fftLenReal,"i");
GETFIELD(arm_rfft_instance_f32,fftLenBy2,"h");
GETFIELD(arm_rfft_instance_f32,ifftFlagR,"i");
GETFIELD(arm_rfft_instance_f32,bitReverseFlagR,"i");
GETFIELD(arm_rfft_instance_f32,twidCoefRModifier,"i");
static PyMethodDef arm_rfft_instance_f32_methods[] = {
{"fftLenReal", (PyCFunction) Method_arm_rfft_instance_f32_fftLenReal,METH_NOARGS,"fftLenReal"},
{"fftLenBy2", (PyCFunction) Method_arm_rfft_instance_f32_fftLenBy2,METH_NOARGS,"fftLenBy2"},
{"ifftFlagR", (PyCFunction) Method_arm_rfft_instance_f32_ifftFlagR,METH_NOARGS,"ifftFlagR"},
{"bitReverseFlagR", (PyCFunction) Method_arm_rfft_instance_f32_bitReverseFlagR,METH_NOARGS,"bitReverseFlagR"},
{"twidCoefRModifier", (PyCFunction) Method_arm_rfft_instance_f32_twidCoefRModifier,METH_NOARGS,"twidCoefRModifier"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_rfft_fast_instance_f64 *instance;
} dsp_arm_rfft_fast_instance_f64Object;
static void
arm_rfft_fast_instance_f64_dealloc(dsp_arm_rfft_fast_instance_f64Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_rfft_fast_instance_f64_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_rfft_fast_instance_f64Object *self;
//printf("New called\n");
self = (dsp_arm_rfft_fast_instance_f64Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_rfft_fast_instance_f64));
self->instance->pTwiddleRFFT = NULL;
}
return (PyObject *)self;
}
static int
arm_rfft_fast_instance_f64_init(dsp_arm_rfft_fast_instance_f64Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddleRFFT=NULL;
char *kwlist[] = {
"Sint","fftLenRFFT",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|?h", kwlist,&self->instance->Sint
,&self->instance->fftLenRFFT
))
{
}
return 0;
}
GETFIELD(arm_rfft_fast_instance_f64,Sint,"?");
GETFIELD(arm_rfft_fast_instance_f64,fftLenRFFT,"h");
static PyMethodDef arm_rfft_fast_instance_f64_methods[] = {
{"Sint", (PyCFunction) Method_arm_rfft_fast_instance_f64_Sint,METH_NOARGS,"Sint"},
{"fftLenRFFT", (PyCFunction) Method_arm_rfft_fast_instance_f64_fftLenRFFT,METH_NOARGS,"fftLenRFFT"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_rfft_fast_instance_f32 *instance;
} dsp_arm_rfft_fast_instance_f32Object;
static void
arm_rfft_fast_instance_f32_dealloc(dsp_arm_rfft_fast_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_rfft_fast_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_rfft_fast_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_rfft_fast_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_rfft_fast_instance_f32));
self->instance->pTwiddleRFFT = NULL;
}
return (PyObject *)self;
}
static int
arm_rfft_fast_instance_f32_init(dsp_arm_rfft_fast_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddleRFFT=NULL;
char *kwlist[] = {
"Sint","fftLenRFFT",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|?h", kwlist,&self->instance->Sint
,&self->instance->fftLenRFFT
))
{
}
return 0;
}
GETFIELD(arm_rfft_fast_instance_f32,Sint,"?");
GETFIELD(arm_rfft_fast_instance_f32,fftLenRFFT,"h");
static PyMethodDef arm_rfft_fast_instance_f32_methods[] = {
{"Sint", (PyCFunction) Method_arm_rfft_fast_instance_f32_Sint,METH_NOARGS,"Sint"},
{"fftLenRFFT", (PyCFunction) Method_arm_rfft_fast_instance_f32_fftLenRFFT,METH_NOARGS,"fftLenRFFT"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_dct4_instance_f32 *instance;
} dsp_arm_dct4_instance_f32Object;
static void
arm_dct4_instance_f32_dealloc(dsp_arm_dct4_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_dct4_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_dct4_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_dct4_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_f32));
self->instance->pTwiddle = NULL;
self->instance->pCosFactor = NULL;
self->instance->pRfft = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_dct4_instance_f32_init(dsp_arm_dct4_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pCosFactor=NULL;
PyObject *pRfft=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"N","Nby2","normalize",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhf", kwlist,&self->instance->N
,&self->instance->Nby2
,&self->instance->normalize
))
{
}
return 0;
}
GETFIELD(arm_dct4_instance_f32,N,"h");
GETFIELD(arm_dct4_instance_f32,Nby2,"h");
GETFIELD(arm_dct4_instance_f32,normalize,"f");
static PyMethodDef arm_dct4_instance_f32_methods[] = {
{"N", (PyCFunction) Method_arm_dct4_instance_f32_N,METH_NOARGS,"N"},
{"Nby2", (PyCFunction) Method_arm_dct4_instance_f32_Nby2,METH_NOARGS,"Nby2"},
{"normalize", (PyCFunction) Method_arm_dct4_instance_f32_normalize,METH_NOARGS,"normalize"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_dct4_instance_q31 *instance;
} dsp_arm_dct4_instance_q31Object;
static void
arm_dct4_instance_q31_dealloc(dsp_arm_dct4_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_dct4_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_dct4_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_dct4_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_q31));
self->instance->pTwiddle = NULL;
self->instance->pCosFactor = NULL;
self->instance->pRfft = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_dct4_instance_q31_init(dsp_arm_dct4_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pCosFactor=NULL;
PyObject *pRfft=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"N","Nby2","normalize",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhi", kwlist,&self->instance->N
,&self->instance->Nby2
,&self->instance->normalize
))
{
}
return 0;
}
GETFIELD(arm_dct4_instance_q31,N,"h");
GETFIELD(arm_dct4_instance_q31,Nby2,"h");
GETFIELD(arm_dct4_instance_q31,normalize,"i");
static PyMethodDef arm_dct4_instance_q31_methods[] = {
{"N", (PyCFunction) Method_arm_dct4_instance_q31_N,METH_NOARGS,"N"},
{"Nby2", (PyCFunction) Method_arm_dct4_instance_q31_Nby2,METH_NOARGS,"Nby2"},
{"normalize", (PyCFunction) Method_arm_dct4_instance_q31_normalize,METH_NOARGS,"normalize"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_dct4_instance_q15 *instance;
} dsp_arm_dct4_instance_q15Object;
static void
arm_dct4_instance_q15_dealloc(dsp_arm_dct4_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_dct4_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_dct4_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_dct4_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_dct4_instance_q15));
self->instance->pTwiddle = NULL;
self->instance->pCosFactor = NULL;
self->instance->pRfft = NULL;
self->instance->pCfft = NULL;
}
return (PyObject *)self;
}
static int
arm_dct4_instance_q15_init(dsp_arm_dct4_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pCosFactor=NULL;
PyObject *pRfft=NULL;
PyObject *pCfft=NULL;
char *kwlist[] = {
"N","Nby2","normalize",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|hhh", kwlist,&self->instance->N
,&self->instance->Nby2
,&self->instance->normalize
))
{
}
return 0;
}
GETFIELD(arm_dct4_instance_q15,N,"h");
GETFIELD(arm_dct4_instance_q15,Nby2,"h");
GETFIELD(arm_dct4_instance_q15,normalize,"h");
static PyMethodDef arm_dct4_instance_q15_methods[] = {
{"N", (PyCFunction) Method_arm_dct4_instance_q15_N,METH_NOARGS,"N"},
{"Nby2", (PyCFunction) Method_arm_dct4_instance_q15_Nby2,METH_NOARGS,"Nby2"},
{"normalize", (PyCFunction) Method_arm_dct4_instance_q15_normalize,METH_NOARGS,"normalize"},
{NULL} /* Sentinel */
};
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);
typedef struct {
PyObject_HEAD
arm_mfcc_instance_f32 *instance;
} dsp_arm_mfcc_instance_f32Object;
typedef struct {
PyObject_HEAD
arm_mfcc_instance_q31 *instance;
} dsp_arm_mfcc_instance_q31Object;
typedef struct {
PyObject_HEAD
arm_mfcc_instance_q15 *instance;
} dsp_arm_mfcc_instance_q15Object;
static void
arm_mfcc_instance_f32_dealloc(dsp_arm_mfcc_instance_f32Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static void
arm_mfcc_instance_q31_dealloc(dsp_arm_mfcc_instance_q31Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static void
arm_mfcc_instance_q15_dealloc(dsp_arm_mfcc_instance_q15Object* self)
{
//printf("Dealloc called\n");
if (self->instance)
{
PyMem_Free(self->instance);
}
Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyObject *
arm_mfcc_instance_f32_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_mfcc_instance_f32Object *self;
//printf("New called\n");
self = (dsp_arm_mfcc_instance_f32Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_f32));
self->instance->dctCoefs = NULL;
self->instance->filterCoefs = NULL;
self->instance->windowCoefs = NULL;
self->instance->filterPos = NULL;
self->instance->filterLengths = NULL;
}
return (PyObject *)self;
}
static PyObject *
arm_mfcc_instance_q31_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_mfcc_instance_q31Object *self;
//printf("New called\n");
self = (dsp_arm_mfcc_instance_q31Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_q31));
self->instance->dctCoefs = NULL;
self->instance->filterCoefs = NULL;
self->instance->windowCoefs = NULL;
self->instance->filterPos = NULL;
self->instance->filterLengths = NULL;
}
return (PyObject *)self;
}
static PyObject *
arm_mfcc_instance_q15_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
dsp_arm_mfcc_instance_q15Object *self;
//printf("New called\n");
self = (dsp_arm_mfcc_instance_q15Object *)type->tp_alloc(type, 0);
//printf("alloc called\n");
if (self != NULL) {
self->instance = PyMem_Malloc(sizeof(arm_mfcc_instance_q15));
self->instance->dctCoefs = NULL;
self->instance->filterCoefs = NULL;
self->instance->windowCoefs = NULL;
self->instance->filterPos = NULL;
self->instance->filterLengths = NULL;
}
return (PyObject *)self;
}
static int
arm_mfcc_instance_f32_init(dsp_arm_mfcc_instance_f32Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","nbMelFilters","nbDctOutputs",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
))
{
}
return 0;
}
static int
arm_mfcc_instance_q31_init(dsp_arm_mfcc_instance_q31Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","nbMelFilters","nbDctOutputs",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
))
{
}
return 0;
}
static int
arm_mfcc_instance_q15_init(dsp_arm_mfcc_instance_q15Object *self, PyObject *args, PyObject *kwds)
{
PyObject *pTwiddle=NULL;
PyObject *pBitRevTable=NULL;
char *kwlist[] = {
"fftLen","nbMelFilters","nbDctOutputs",NULL
};
if (PyArg_ParseTupleAndKeywords(args, kwds, "|iii", kwlist,&self->instance->fftLen
,&self->instance->nbMelFilters,&self->instance->nbDctOutputs
))
{
}
return 0;
}
GETFIELD(arm_mfcc_instance_f32,fftLen,"i");
GETFIELD(arm_mfcc_instance_f32,nbMelFilters,"i");
GETFIELD(arm_mfcc_instance_f32,nbDctOutputs,"i");
GETFIELD(arm_mfcc_instance_q31,fftLen,"i");
GETFIELD(arm_mfcc_instance_q31,nbMelFilters,"i");
GETFIELD(arm_mfcc_instance_q31,nbDctOutputs,"i");
GETFIELD(arm_mfcc_instance_q15,fftLen,"i");
GETFIELD(arm_mfcc_instance_q15,nbMelFilters,"i");
GETFIELD(arm_mfcc_instance_q15,nbDctOutputs,"i");
static PyMethodDef arm_mfcc_instance_f32_methods[] = {
{"fftLen", (PyCFunction) Method_arm_mfcc_instance_f32_fftLen,METH_NOARGS,"fftLen"},
{"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_f32_nbMelFilters,METH_NOARGS,"nbMelFilters"},
{"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_f32_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
{NULL} /* Sentinel */
};
static PyMethodDef arm_mfcc_instance_q31_methods[] = {
{"fftLen", (PyCFunction) Method_arm_mfcc_instance_q31_fftLen,METH_NOARGS,"fftLen"},
{"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_q31_nbMelFilters,METH_NOARGS,"nbMelFilters"},
{"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_q31_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
{NULL} /* Sentinel */
};
static PyMethodDef arm_mfcc_instance_q15_methods[] = {
{"fftLen", (PyCFunction) Method_arm_mfcc_instance_q15_fftLen,METH_NOARGS,"fftLen"},
{"nbMelFilters", (PyCFunction) Method_arm_mfcc_instance_q15_nbMelFilters,METH_NOARGS,"nbMelFilters"},
{"nbDctOutputs", (PyCFunction) Method_arm_mfcc_instance_q15_nbDctOutputs,METH_NOARGS,"nbDctOutputs"},
{NULL} /* Sentinel */
};
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);
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);
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);
void typeRegistration(PyObject *module) {
ADDTYPE(arm_cfft_radix2_instance_q15);
ADDTYPE(arm_cfft_radix4_instance_q15);
ADDTYPE(arm_cfft_radix2_instance_q31);
ADDTYPE(arm_cfft_radix4_instance_q31);
ADDTYPE(arm_cfft_radix2_instance_f32);
ADDTYPE(arm_cfft_radix4_instance_f32);
ADDTYPE(arm_cfft_instance_q15);
ADDTYPE(arm_cfft_instance_q31);
ADDTYPE(arm_cfft_instance_f32);
ADDTYPE(arm_rfft_instance_q15);
ADDTYPE(arm_rfft_instance_q31);
ADDTYPE(arm_rfft_instance_f32);
ADDTYPE(arm_rfft_fast_instance_f32);
ADDTYPE(arm_dct4_instance_f32);
ADDTYPE(arm_dct4_instance_q31);
ADDTYPE(arm_dct4_instance_q15);
ADDTYPE(arm_mfcc_instance_f32);
ADDTYPE(arm_mfcc_instance_q31);
ADDTYPE(arm_mfcc_instance_q15);
}
static PyObject *
cmsis_arm_cfft_radix2_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix2_instance_q15Object *selfS = (dsp_arm_cfft_radix2_instance_q15Object *)S;
arm_status returnValue = arm_cfft_radix2_init_q15(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix2_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q15_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix2_instance_q15Object *selfS = (dsp_arm_cfft_radix2_instance_q15Object *)S;
GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
arm_cfft_radix2_q15(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix4_instance_q15Object *selfS = (dsp_arm_cfft_radix4_instance_q15Object *)S;
arm_status returnValue = arm_cfft_radix4_init_q15(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q15_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix4_instance_q15Object *selfS = (dsp_arm_cfft_radix4_instance_q15Object *)S;
GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
arm_cfft_radix4_q15(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix2_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix2_instance_q31Object *selfS = (dsp_arm_cfft_radix2_instance_q31Object *)S;
arm_status returnValue = arm_cfft_radix2_init_q31(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix2_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q31_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix2_instance_q31Object *selfS = (dsp_arm_cfft_radix2_instance_q31Object *)S;
GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
arm_cfft_radix2_q31(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q31_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix4_instance_q31Object *selfS = (dsp_arm_cfft_radix4_instance_q31Object *)S;
GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
arm_cfft_radix4_q31(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix4_instance_q31Object *selfS = (dsp_arm_cfft_radix4_instance_q31Object *)S;
arm_status returnValue = arm_cfft_radix4_init_q31(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix2_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix2_instance_f32Object *selfS = (dsp_arm_cfft_radix2_instance_f32Object *)S;
arm_status returnValue = arm_cfft_radix2_init_f32(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix2_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
float32_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix2_instance_f32Object *selfS = (dsp_arm_cfft_radix2_instance_f32Object *)S;
GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
arm_cfft_radix2_f32(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Ohii",&S,&fftLen,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_radix4_instance_f32Object *selfS = (dsp_arm_cfft_radix4_instance_f32Object *)S;
arm_status returnValue = arm_cfft_radix4_init_f32(selfS->instance,fftLen,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_radix4_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
float32_t *pSrc_converted=NULL; // input
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_cfft_radix4_instance_f32Object *selfS = (dsp_arm_cfft_radix4_instance_f32Object *)S;
GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
arm_cfft_radix4_f32(selfS->instance,pSrc_converted);
FREEARGUMENT(pSrc_converted);
Py_RETURN_NONE;
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
q15_t *p1_converted=NULL; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_instance_q15Object *selfS = (dsp_arm_cfft_instance_q15Object *)S;
GETARGUMENT(p1,NPY_INT16,int16_t,int16_t);
arm_cfft_q15(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
INT16ARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
q31_t *p1_converted=NULL; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_instance_q31Object *selfS = (dsp_arm_cfft_instance_q31Object *)S;
GETARGUMENT(p1,NPY_INT32,int32_t,int32_t);
arm_cfft_q31(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
INT32ARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_f64(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
float64_t *p1_converted=NULL; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_instance_f64Object *selfS = (dsp_arm_cfft_instance_f64Object *)S;
GETARGUMENT(p1,NPY_DOUBLE,double,float64_t);
arm_cfft_f64(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
FLOATARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
float32_t *p1_converted=NULL; // input
uint32_t ifftFlag; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"OOii",&S,&p1,&ifftFlag,&bitReverseFlag))
{
dsp_arm_cfft_instance_f32Object *selfS = (dsp_arm_cfft_instance_f32Object *)S;
GETARGUMENT(p1,NPY_DOUBLE,double,float32_t);
arm_cfft_f32(selfS->instance,p1_converted,(uint8_t)ifftFlag,(uint8_t)bitReverseFlag);
FLOATARRAY1(p1OBJ,2*selfS->instance->fftLen,p1_converted);
PyObject *pythonResult = Py_BuildValue("O",p1OBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint32_t fftLenReal; // input
uint32_t ifftFlagR; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Oiii",&S,&fftLenReal,&ifftFlagR,&bitReverseFlag))
{
dsp_arm_rfft_instance_q15Object *selfS = (dsp_arm_rfft_instance_q15Object *)S;
arm_status returnValue = arm_rfft_init_q15(selfS->instance,fftLenReal,ifftFlagR,bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q15_t *pSrc_converted=NULL; // input
q15_t *pDst=NULL; // output
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_rfft_instance_q15Object *selfS = (dsp_arm_rfft_instance_q15Object *)S;
GETARGUMENT(pSrc,NPY_INT16,int16_t,int16_t);
pDst=PyMem_Malloc(sizeof(q15_t)*2*selfS->instance->fftLenReal);
arm_rfft_q15(selfS->instance,pSrc_converted,pDst);
INT16ARRAY1(pDstOBJ,2*selfS->instance->fftLenReal,pDst);
PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
FREEARGUMENT(pSrc_converted);
Py_DECREF(pDstOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint32_t fftLenReal; // input
uint32_t ifftFlagR; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"Oiii",&S,&fftLenReal,&ifftFlagR,&bitReverseFlag))
{
dsp_arm_rfft_instance_q31Object *selfS = (dsp_arm_rfft_instance_q31Object *)S;
arm_status returnValue = arm_rfft_init_q31(selfS->instance,fftLenReal,ifftFlagR,bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
q31_t *pSrc_converted=NULL; // input
q31_t *pDst=NULL; // output
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_rfft_instance_q31Object *selfS = (dsp_arm_rfft_instance_q31Object *)S;
GETARGUMENT(pSrc,NPY_INT32,int32_t,int32_t);
pDst=PyMem_Malloc(sizeof(q31_t)*2*selfS->instance->fftLenReal);
arm_rfft_q31(selfS->instance,pSrc_converted,pDst);
INT32ARRAY1(pDstOBJ,2*selfS->instance->fftLenReal,pDst);
PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
FREEARGUMENT(pSrc_converted);
Py_DECREF(pDstOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *S_CFFT=NULL; // input
uint32_t fftLenReal; // input
uint32_t ifftFlagR; // input
uint32_t bitReverseFlag; // input
if (PyArg_ParseTuple(args,"OOiii",&S,&S_CFFT,&fftLenReal,&ifftFlagR,&bitReverseFlag))
{
dsp_arm_rfft_instance_f32Object *selfS = (dsp_arm_rfft_instance_f32Object *)S;
dsp_arm_cfft_radix4_instance_f32Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_f32Object *)S_CFFT;
arm_status returnValue = arm_rfft_init_f32(selfS->instance,selfS_CFFT->instance,fftLenReal,ifftFlagR,bitReverseFlag);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pSrc=NULL; // input
float32_t *pSrc_converted=NULL; // input
float32_t *pDst=NULL; // output
if (PyArg_ParseTuple(args,"OO",&S,&pSrc))
{
dsp_arm_rfft_instance_f32Object *selfS = (dsp_arm_rfft_instance_f32Object *)S;
GETARGUMENT(pSrc,NPY_DOUBLE,double,float32_t);
pDst=PyMem_Malloc(sizeof(float32_t)*2*selfS->instance->fftLenReal);
arm_rfft_f32(selfS->instance,pSrc_converted,pDst);
FLOATARRAY1(pDstOBJ,selfS->instance->fftLenReal+1,pDst);
PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
FREEARGUMENT(pSrc_converted);
Py_DECREF(pDstOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_fast_init_f64(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_rfft_fast_instance_f64Object *selfS = (dsp_arm_rfft_fast_instance_f64Object *)S;
arm_status returnValue = arm_rfft_fast_init_f64(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_fast_f64(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p=NULL; // input
float64_t *p_converted=NULL; // input
float64_t *pOut=NULL; // output
uint32_t ifftFlag; // input
if (PyArg_ParseTuple(args,"OOi",&S,&p,&ifftFlag))
{
dsp_arm_rfft_fast_instance_f64Object *selfS = (dsp_arm_rfft_fast_instance_f64Object *)S;
GETARGUMENT(p,NPY_DOUBLE,double,float64_t);
pOut=PyMem_Malloc(sizeof(float64_t)*2*selfS->instance->fftLenRFFT);
arm_rfft_fast_f64(selfS->instance,p_converted,pOut,(uint8_t)ifftFlag);
FLOATARRAY1(pOutOBJ,2*selfS->instance->fftLenRFFT,pOut);
PyObject *pythonResult = Py_BuildValue("O",pOutOBJ);
FREEARGUMENT(p_converted);
Py_DECREF(pOutOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_fast_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_rfft_fast_instance_f32Object *selfS = (dsp_arm_rfft_fast_instance_f32Object *)S;
arm_status returnValue = arm_rfft_fast_init_f32(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_rfft_fast_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p=NULL; // input
float32_t *p_converted=NULL; // input
float32_t *pOut=NULL; // output
uint32_t ifftFlag; // input
if (PyArg_ParseTuple(args,"OOi",&S,&p,&ifftFlag))
{
dsp_arm_rfft_fast_instance_f32Object *selfS = (dsp_arm_rfft_fast_instance_f32Object *)S;
GETARGUMENT(p,NPY_DOUBLE,double,float32_t);
pOut=PyMem_Malloc(sizeof(float32_t)*(selfS->instance->fftLenRFFT));
arm_rfft_fast_f32(selfS->instance,p_converted,pOut,(uint8_t)ifftFlag);
FLOATARRAY1(pOutOBJ,(selfS->instance->fftLenRFFT),pOut);
PyObject *pythonResult = Py_BuildValue("O",pOutOBJ);
FREEARGUMENT(p_converted);
Py_DECREF(pOutOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *S_RFFT=NULL; // input
PyObject *S_CFFT=NULL; // input
uint16_t N; // input
uint16_t Nby2; // input
float32_t normalize; // input
if (PyArg_ParseTuple(args,"OOOhhf",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
{
dsp_arm_dct4_instance_f32Object *selfS = (dsp_arm_dct4_instance_f32Object *)S;
dsp_arm_rfft_instance_f32Object *selfS_RFFT = (dsp_arm_rfft_instance_f32Object *)S_RFFT;
dsp_arm_cfft_radix4_instance_f32Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_f32Object *)S_CFFT;
uint32_t outputLength = selfS->instance->N ;
arm_status returnValue = arm_dct4_init_f32(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pState=NULL; // input
float32_t *pState_converted=NULL; // input
PyObject *pInlineBuffer=NULL; // input
float32_t *pInlineBuffer_converted=NULL; // input
if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
{
dsp_arm_dct4_instance_f32Object *selfS = (dsp_arm_dct4_instance_f32Object *)S;
GETARGUMENT(pState,NPY_DOUBLE,double,float32_t);
GETARGUMENT(pInlineBuffer,NPY_DOUBLE,double,float32_t);
uint32_t outputLength = selfS->instance->N ;
arm_dct4_f32(selfS->instance,pState_converted,pInlineBuffer_converted);
FLOATARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
FREEARGUMENT(pState_converted);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *S_RFFT=NULL; // input
PyObject *S_CFFT=NULL; // input
uint16_t N; // input
uint16_t Nby2; // input
q31_t normalize; // input
if (PyArg_ParseTuple(args,"OOOhhi",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
{
dsp_arm_dct4_instance_q31Object *selfS = (dsp_arm_dct4_instance_q31Object *)S;
dsp_arm_rfft_instance_q31Object *selfS_RFFT = (dsp_arm_rfft_instance_q31Object *)S_RFFT;
dsp_arm_cfft_radix4_instance_q31Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_q31Object *)S_CFFT;
uint32_t outputLength = selfS->instance->N ;
arm_status returnValue = arm_dct4_init_q31(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pState=NULL; // input
q31_t *pState_converted=NULL; // input
PyObject *pInlineBuffer=NULL; // input
q31_t *pInlineBuffer_converted=NULL; // input
if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
{
dsp_arm_dct4_instance_q31Object *selfS = (dsp_arm_dct4_instance_q31Object *)S;
GETARGUMENT(pState,NPY_INT32,int32_t,int32_t);
GETARGUMENT(pInlineBuffer,NPY_INT32,int32_t,int32_t);
uint32_t outputLength = selfS->instance->N ;
arm_dct4_q31(selfS->instance,pState_converted,pInlineBuffer_converted);
INT32ARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
FREEARGUMENT(pState_converted);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *S_RFFT=NULL; // input
PyObject *S_CFFT=NULL; // input
uint16_t N; // input
uint16_t Nby2; // input
q15_t normalize; // input
if (PyArg_ParseTuple(args,"OOOhhh",&S,&S_RFFT,&S_CFFT,&N,&Nby2,&normalize))
{
dsp_arm_dct4_instance_q15Object *selfS = (dsp_arm_dct4_instance_q15Object *)S;
dsp_arm_rfft_instance_q15Object *selfS_RFFT = (dsp_arm_rfft_instance_q15Object *)S_RFFT;
dsp_arm_cfft_radix4_instance_q15Object *selfS_CFFT = (dsp_arm_cfft_radix4_instance_q15Object *)S_CFFT;
uint32_t outputLength = selfS->instance->N ;
arm_status returnValue = arm_dct4_init_q15(selfS->instance,selfS_RFFT->instance,selfS_CFFT->instance,N,Nby2,normalize);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_dct4_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *pState=NULL; // input
q15_t *pState_converted=NULL; // input
PyObject *pInlineBuffer=NULL; // input
q15_t *pInlineBuffer_converted=NULL; // input
if (PyArg_ParseTuple(args,"OOO",&S,&pState,&pInlineBuffer))
{
dsp_arm_dct4_instance_q15Object *selfS = (dsp_arm_dct4_instance_q15Object *)S;
GETARGUMENT(pState,NPY_INT16,int16_t,int16_t);
GETARGUMENT(pInlineBuffer,NPY_INT16,int16_t,int16_t);
uint32_t outputLength = selfS->instance->N ;
arm_dct4_q15(selfS->instance,pState_converted,pInlineBuffer_converted);
INT16ARRAY1(pInlineBufferOBJ,outputLength,pInlineBuffer_converted);
PyObject *pythonResult = Py_BuildValue("O",pInlineBufferOBJ);
FREEARGUMENT(pState_converted);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_cfft_instance_f32Object *selfS = (dsp_arm_cfft_instance_f32Object *)S;
arm_status returnValue = arm_cfft_init_f32(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_init_f64(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_cfft_instance_f64Object *selfS = (dsp_arm_cfft_instance_f64Object *)S;
arm_status returnValue = arm_cfft_init_f64(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_cfft_instance_q31Object *selfS = (dsp_arm_cfft_instance_q31Object *)S;
arm_status returnValue = arm_cfft_init_q31(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_cfft_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint16_t fftLen; // input
if (PyArg_ParseTuple(args,"Oh",&S,&fftLen))
{
dsp_arm_cfft_instance_q15Object *selfS = (dsp_arm_cfft_instance_q15Object *)S;
arm_status returnValue = arm_cfft_init_q15(selfS->instance,fftLen);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
/*
MFCC
*/
static PyObject *
cmsis_arm_mfcc_init_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
PyObject *pdctCoefs=NULL; // input
float32_t *pdctCoefs_converted=NULL; // input
PyObject *pfilterCoefs=NULL; // input
float32_t *pfilterCoefs_converted=NULL; // input
PyObject *pwindowCoefs=NULL; // input
float32_t *pwindowCoefs_converted=NULL; // input
PyObject *pfilterPos=NULL; // input
uint32_t *pfilterPos_converted=NULL; // input
PyObject *pfilterLengths=NULL; // input
uint32_t *pfilterLengths_converted=NULL; // input
if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
&pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
{
dsp_arm_mfcc_instance_f32Object *selfS = (dsp_arm_mfcc_instance_f32Object *)S;
GETARGUMENT(pdctCoefs,NPY_DOUBLE,double,float32_t);
GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterCoefs,NPY_DOUBLE,double,float32_t);
GETARGUMENT(pwindowCoefs,NPY_DOUBLE,double,float32_t);
arm_status returnValue = arm_mfcc_init_f32(selfS->instance,
fftLen,nbMelFilters,nbDctOutputs,
pdctCoefs_converted,
pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
pwindowCoefs_converted);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_mfcc_f32(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
float32_t *p1_converted=NULL; // input
PyObject *tmp=NULL; // input
float32_t *tmp_converted=NULL; // input
float32_t *pDst;
if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
{
dsp_arm_mfcc_instance_f32Object *selfS = (dsp_arm_mfcc_instance_f32Object *)S;
GETARGUMENT(p1,NPY_DOUBLE,double,float32_t);
GETARGUMENT(tmp,NPY_DOUBLE,double,float32_t);
pDst=PyMem_Malloc(sizeof(float32_t)*selfS->instance->nbDctOutputs);
arm_mfcc_f32(selfS->instance,p1_converted,pDst,tmp_converted);
FLOATARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
PyObject *pythonResult = Py_BuildValue("O",pDstOBJ);
Py_DECREF(pDstOBJ);
FREEARGUMENT(p1_converted);
FREEARGUMENT(tmp_converted);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_mfcc_init_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
PyObject *pdctCoefs=NULL; // input
q15_t *pdctCoefs_converted=NULL; // input
PyObject *pfilterCoefs=NULL; // input
q15_t *pfilterCoefs_converted=NULL; // input
PyObject *pwindowCoefs=NULL; // input
q15_t *pwindowCoefs_converted=NULL; // input
PyObject *pfilterPos=NULL; // input
uint32_t *pfilterPos_converted=NULL; // input
PyObject *pfilterLengths=NULL; // input
uint32_t *pfilterLengths_converted=NULL; // input
if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
&pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
{
dsp_arm_mfcc_instance_q15Object *selfS = (dsp_arm_mfcc_instance_q15Object *)S;
GETARGUMENT(pdctCoefs,NPY_INT16,int16_t,int16_t);
GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterCoefs,NPY_INT16,int16_t,int16_t);
GETARGUMENT(pwindowCoefs,NPY_INT16,int16_t,int16_t);
arm_status returnValue = arm_mfcc_init_q15(selfS->instance,
fftLen,nbMelFilters,nbDctOutputs,
pdctCoefs_converted,
pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
pwindowCoefs_converted);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_mfcc_q15(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
q15_t *p1_converted=NULL; // input
PyObject *tmp=NULL; // input
q31_t *tmp_converted=NULL; // input
q15_t *pDst;
if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
{
dsp_arm_mfcc_instance_q15Object *selfS = (dsp_arm_mfcc_instance_q15Object *)S;
GETARGUMENT(p1,NPY_INT16,int16_t,int16_t);
GETARGUMENT(tmp,NPY_INT32,int32_t,int32_t);
pDst=PyMem_Malloc(sizeof(q15_t)*selfS->instance->nbDctOutputs);
arm_status status = arm_mfcc_q15(selfS->instance,p1_converted,pDst,tmp_converted);
INT16ARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
PyObject* theReturnOBJ=Py_BuildValue("i",status);
PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ);
Py_DECREF(pDstOBJ);
Py_DECREF(theReturnOBJ);
FREEARGUMENT(p1_converted);
FREEARGUMENT(tmp_converted);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_mfcc_init_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
uint32_t fftLen,nbMelFilters,nbDctOutputs; // input
PyObject *pdctCoefs=NULL; // input
q31_t *pdctCoefs_converted=NULL; // input
PyObject *pfilterCoefs=NULL; // input
q31_t *pfilterCoefs_converted=NULL; // input
PyObject *pwindowCoefs=NULL; // input
q31_t *pwindowCoefs_converted=NULL; // input
PyObject *pfilterPos=NULL; // input
uint32_t *pfilterPos_converted=NULL; // input
PyObject *pfilterLengths=NULL; // input
uint32_t *pfilterLengths_converted=NULL; // input
if (PyArg_ParseTuple(args,"OiiiOOOOO",&S,&fftLen,&nbMelFilters,&nbDctOutputs,
&pdctCoefs,&pfilterPos,&pfilterLengths,&pfilterCoefs,&pwindowCoefs))
{
dsp_arm_mfcc_instance_q31Object *selfS = (dsp_arm_mfcc_instance_q31Object *)S;
GETARGUMENT(pdctCoefs,NPY_INT32,int32_t,int32_t);
GETARGUMENT(pfilterPos,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterLengths,NPY_UINT32,uint32_t,uint32_t);
GETARGUMENT(pfilterCoefs,NPY_INT32,int32_t,int32_t);
GETARGUMENT(pwindowCoefs,NPY_INT32,int32_t,int32_t);
arm_status returnValue = arm_mfcc_init_q31(selfS->instance,
fftLen,nbMelFilters,nbDctOutputs,
pdctCoefs_converted,
pfilterPos_converted,pfilterLengths_converted,pfilterCoefs_converted,
pwindowCoefs_converted);
PyObject* theReturnOBJ=Py_BuildValue("i",returnValue);
PyObject *pythonResult = Py_BuildValue("O",theReturnOBJ);
Py_DECREF(theReturnOBJ);
return(pythonResult);
}
return(NULL);
}
static PyObject *
cmsis_arm_mfcc_q31(PyObject *obj, PyObject *args)
{
PyObject *S=NULL; // input
PyObject *p1=NULL; // input
q31_t *p1_converted=NULL; // input
PyObject *tmp=NULL; // input
q31_t *tmp_converted=NULL; // input
q31_t *pDst;
if (PyArg_ParseTuple(args,"OOO",&S,&p1,&tmp))
{
dsp_arm_mfcc_instance_q31Object *selfS = (dsp_arm_mfcc_instance_q31Object *)S;
GETARGUMENT(p1,NPY_INT32,int32_t,int32_t);
GETARGUMENT(tmp,NPY_INT32,int32_t,int32_t);
pDst=PyMem_Malloc(sizeof(q31_t)*selfS->instance->nbDctOutputs);
arm_status status = arm_mfcc_q31(selfS->instance,p1_converted,pDst,tmp_converted);
INT32ARRAY1(pDstOBJ,selfS->instance->nbDctOutputs,pDst);
PyObject* theReturnOBJ=Py_BuildValue("i",status);
PyObject *pythonResult = Py_BuildValue("OO",theReturnOBJ,pDstOBJ);
Py_DECREF(pDstOBJ);
Py_DECREF(theReturnOBJ);
FREEARGUMENT(p1_converted);
FREEARGUMENT(tmp_converted);
return(pythonResult);
}
return(NULL);
}
static PyMethodDef CMSISDSPMethods[] = {
{"arm_cfft_radix2_init_q15", cmsis_arm_cfft_radix2_init_q15, METH_VARARGS,""},
{"arm_cfft_radix2_q15", cmsis_arm_cfft_radix2_q15, METH_VARARGS,""},
{"arm_cfft_radix4_init_q15", cmsis_arm_cfft_radix4_init_q15, METH_VARARGS,""},
{"arm_cfft_radix4_q15", cmsis_arm_cfft_radix4_q15, METH_VARARGS,""},
{"arm_cfft_radix2_init_q31", cmsis_arm_cfft_radix2_init_q31, METH_VARARGS,""},
{"arm_cfft_radix2_q31", cmsis_arm_cfft_radix2_q31, METH_VARARGS,""},
{"arm_cfft_radix4_q31", cmsis_arm_cfft_radix4_q31, METH_VARARGS,""},
{"arm_cfft_radix4_init_q31", cmsis_arm_cfft_radix4_init_q31, METH_VARARGS,""},
{"arm_cfft_radix2_init_f32", cmsis_arm_cfft_radix2_init_f32, METH_VARARGS,""},
{"arm_cfft_radix2_f32", cmsis_arm_cfft_radix2_f32, METH_VARARGS,""},
{"arm_cfft_radix4_init_f32", cmsis_arm_cfft_radix4_init_f32, METH_VARARGS,""},
{"arm_cfft_radix4_f32", cmsis_arm_cfft_radix4_f32, METH_VARARGS,""},
{"arm_cfft_q15", cmsis_arm_cfft_q15, METH_VARARGS,""},
{"arm_cfft_q31", cmsis_arm_cfft_q31, METH_VARARGS,""},
{"arm_cfft_f64", cmsis_arm_cfft_f64, METH_VARARGS,""},
{"arm_cfft_f32", cmsis_arm_cfft_f32, METH_VARARGS,""},
{"arm_rfft_init_q15", cmsis_arm_rfft_init_q15, METH_VARARGS,""},
{"arm_rfft_q15", cmsis_arm_rfft_q15, METH_VARARGS,""},
{"arm_rfft_init_q31", cmsis_arm_rfft_init_q31, METH_VARARGS,""},
{"arm_rfft_q31", cmsis_arm_rfft_q31, METH_VARARGS,""},
{"arm_rfft_init_f32", cmsis_arm_rfft_init_f32, METH_VARARGS,""},
{"arm_rfft_f32", cmsis_arm_rfft_f32, METH_VARARGS,""},
{"arm_rfft_fast_init_f64", cmsis_arm_rfft_fast_init_f64, METH_VARARGS,""},
{"arm_rfft_fast_f32", cmsis_arm_rfft_fast_f32, METH_VARARGS,""},
{"arm_rfft_fast_init_f32", cmsis_arm_rfft_fast_init_f32, METH_VARARGS,""},
{"arm_rfft_fast_f32", cmsis_arm_rfft_fast_f32, METH_VARARGS,""},
{"arm_dct4_init_f32", cmsis_arm_dct4_init_f32, METH_VARARGS,""},
{"arm_dct4_f32", cmsis_arm_dct4_f32, METH_VARARGS,""},
{"arm_dct4_init_q31", cmsis_arm_dct4_init_q31, METH_VARARGS,""},
{"arm_dct4_q31", cmsis_arm_dct4_q31, METH_VARARGS,""},
{"arm_dct4_init_q15", cmsis_arm_dct4_init_q15, METH_VARARGS,""},
{"arm_dct4_q15", cmsis_arm_dct4_q15, METH_VARARGS,""},
{"arm_cfft_init_f32", cmsis_arm_cfft_init_f32, METH_VARARGS,""},
{"arm_cfft_init_f64", cmsis_arm_cfft_init_f64, METH_VARARGS,""},
{"arm_cfft_init_q31", cmsis_arm_cfft_init_q31, METH_VARARGS,""},
{"arm_cfft_init_q15", cmsis_arm_cfft_init_q15, METH_VARARGS,""},
{"arm_mfcc_init_f32", cmsis_arm_mfcc_init_f32, METH_VARARGS,""},
{"arm_mfcc_f32", cmsis_arm_mfcc_f32, METH_VARARGS,""},
{"arm_mfcc_init_q15", cmsis_arm_mfcc_init_q15, METH_VARARGS,""},
{"arm_mfcc_q15", cmsis_arm_mfcc_q15, METH_VARARGS,""},
{"arm_mfcc_init_q31", cmsis_arm_mfcc_init_q31, METH_VARARGS,""},
{"arm_mfcc_q31", cmsis_arm_mfcc_q31, METH_VARARGS,""},
{"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
{NULL, NULL, 0, NULL} /* Sentinel */
};
#ifdef IS_PY3K
static int cmsisdsp_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(GETSTATE(m)->error);
return 0;
}
static int cmsisdsp_clear(PyObject *m) {
Py_CLEAR(GETSTATE(m)->error);
return 0;
}
static struct PyModuleDef moduledef = {
PyModuleDef_HEAD_INIT,
MODNAME,
NULL,
sizeof(struct module_state),
CMSISDSPMethods,
NULL,
cmsisdsp_traverse,
cmsisdsp_clear,
NULL
};
#define INITERROR return NULL
PyMODINIT_FUNC
CAT(PyInit_,MODINITNAME)(void)
#else
#define INITERROR return
void CAT(init,MODINITNAME)(void)
#endif
{
import_array();
#ifdef IS_PY3K
PyObject *module = PyModule_Create(&moduledef);
#else
PyObject *module = Py_InitModule(MODNAME, CMSISDSPMethods);
#endif
if (module == NULL)
INITERROR;
struct module_state *st = GETSTATE(module);
st->error = PyErr_NewException(MODNAME".Error", NULL, NULL);
if (st->error == NULL) {
Py_DECREF(module);
INITERROR;
}
typeRegistration(module);
#ifdef IS_PY3K
return module;
#endif
}