1 #include "TransformCF64.h" 2 #include <stdio.h> 3 #include "Error.h" 4 #include "Test.h" 5 6 #define SNR_THRESHOLD 250 7 test_cfft_f64()8 void TransformCF64::test_cfft_f64() 9 { 10 const float64_t *inp = input.ptr(); 11 12 float64_t *outfftp = outputfft.ptr(); 13 14 memcpy(outfftp,inp,sizeof(float64_t)*input.nbSamples()); 15 16 arm_cfft_f64( 17 &(this->varInstCfftF64), 18 outfftp, 19 this->ifft, 20 1); 21 22 23 ASSERT_SNR(outputfft,ref,(float64_t)SNR_THRESHOLD); 24 ASSERT_EMPTY_TAIL(outputfft); 25 26 } 27 28 setUp(Testing::testID_t id,std::vector<Testing::param_t> & paramsArgs,Client::PatternMgr * mgr)29 void TransformCF64::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr) 30 { 31 32 33 (void)paramsArgs; 34 35 switch(id) 36 { 37 case TransformCF64::TEST_CFFT_F64_1: 38 39 input.reload(TransformCF64::INPUTS_CFFT_NOISY_16_F64_ID,mgr); 40 ref.reload( TransformCF64::REF_CFFT_NOISY_16_F64_ID,mgr); 41 42 status=arm_cfft_init_f64(&varInstCfftF64,16); 43 44 this->ifft=0; 45 46 break; 47 48 case TransformCF64::TEST_CFFT_F64_19: 49 50 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_16_F64_ID,mgr); 51 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_16_F64_ID,mgr); 52 53 status=arm_cfft_init_f64(&varInstCfftF64,16); 54 55 this->ifft=1; 56 57 break; 58 59 case TransformCF64::TEST_CFFT_F64_2: 60 61 input.reload(TransformCF64::INPUTS_CFFT_NOISY_32_F64_ID,mgr); 62 ref.reload( TransformCF64::REF_CFFT_NOISY_32_F64_ID,mgr); 63 64 status=arm_cfft_init_f64(&varInstCfftF64,32); 65 66 this->ifft=0; 67 68 break; 69 70 case TransformCF64::TEST_CFFT_F64_20: 71 72 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_32_F64_ID,mgr); 73 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_32_F64_ID,mgr); 74 75 status=arm_cfft_init_f64(&varInstCfftF64,32); 76 77 this->ifft=1; 78 79 break; 80 81 case TransformCF64::TEST_CFFT_F64_3: 82 83 input.reload(TransformCF64::INPUTS_CFFT_NOISY_64_F64_ID,mgr); 84 ref.reload( TransformCF64::REF_CFFT_NOISY_64_F64_ID,mgr); 85 86 status=arm_cfft_init_f64(&varInstCfftF64,64); 87 88 this->ifft=0; 89 90 break; 91 92 case TransformCF64::TEST_CFFT_F64_21: 93 94 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_64_F64_ID,mgr); 95 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_64_F64_ID,mgr); 96 97 status=arm_cfft_init_f64(&varInstCfftF64,64); 98 99 this->ifft=1; 100 101 break; 102 103 case TransformCF64::TEST_CFFT_F64_4: 104 105 input.reload(TransformCF64::INPUTS_CFFT_NOISY_128_F64_ID,mgr); 106 ref.reload( TransformCF64::REF_CFFT_NOISY_128_F64_ID,mgr); 107 108 status=arm_cfft_init_f64(&varInstCfftF64,128); 109 110 this->ifft=0; 111 112 break; 113 114 case TransformCF64::TEST_CFFT_F64_22: 115 116 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_128_F64_ID,mgr); 117 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_128_F64_ID,mgr); 118 119 status=arm_cfft_init_f64(&varInstCfftF64,128); 120 121 this->ifft=1; 122 123 break; 124 125 case TransformCF64::TEST_CFFT_F64_5: 126 127 input.reload(TransformCF64::INPUTS_CFFT_NOISY_256_F64_ID,mgr); 128 ref.reload( TransformCF64::REF_CFFT_NOISY_256_F64_ID,mgr); 129 130 status=arm_cfft_init_f64(&varInstCfftF64,256); 131 132 this->ifft=0; 133 134 break; 135 136 case TransformCF64::TEST_CFFT_F64_23: 137 138 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_256_F64_ID,mgr); 139 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_256_F64_ID,mgr); 140 141 status=arm_cfft_init_f64(&varInstCfftF64,256); 142 143 this->ifft=1; 144 145 break; 146 147 case TransformCF64::TEST_CFFT_F64_6: 148 149 input.reload(TransformCF64::INPUTS_CFFT_NOISY_512_F64_ID,mgr); 150 ref.reload( TransformCF64::REF_CFFT_NOISY_512_F64_ID,mgr); 151 152 status=arm_cfft_init_f64(&varInstCfftF64,512); 153 154 this->ifft=0; 155 156 break; 157 158 case TransformCF64::TEST_CFFT_F64_24: 159 160 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_512_F64_ID,mgr); 161 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_512_F64_ID,mgr); 162 163 status=arm_cfft_init_f64(&varInstCfftF64,512); 164 165 this->ifft=1; 166 167 break; 168 169 case TransformCF64::TEST_CFFT_F64_7: 170 171 input.reload(TransformCF64::INPUTS_CFFT_NOISY_1024_F64_ID,mgr); 172 ref.reload( TransformCF64::REF_CFFT_NOISY_1024_F64_ID,mgr); 173 174 status=arm_cfft_init_f64(&varInstCfftF64,1024); 175 176 this->ifft=0; 177 178 break; 179 180 case TransformCF64::TEST_CFFT_F64_25: 181 182 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_1024_F64_ID,mgr); 183 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_1024_F64_ID,mgr); 184 185 status=arm_cfft_init_f64(&varInstCfftF64,1024); 186 187 this->ifft=1; 188 189 break; 190 191 case TransformCF64::TEST_CFFT_F64_8: 192 193 input.reload(TransformCF64::INPUTS_CFFT_NOISY_2048_F64_ID,mgr); 194 ref.reload( TransformCF64::REF_CFFT_NOISY_2048_F64_ID,mgr); 195 196 status=arm_cfft_init_f64(&varInstCfftF64,2048); 197 198 this->ifft=0; 199 200 break; 201 202 case TransformCF64::TEST_CFFT_F64_26: 203 204 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_2048_F64_ID,mgr); 205 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_2048_F64_ID,mgr); 206 207 status=arm_cfft_init_f64(&varInstCfftF64,2048); 208 209 this->ifft=1; 210 211 break; 212 213 case TransformCF64::TEST_CFFT_F64_9: 214 215 input.reload(TransformCF64::INPUTS_CFFT_NOISY_4096_F64_ID,mgr); 216 ref.reload( TransformCF64::REF_CFFT_NOISY_4096_F64_ID,mgr); 217 218 status=arm_cfft_init_f64(&varInstCfftF64,4096); 219 220 this->ifft=0; 221 222 break; 223 224 case TransformCF64::TEST_CFFT_F64_27: 225 226 input.reload(TransformCF64::INPUTS_CIFFT_NOISY_4096_F64_ID,mgr); 227 ref.reload( TransformCF64::INPUTS_CFFT_NOISY_4096_F64_ID,mgr); 228 229 status=arm_cfft_init_f64(&varInstCfftF64,4096); 230 231 this->ifft=1; 232 233 break; 234 235 /* STEP FUNCTIONS */ 236 237 case TransformCF64::TEST_CFFT_F64_10: 238 239 input.reload(TransformCF64::INPUTS_CFFT_STEP_16_F64_ID,mgr); 240 ref.reload( TransformCF64::REF_CFFT_STEP_16_F64_ID,mgr); 241 242 status=arm_cfft_init_f64(&varInstCfftF64,16); 243 244 this->ifft=0; 245 246 break; 247 248 case TransformCF64::TEST_CFFT_F64_28: 249 250 input.reload(TransformCF64::INPUTS_CIFFT_STEP_16_F64_ID,mgr); 251 ref.reload( TransformCF64::INPUTS_CFFT_STEP_16_F64_ID,mgr); 252 253 status=arm_cfft_init_f64(&varInstCfftF64,16); 254 255 this->ifft=1; 256 257 break; 258 259 case TransformCF64::TEST_CFFT_F64_11: 260 261 input.reload(TransformCF64::INPUTS_CFFT_STEP_32_F64_ID,mgr); 262 ref.reload( TransformCF64::REF_CFFT_STEP_32_F64_ID,mgr); 263 264 status=arm_cfft_init_f64(&varInstCfftF64,32); 265 266 this->ifft=0; 267 268 break; 269 270 case TransformCF64::TEST_CFFT_F64_29: 271 272 input.reload(TransformCF64::INPUTS_CIFFT_STEP_32_F64_ID,mgr); 273 ref.reload( TransformCF64::INPUTS_CFFT_STEP_32_F64_ID,mgr); 274 275 status=arm_cfft_init_f64(&varInstCfftF64,32); 276 277 this->ifft=1; 278 279 break; 280 281 case TransformCF64::TEST_CFFT_F64_12: 282 283 input.reload(TransformCF64::INPUTS_CFFT_STEP_64_F64_ID,mgr); 284 ref.reload( TransformCF64::REF_CFFT_STEP_64_F64_ID,mgr); 285 286 status=arm_cfft_init_f64(&varInstCfftF64,64); 287 288 this->ifft=0; 289 290 break; 291 292 case TransformCF64::TEST_CFFT_F64_30: 293 294 input.reload(TransformCF64::INPUTS_CIFFT_STEP_64_F64_ID,mgr); 295 ref.reload( TransformCF64::INPUTS_CFFT_STEP_64_F64_ID,mgr); 296 297 status=arm_cfft_init_f64(&varInstCfftF64,64); 298 299 this->ifft=1; 300 301 break; 302 303 case TransformCF64::TEST_CFFT_F64_13: 304 305 input.reload(TransformCF64::INPUTS_CFFT_STEP_128_F64_ID,mgr); 306 ref.reload( TransformCF64::REF_CFFT_STEP_128_F64_ID,mgr); 307 308 status=arm_cfft_init_f64(&varInstCfftF64,128); 309 310 this->ifft=0; 311 312 break; 313 314 case TransformCF64::TEST_CFFT_F64_31: 315 316 input.reload(TransformCF64::INPUTS_CIFFT_STEP_128_F64_ID,mgr); 317 ref.reload( TransformCF64::INPUTS_CFFT_STEP_128_F64_ID,mgr); 318 319 status=arm_cfft_init_f64(&varInstCfftF64,128); 320 321 this->ifft=1; 322 323 break; 324 325 case TransformCF64::TEST_CFFT_F64_14: 326 327 input.reload(TransformCF64::INPUTS_CFFT_STEP_256_F64_ID,mgr); 328 ref.reload( TransformCF64::REF_CFFT_STEP_256_F64_ID,mgr); 329 330 status=arm_cfft_init_f64(&varInstCfftF64,256); 331 332 this->ifft=0; 333 334 break; 335 336 case TransformCF64::TEST_CFFT_F64_32: 337 338 input.reload(TransformCF64::INPUTS_CIFFT_STEP_256_F64_ID,mgr); 339 ref.reload( TransformCF64::INPUTS_CFFT_STEP_256_F64_ID,mgr); 340 341 status=arm_cfft_init_f64(&varInstCfftF64,256); 342 343 this->ifft=1; 344 345 break; 346 347 case TransformCF64::TEST_CFFT_F64_15: 348 349 input.reload(TransformCF64::INPUTS_CFFT_STEP_512_F64_ID,mgr); 350 ref.reload( TransformCF64::REF_CFFT_STEP_512_F64_ID,mgr); 351 352 status=arm_cfft_init_f64(&varInstCfftF64,512); 353 354 this->ifft=0; 355 356 break; 357 358 case TransformCF64::TEST_CFFT_F64_33: 359 360 input.reload(TransformCF64::INPUTS_CIFFT_STEP_512_F64_ID,mgr); 361 ref.reload( TransformCF64::INPUTS_CFFT_STEP_512_F64_ID,mgr); 362 363 status=arm_cfft_init_f64(&varInstCfftF64,512); 364 365 this->ifft=1; 366 367 break; 368 369 case TransformCF64::TEST_CFFT_F64_16: 370 371 input.reload(TransformCF64::INPUTS_CFFT_STEP_1024_F64_ID,mgr); 372 ref.reload( TransformCF64::REF_CFFT_STEP_1024_F64_ID,mgr); 373 374 status=arm_cfft_init_f64(&varInstCfftF64,1024); 375 376 this->ifft=0; 377 378 break; 379 380 case TransformCF64::TEST_CFFT_F64_34: 381 382 input.reload(TransformCF64::INPUTS_CIFFT_STEP_1024_F64_ID,mgr); 383 ref.reload( TransformCF64::INPUTS_CFFT_STEP_1024_F64_ID,mgr); 384 385 status=arm_cfft_init_f64(&varInstCfftF64,1024); 386 387 this->ifft=1; 388 389 break; 390 391 case TransformCF64::TEST_CFFT_F64_17: 392 393 input.reload(TransformCF64::INPUTS_CFFT_STEP_2048_F64_ID,mgr); 394 ref.reload( TransformCF64::REF_CFFT_STEP_2048_F64_ID,mgr); 395 396 status=arm_cfft_init_f64(&varInstCfftF64,2048); 397 398 this->ifft=0; 399 400 break; 401 402 case TransformCF64::TEST_CFFT_F64_35: 403 404 input.reload(TransformCF64::INPUTS_CIFFT_STEP_2048_F64_ID,mgr); 405 ref.reload( TransformCF64::INPUTS_CFFT_STEP_2048_F64_ID,mgr); 406 407 status=arm_cfft_init_f64(&varInstCfftF64,2048); 408 409 this->ifft=1; 410 411 break; 412 413 case TransformCF64::TEST_CFFT_F64_18: 414 415 input.reload(TransformCF64::INPUTS_CFFT_STEP_4096_F64_ID,mgr); 416 ref.reload( TransformCF64::REF_CFFT_STEP_4096_F64_ID,mgr); 417 418 status=arm_cfft_init_f64(&varInstCfftF64,4096); 419 420 this->ifft=0; 421 422 break; 423 424 case TransformCF64::TEST_CFFT_F64_36: 425 426 input.reload(TransformCF64::INPUTS_CIFFT_STEP_4096_F64_ID,mgr); 427 ref.reload( TransformCF64::INPUTS_CFFT_STEP_4096_F64_ID,mgr); 428 429 status=arm_cfft_init_f64(&varInstCfftF64,4096); 430 431 this->ifft=1; 432 433 break; 434 435 } 436 437 outputfft.create(ref.nbSamples(),TransformCF64::OUTPUT_CFFT_F64_ID,mgr); 438 439 440 } 441 tearDown(Testing::testID_t id,Client::PatternMgr * mgr)442 void TransformCF64::tearDown(Testing::testID_t id,Client::PatternMgr *mgr) 443 { 444 (void)id; 445 outputfft.dump(mgr); 446 } 447