From 12af686c777855d33ae526f7150cc5de81d07071 Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Tue, 14 Apr 2020 07:26:40 +0200 Subject: [PATCH] CMSIS-DSP: Correction of issue 891 Use of arm_cfft_init_f64 in the tests for coherency with other cfft tests. --- Include/arm_math.h | 4 ++ Source/TransformFunctions/CMakeLists.txt | 1 + Testing/Include/Tests/TransformCF64.h | 4 +- Testing/Source/Tests/TransformCF64.cpp | 74 ++++++++++++------------ 4 files changed, 45 insertions(+), 38 deletions(-) diff --git a/Include/arm_math.h b/Include/arm_math.h index 48bee62c..8d330c24 100644 --- a/Include/arm_math.h +++ b/Include/arm_math.h @@ -3205,6 +3205,10 @@ void arm_cfft_q31( uint16_t bitRevLength; /**< bit reversal table length. */ } arm_cfft_instance_f64; + arm_status arm_cfft_init_f64( + arm_cfft_instance_f64 * S, + uint16_t fftLen); + void arm_cfft_f64( const arm_cfft_instance_f64 * S, float64_t * p1, diff --git a/Source/TransformFunctions/CMakeLists.txt b/Source/TransformFunctions/CMakeLists.txt index 42f16cf7..af4e6eda 100644 --- a/Source/TransformFunctions/CMakeLists.txt +++ b/Source/TransformFunctions/CMakeLists.txt @@ -31,6 +31,7 @@ endif() if (NOT CONFIGTABLE OR ALLFFT OR CFFT_F64_16 OR CFFT_F64_32 OR CFFT_F64_64 OR CFFT_F64_128 OR CFFT_F64_256 OR CFFT_F64_512 OR CFFT_F64_1024 OR CFFT_F64_2048 OR CFFT_F64_4096) target_sources(CMSISDSPTransform PRIVATE arm_cfft_f64.c) +target_sources(CMSISDSPTransform PRIVATE arm_cfft_init_f64.c) endif() if (NOT CONFIGTABLE OR ALLFFT OR CFFT_Q15_16 OR CFFT_Q15_32 OR CFFT_Q15_64 OR CFFT_Q15_128 OR CFFT_Q15_256 OR CFFT_Q15_512 diff --git a/Testing/Include/Tests/TransformCF64.h b/Testing/Include/Tests/TransformCF64.h index 066ced1d..e0e9c8bd 100755 --- a/Testing/Include/Tests/TransformCF64.h +++ b/Testing/Include/Tests/TransformCF64.h @@ -14,8 +14,10 @@ class TransformCF64:public Client::Suite Client::RefPattern ref; - const arm_cfft_instance_f64 *instCfftF64; + arm_cfft_instance_f64 varInstCfftF64; int ifft; + + arm_status status; }; diff --git a/Testing/Source/Tests/TransformCF64.cpp b/Testing/Source/Tests/TransformCF64.cpp index 02b54f32..b3e279b1 100755 --- a/Testing/Source/Tests/TransformCF64.cpp +++ b/Testing/Source/Tests/TransformCF64.cpp @@ -16,7 +16,7 @@ memcpy(outfftp,inp,sizeof(float64_t)*input.nbSamples()); arm_cfft_f64( - this->instCfftF64, + &(this->varInstCfftF64), outfftp, this->ifft, 1); @@ -41,7 +41,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_16_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_16_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len16; + status=arm_cfft_init_f64(&varInstCfftF64,16); this->ifft=0; @@ -52,7 +52,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_16_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_16_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len16; + status=arm_cfft_init_f64(&varInstCfftF64,16); this->ifft=1; @@ -63,7 +63,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_32_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_32_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len32; + status=arm_cfft_init_f64(&varInstCfftF64,32); this->ifft=0; @@ -74,7 +74,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_32_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_32_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len32; + status=arm_cfft_init_f64(&varInstCfftF64,32); this->ifft=1; @@ -85,7 +85,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_64_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_64_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len64; + status=arm_cfft_init_f64(&varInstCfftF64,64); this->ifft=0; @@ -96,7 +96,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_64_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_64_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len64; + status=arm_cfft_init_f64(&varInstCfftF64,64); this->ifft=1; @@ -107,7 +107,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_128_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_128_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len128; + status=arm_cfft_init_f64(&varInstCfftF64,128); this->ifft=0; @@ -118,7 +118,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_128_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_128_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len128; + status=arm_cfft_init_f64(&varInstCfftF64,128); this->ifft=1; @@ -129,7 +129,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_256_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_256_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len256; + status=arm_cfft_init_f64(&varInstCfftF64,256); this->ifft=0; @@ -140,7 +140,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_256_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_256_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len256; + status=arm_cfft_init_f64(&varInstCfftF64,256); this->ifft=1; @@ -151,7 +151,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_512_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_512_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len512; + status=arm_cfft_init_f64(&varInstCfftF64,512); this->ifft=0; @@ -162,7 +162,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_512_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_512_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len512; + status=arm_cfft_init_f64(&varInstCfftF64,512); this->ifft=1; @@ -173,7 +173,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_1024_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_1024_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len1024; + status=arm_cfft_init_f64(&varInstCfftF64,1024); this->ifft=0; @@ -184,7 +184,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_1024_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_1024_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len1024; + status=arm_cfft_init_f64(&varInstCfftF64,1024); this->ifft=1; @@ -195,7 +195,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_2048_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_2048_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len2048; + status=arm_cfft_init_f64(&varInstCfftF64,2048); this->ifft=0; @@ -206,7 +206,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_2048_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_2048_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len2048; + status=arm_cfft_init_f64(&varInstCfftF64,2048); this->ifft=1; @@ -217,7 +217,7 @@ input.reload(TransformCF64::INPUTS_CFFT_NOISY_4096_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_NOISY_4096_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len4096; + status=arm_cfft_init_f64(&varInstCfftF64,4096); this->ifft=0; @@ -228,7 +228,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_NOISY_4096_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_NOISY_4096_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len4096; + status=arm_cfft_init_f64(&varInstCfftF64,4096); this->ifft=1; @@ -241,7 +241,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_16_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_16_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len16; + status=arm_cfft_init_f64(&varInstCfftF64,16); this->ifft=0; @@ -252,7 +252,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_16_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_16_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len16; + status=arm_cfft_init_f64(&varInstCfftF64,16); this->ifft=1; @@ -263,7 +263,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_32_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_32_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len32; + status=arm_cfft_init_f64(&varInstCfftF64,32); this->ifft=0; @@ -274,7 +274,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_32_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_32_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len32; + status=arm_cfft_init_f64(&varInstCfftF64,32); this->ifft=1; @@ -285,7 +285,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_64_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_64_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len64; + status=arm_cfft_init_f64(&varInstCfftF64,64); this->ifft=0; @@ -296,7 +296,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_64_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_64_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len64; + status=arm_cfft_init_f64(&varInstCfftF64,64); this->ifft=1; @@ -307,7 +307,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_128_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_128_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len128; + status=arm_cfft_init_f64(&varInstCfftF64,128); this->ifft=0; @@ -318,7 +318,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_128_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_128_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len128; + status=arm_cfft_init_f64(&varInstCfftF64,128); this->ifft=1; @@ -329,7 +329,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_256_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_256_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len256; + status=arm_cfft_init_f64(&varInstCfftF64,256); this->ifft=0; @@ -340,7 +340,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_256_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_256_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len256; + status=arm_cfft_init_f64(&varInstCfftF64,256); this->ifft=1; @@ -351,7 +351,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_512_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_512_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len512; + status=arm_cfft_init_f64(&varInstCfftF64,512); this->ifft=0; @@ -362,7 +362,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_512_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_512_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len512; + status=arm_cfft_init_f64(&varInstCfftF64,512); this->ifft=1; @@ -373,7 +373,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_1024_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_1024_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len1024; + status=arm_cfft_init_f64(&varInstCfftF64,1024); this->ifft=0; @@ -384,7 +384,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_1024_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_1024_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len1024; + status=arm_cfft_init_f64(&varInstCfftF64,1024); this->ifft=1; @@ -395,7 +395,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_2048_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_2048_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len2048; + status=arm_cfft_init_f64(&varInstCfftF64,2048); this->ifft=0; @@ -406,7 +406,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_2048_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_2048_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len2048; + status=arm_cfft_init_f64(&varInstCfftF64,2048); this->ifft=1; @@ -417,7 +417,7 @@ input.reload(TransformCF64::INPUTS_CFFT_STEP_4096_F64_ID,mgr); ref.reload( TransformCF64::REF_CFFT_STEP_4096_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len4096; + status=arm_cfft_init_f64(&varInstCfftF64,4096); this->ifft=0; @@ -428,7 +428,7 @@ input.reload(TransformCF64::INPUTS_CIFFT_STEP_4096_F64_ID,mgr); ref.reload( TransformCF64::INPUTS_CFFT_STEP_4096_F64_ID,mgr); - instCfftF64 = &arm_cfft_sR_f64_len4096; + status=arm_cfft_init_f64(&varInstCfftF64,4096); this->ifft=1;