CMSIS-DSP: Cleaning for RFFT
Updated Doxygen comments.
Moved cfft_init_f64 from PythonWrapper to normal repository.
diff --git a/CMSIS/DSP/Include/arm_math.h b/CMSIS/DSP/Include/arm_math.h
index d111f81..867a486 100644
--- a/CMSIS/DSP/Include/arm_math.h
+++ b/CMSIS/DSP/Include/arm_math.h
@@ -3309,21 +3309,6 @@
arm_rfft_fast_instance_f64 * S,
uint16_t fftLen);
-arm_status arm_rfft_32_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_64_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_128_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_256_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_512_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_1024_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_2048_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
-
-arm_status arm_rfft_4096_fast_init_f64 ( arm_rfft_fast_instance_f64 * S );
void arm_rfft_fast_f64(
arm_rfft_fast_instance_f64 * S,
@@ -3345,22 +3330,6 @@
arm_rfft_fast_instance_f32 * S,
uint16_t fftLen);
-arm_status arm_rfft_32_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_64_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_128_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_256_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_512_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_1024_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_2048_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
-arm_status arm_rfft_4096_fast_init_f32 ( arm_rfft_fast_instance_f32 * S );
-
void arm_rfft_fast_f32(
const arm_rfft_fast_instance_f32 * S,
diff --git a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/cmsismodule.h b/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/cmsismodule.h
index 8074f21..f5352d7 100644
--- a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/cmsismodule.h
+++ b/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/cmsismodule.h
@@ -7950,7 +7950,7 @@
return(NULL);
}
-
+#if 0
static PyObject *
cmsis_arm_rfft_32_fast_init_f64(PyObject *obj, PyObject *args)
{
@@ -8141,7 +8141,7 @@
}
return(NULL);
}
-
+#endif
static PyObject *
cmsis_arm_rfft_fast_f64(PyObject *obj, PyObject *args)
@@ -8201,6 +8201,7 @@
return(NULL);
}
+#if 0
static PyObject *
cmsis_arm_rfft_32_fast_init_f32(PyObject *obj, PyObject *args)
@@ -8393,6 +8394,7 @@
return(NULL);
}
+#endif
static PyObject *
cmsis_arm_rfft_fast_f32(PyObject *obj, PyObject *args)
@@ -15589,24 +15591,8 @@
{"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_32_fast_init_f64", cmsis_arm_rfft_32_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_64_fast_init_f64", cmsis_arm_rfft_64_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_128_fast_init_f64", cmsis_arm_rfft_128_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_256_fast_init_f64", cmsis_arm_rfft_256_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_512_fast_init_f64", cmsis_arm_rfft_512_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_1024_fast_init_f64", cmsis_arm_rfft_1024_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_2048_fast_init_f64", cmsis_arm_rfft_2048_fast_init_f64, METH_VARARGS,""},
-{"arm_rfft_4096_fast_init_f64", cmsis_arm_rfft_4096_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_32_fast_init_f32", cmsis_arm_rfft_32_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_64_fast_init_f32", cmsis_arm_rfft_64_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_128_fast_init_f32", cmsis_arm_rfft_128_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_256_fast_init_f32", cmsis_arm_rfft_256_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_512_fast_init_f32", cmsis_arm_rfft_512_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_1024_fast_init_f32", cmsis_arm_rfft_1024_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_2048_fast_init_f32", cmsis_arm_rfft_2048_fast_init_f32, METH_VARARGS,""},
-{"arm_rfft_4096_fast_init_f32", cmsis_arm_rfft_4096_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,""},
diff --git a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c b/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c
deleted file mode 100644
index 1ba4cf1..0000000
--- a/CMSIS/DSP/PythonWrapper/cmsisdsp_pkg/src/fftinit.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* ----------------------------------------------------------------------
- * Project: CMSIS DSP Python Wrapper
- * Title: fftinit.c
- * Description: FFT init functions for the Python wrapper
- *
- * $Date: 25. March 2019
- * $Revision: V0.0.1
- *
- * Target Processor: Cortex-M cores
- * -------------------------------------------------------------------- */
-/*
- * Copyright (C) 2010-2019 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.
- */
-#include "arm_math.h"
-#include "arm_common_tables.h"
-#include "arm_const_structs.h"
-
-#define FFTINIT(EXT,SIZE) \
- S->bitRevLength = arm_cfft_sR_##EXT##_len##SIZE.bitRevLength; \
- S->pBitRevTable = arm_cfft_sR_##EXT##_len##SIZE.pBitRevTable; \
- S->pTwiddle = arm_cfft_sR_##EXT##_len##SIZE.pTwiddle;
-
-#define FFTFXTINIT(EXT,SIZE) \
- S->bitRevLength = arm_cfft_sR_##EXT##_len##SIZE.bitRevLength; \
- S->pBitRevTable = arm_cfft_sR_##EXT##_len##SIZE.pBitRevTable; \
- S->pTwiddle = arm_cfft_sR_##EXT##_len##SIZE.pTwiddle;
-
-
-
-arm_status arm_cfft_init_f64(
- arm_cfft_instance_f64 * S,
- uint16_t fftLen)
-{
- /* Initialise the default arm status */
- arm_status status = ARM_MATH_SUCCESS;
-
- /* Initialise the FFT length */
- S->fftLen = fftLen;
-
- /* Initialise the Twiddle coefficient pointer */
- S->pTwiddle = (float64_t *)twiddleCoefF64_4096;
-
-
- /* Initializations of Instance structure depending on the FFT length */
- switch (S->fftLen) {
- /* Initializations of structure parameters for 4096 point FFT */
- case 4096U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f64,4096);
- break;
-
- /* Initializations of structure parameters for 2048 point FFT */
- case 2048U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f64,2048);
-
- break;
-
- /* Initializations of structure parameters for 1024 point FFT */
- case 1024U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f64,1024);
-
- break;
-
- /* Initializations of structure parameters for 512 point FFT */
- case 512U:
- /* Initialise the bit reversal table modifier */
- FFTINIT(f64,512);
- break;
-
- case 256U:
- FFTINIT(f64,256);
- break;
-
- case 128U:
- FFTINIT(f64,128);
- break;
-
- case 64U:
- FFTINIT(f64,64);
- break;
-
- case 32U:
- FFTINIT(f64,32);
- break;
-
- case 16U:
- /* Initializations of structure parameters for 16 point FFT */
- FFTINIT(f64,16);
- break;
-
-
- default:
- /* Reporting argument error if fftSize is not valid value */
- status = ARM_MATH_ARGUMENT_ERROR;
- break;
- }
-
- return (status);
-}
-
-
diff --git a/CMSIS/DSP/PythonWrapper/setup.py b/CMSIS/DSP/PythonWrapper/setup.py
index 2af78dc..a8c707e 100644
--- a/CMSIS/DSP/PythonWrapper/setup.py
+++ b/CMSIS/DSP/PythonWrapper/setup.py
@@ -50,7 +50,6 @@
#modulesrc = glob.glob(os.path.join("cmsisdsp_pkg","src","*.c"))
modulesrc = []
-modulesrc.append(os.path.join("cmsisdsp_pkg","src","fftinit.c"))
modulesrc.append(os.path.join("cmsisdsp_pkg","src","cmsismodule.c"))
module1 = Extension(config.extensionName,
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f64.c b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f64.c
new file mode 100755
index 0000000..939488b
--- /dev/null
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f64.c
@@ -0,0 +1,150 @@
+/* ----------------------------------------------------------------------
+ * Project: CMSIS DSP Library
+ * Title: arm_cfft_init_f64.c
+ * Description: Initialization function for cfft f64 instance
+ *
+ * $Date: 23. January 2020
+ * $Revision: V1.7.0
+ *
+ * Target Processor: Cortex-M cores
+ * -------------------------------------------------------------------- */
+/*
+ * Copyright (C) 2010-2020 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 FFTINIT(EXT,SIZE) \
+ S->bitRevLength = arm_cfft_sR_##EXT##_len##SIZE.bitRevLength; \
+ S->pBitRevTable = arm_cfft_sR_##EXT##_len##SIZE.pBitRevTable; \
+ S->pTwiddle = arm_cfft_sR_##EXT##_len##SIZE.pTwiddle;
+
+/**
+ @addtogroup ComplexFFT
+ @{
+ */
+
+/**
+ @brief Initialization function for the cfft f64 function
+ @param[in,out] S points to an instance of the floating-point CFFT structure
+ @param[in] fftLen fft length (number of complex samples)
+ @return execution status
+ - \ref ARM_MATH_SUCCESS : Operation successful
+ - \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
+
+ @par Use of this function is mandatory only for the MVE version of the FFT.
+ Other versions can still initialize directly the data structure using
+ variables declared in arm_const_structs.h
+ */
+
+#include "arm_math.h"
+#include "arm_common_tables.h"
+#include "arm_const_structs.h"
+
+
+arm_status arm_cfft_init_f64(
+ arm_cfft_instance_f64 * S,
+ uint16_t fftLen)
+{
+ /* Initialise the default arm status */
+ arm_status status = ARM_MATH_SUCCESS;
+
+ /* Initialise the FFT length */
+ S->fftLen = fftLen;
+
+ /* Initialise the Twiddle coefficient pointer */
+ S->pTwiddle = NULL;
+
+
+ /* Initializations of Instance structure depending on the FFT length */
+ switch (S->fftLen) {
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_4096) && defined(ARM_TABLE_BITREVIDX_FLT_4096))
+ /* Initializations of structure parameters for 4096 point FFT */
+ case 4096U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f64,4096);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_2048) && defined(ARM_TABLE_BITREVIDX_FLT_2048))
+ /* Initializations of structure parameters for 2048 point FFT */
+ case 2048U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f64,2048);
+
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_1024) && defined(ARM_TABLE_BITREVIDX_FLT_1024))
+ /* Initializations of structure parameters for 1024 point FFT */
+ case 1024U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f64,1024);
+
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_512) && defined(ARM_TABLE_BITREVIDX_FLT_512))
+ /* Initializations of structure parameters for 512 point FFT */
+ case 512U:
+ /* Initialise the bit reversal table modifier */
+ FFTINIT(f64,512);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_256) && defined(ARM_TABLE_BITREVIDX_FLT_256))
+ case 256U:
+ FFTINIT(f64,256);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_128) && defined(ARM_TABLE_BITREVIDX_FLT_128))
+ case 128U:
+ FFTINIT(f64,128);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_64) && defined(ARM_TABLE_BITREVIDX_FLT_64))
+ case 64U:
+ FFTINIT(f64,64);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_32) && defined(ARM_TABLE_BITREVIDX_FLT_32))
+ case 32U:
+ FFTINIT(f64,32);
+ break;
+#endif
+
+#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_f64_16) && defined(ARM_TABLE_BITREVIDX_FLT_16))
+ case 16U:
+ /* Initializations of structure parameters for 16 point FFT */
+ FFTINIT(f64,16);
+ break;
+#endif
+
+ default:
+ /* Reporting argument error if fftSize is not valid value */
+ status = ARM_MATH_ARGUMENT_ERROR;
+ break;
+ }
+
+
+ return (status);
+}
+
+/**
+ @} end of ComplexFFT group
+ */
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c
index 8d5d72e..2f82f92 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_f32.c
@@ -533,17 +533,15 @@
- Initializes twiddle factor table and bit reversal table pointers.
- Initializes the internal complex FFT data structure.
@par
- Use of the initialization function is optional.
- However, if the initialization function is used, then the instance structure
- cannot be placed into a const data section. To place an instance structure
- into a const data section, the instance structure should be manually
- initialized as follows:
+ Use of the initialization function is optional **except for MVE versions where it is mandatory**.
+ If you don't use the initialization functions, then the structures should be initialized with code
+ similar to the one below:
<pre>
arm_rfft_instance_q31 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};
arm_rfft_instance_q15 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};
</pre>
where <code>fftLenReal</code> is the length of the real transform;
- <code>fftLenBy2</code> length of the internal complex transform.
+ <code>fftLenBy2</code> length of the internal complex transform (fftLenReal/2).
<code>ifftFlagR</code> Selects forward (=0) or inverse (=1) transform.
<code>bitReverseFlagR</code> Selects bit reversed output (=0) or normal order
output (=1).
@@ -552,8 +550,10 @@
<code>pTwiddleAReal</code>points to the A array of twiddle coefficients;
<code>pTwiddleBReal</code>points to the B array of twiddle coefficients;
<code>pCfft</code> points to the CFFT Instance structure. The CFFT structure
- must also be initialized. Refer to arm_cfft_radix4_f32() for details regarding
- static initialization of the complex FFT instance structure.
+ must also be initialized.
+@par
+ Note that with MVE versions you can't initialize instance structures directly and **must
+ use the initialization function**.
*/
/**
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
index b657e19..72a6768 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f32.c
@@ -41,6 +41,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_16) && defined(ARM_TABLE_BITREVIDX_FLT_16) && defined(ARM_TABLE_TWIDDLECOEF_F32_16) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_32))
/**
+ @private
@brief Initialization function for the 32pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -48,7 +49,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_32_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_32_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -70,6 +71,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_32) && defined(ARM_TABLE_BITREVIDX_FLT_32) && defined(ARM_TABLE_TWIDDLECOEF_F32_32) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_64))
/**
+ @private
@brief Initialization function for the 64pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -77,7 +79,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_64_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_64_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -99,6 +101,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_64) && defined(ARM_TABLE_BITREVIDX_FLT_64) && defined(ARM_TABLE_TWIDDLECOEF_F32_64) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_128))
/**
+ @private
@brief Initialization function for the 128pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -106,7 +109,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_128_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_128_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -128,6 +131,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_128) && defined(ARM_TABLE_BITREVIDX_FLT_128) && defined(ARM_TABLE_TWIDDLECOEF_F32_128) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_256))
/**
+ @private
@brief Initialization function for the 256pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -135,7 +139,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_256_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_256_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -157,6 +161,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_256) && defined(ARM_TABLE_BITREVIDX_FLT_256) && defined(ARM_TABLE_TWIDDLECOEF_F32_256) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_512))
/**
+ @private
@brief Initialization function for the 512pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -164,7 +169,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_512_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_512_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -185,6 +190,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_512) && defined(ARM_TABLE_BITREVIDX_FLT_512) && defined(ARM_TABLE_TWIDDLECOEF_F32_512) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_1024))
/**
+ @private
@brief Initialization function for the 1024pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -192,7 +198,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_1024_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_1024_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -213,13 +219,14 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_1024) && defined(ARM_TABLE_BITREVIDX_FLT_1024) && defined(ARM_TABLE_TWIDDLECOEF_F32_1024) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_2048))
/**
+ @private
@brief Initialization function for the 2048pt floating-point real FFT.
@param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
- \ref ARM_MATH_SUCCESS : Operation successful
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_2048_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_2048_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
@@ -240,6 +247,7 @@
#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || (defined(ARM_TABLE_TWIDDLECOEF_F32_2048) && defined(ARM_TABLE_BITREVIDX_FLT_2048) && defined(ARM_TABLE_TWIDDLECOEF_F32_2048) && defined(ARM_TABLE_TWIDDLECOEF_RFFT_F32_4096))
/**
+ @private
* @brief Initialization function for the 4096pt floating-point real FFT.
* @param[in,out] S points to an arm_rfft_fast_instance_f32 structure
@return execution status
@@ -247,7 +255,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_4096_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
+static arm_status arm_rfft_4096_fast_init_f32( arm_rfft_fast_instance_f32 * S ) {
arm_status status;
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f64.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f64.c
index 84b6fab..3ea02ff 100755
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f64.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_fast_init_f64.c
@@ -48,7 +48,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_32_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_32_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -77,7 +77,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_64_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_64_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -106,7 +106,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_128_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_128_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -135,7 +135,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_256_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_256_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -164,7 +164,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_512_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_512_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -192,7 +192,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_1024_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_1024_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -219,7 +219,7 @@
- \ref ARM_MATH_SUCCESS : Operation successful
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_2048_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_2048_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
@@ -247,7 +247,7 @@
- \ref ARM_MATH_ARGUMENT_ERROR : an error is detected
*/
-arm_status arm_rfft_4096_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
+static arm_status arm_rfft_4096_fast_init_f64( arm_rfft_fast_instance_f64 * S ) {
arm_cfft_instance_f64 * Sint;
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c
index ca4c9d4..306963d 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q15.c
@@ -68,6 +68,9 @@
\image html RFFTQ15.gif "Input and Output Formats for Q15 RFFT"
@par
\image html RIFFTQ15.gif "Input and Output Formats for Q15 RIFFT"
+ @par
+ If the input buffer is of length N, the output buffer must have length 2*N.
+ The input buffer is modified by this function.
*/
void arm_rfft_q15(
diff --git a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c
index 9ba0d52..00dc7fa 100644
--- a/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c
+++ b/CMSIS/DSP/Source/TransformFunctions/arm_rfft_q31.c
@@ -68,6 +68,9 @@
\image html RFFTQ31.gif "Input and Output Formats for Q31 RFFT"
@par
\image html RIFFTQ31.gif "Input and Output Formats for Q31 RIFFT"
+ @par
+ If the input buffer is of length N, the output buffer must have length 2*N.
+ The input buffer is modified by this function.
*/
void arm_rfft_q31(
diff --git a/CMSIS/DSP/Testing/CMakeLists.txt b/CMSIS/DSP/Testing/CMakeLists.txt
index 40b1453..06e210b 100644
--- a/CMSIS/DSP/Testing/CMakeLists.txt
+++ b/CMSIS/DSP/Testing/CMakeLists.txt
@@ -147,9 +147,9 @@
Source/Tests/ComplexTestsQ15.cpp
Source/Tests/SVMF32.cpp
Source/Tests/BayesF32.cpp
- #Source/Tests/TransformCF64.cpp
+ Source/Tests/TransformCF64.cpp
Source/Tests/TransformCF32.cpp
- #Source/Tests/TransformRF64.cpp
+ Source/Tests/TransformRF64.cpp
Source/Tests/TransformRF32.cpp
Source/Tests/TransformCQ31.cpp
Source/Tests/TransformRQ31.cpp
diff --git a/CMSIS/DSP/Testing/desc.txt b/CMSIS/DSP/Testing/desc.txt
index 663051b..283f2cf 100644
--- a/CMSIS/DSP/Testing/desc.txt
+++ b/CMSIS/DSP/Testing/desc.txt
@@ -2391,7 +2391,7 @@
class = TransformTests
folder = Transform
- disabled {suite Transform Complex F64 {
+ suite Transform Complex F64 {
class = TransformCF64
folder = TransformF64
@@ -2509,9 +2509,8 @@
}
}
- }
- disabled { suite Transform Real F64 {
+ suite Transform Real F64 {
class = TransformRF64
folder = TransformF64
@@ -2618,7 +2617,7 @@
}
}
- }
+
suite Transform Complex F32 {
class = TransformCF32
diff --git a/CMSIS/DSP/Testing/runAllTests.py b/CMSIS/DSP/Testing/runAllTests.py
index 9459e2f..1e07c8f 100755
--- a/CMSIS/DSP/Testing/runAllTests.py
+++ b/CMSIS/DSP/Testing/runAllTests.py
@@ -103,7 +103,27 @@
msg("Matrix Tests")
processAndRun(BUILDFOLDER,FVP,"MatrixTests",custom=custom)
-msg("Transform Tests")
-processAndRun(BUILDFOLDER,FVP,"TransformTests",custom=custom)
+# Too many patterns to run the full transform directly
+msg("Transform Tests CF64")
+processAndRun(BUILDFOLDER,FVP,"TransformCF64",custom=custom)
+msg("Transform Tests RF64")
+processAndRun(BUILDFOLDER,FVP,"TransformRF64",custom=custom)
+msg("Transform Tests CF32")
+processAndRun(BUILDFOLDER,FVP,"TransformCF32",custom=custom)
+
+msg("Transform Tests RF32")
+processAndRun(BUILDFOLDER,FVP,"TransformRF32",custom=custom)
+
+msg("Transform Tests CQ31")
+processAndRun(BUILDFOLDER,FVP,"TransformCQ31",custom=custom)
+
+msg("Transform Tests RQ31")
+processAndRun(BUILDFOLDER,FVP,"TransformRQ31",custom=custom)
+
+msg("Transform Tests CQ15")
+processAndRun(BUILDFOLDER,FVP,"TransformCQ15",custom=custom)
+
+msg("Transform Tests RQ15")
+processAndRun(BUILDFOLDER,FVP,"TransformRQ15",custom=custom)
\ No newline at end of file
diff --git a/CMSIS/DoxyGen/DSP/dsp.dxy b/CMSIS/DoxyGen/DSP/dsp.dxy
index 6a2c60e..16c592a 100644
--- a/CMSIS/DoxyGen/DSP/dsp.dxy
+++ b/CMSIS/DoxyGen/DSP/dsp.dxy
@@ -414,7 +414,7 @@
# be included in the documentation.
# The default value is: NO.
-EXTRACT_PRIVATE = YES
+EXTRACT_PRIVATE = NO
# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
# scope will be included in the documentation.
@@ -426,7 +426,7 @@
# included in the documentation.
# The default value is: NO.
-EXTRACT_STATIC = YES
+EXTRACT_STATIC = NO
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO