MISCF64.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841
  1. #include "arm_vec_math.h"
  2. #include "MISCF64.h"
  3. #include <stdio.h>
  4. #include "Error.h"
  5. #include "Test.h"
  6. #define SNR_THRESHOLD 310
  7. /*
  8. Reference patterns are generated with
  9. a double precision computation.
  10. */
  11. #define REL_ERROR (2.0e-16)
  12. #define ABS_ERROR (2.0e-16)
  13. /*
  14. For tests of the error value of the Levinson Durbin algorithm
  15. */
  16. #define REL_LD_ERROR (1.0e-6)
  17. #define ABS_LD_ERROR (1.0e-6)
  18. /*
  19. void MISCF64::test_levinson_durbin_f64()
  20. {
  21. const float64_t *inpA=inputA.ptr();
  22. const float64_t *errs=inputB.ptr();
  23. float64_t *outp=output.ptr();
  24. float64_t err;
  25. float64_t refError=errs[this->errOffset];
  26. arm_levinson_durbin_f64(inpA,outp,&err,this->nba);
  27. ASSERT_EMPTY_TAIL(output);
  28. ASSERT_SNR(ref,output,(float64_t)SNR_THRESHOLD);
  29. ASSERT_CLOSE_ERROR(ref,output,ABS_LD_ERROR,REL_LD_ERROR);
  30. ASSERT_CLOSE_ERROR(refError,err,ABS_LD_ERROR,REL_LD_ERROR);
  31. }
  32. */
  33. void MISCF64::test_correlate_f64()
  34. {
  35. const float64_t *inpA=inputA.ptr();
  36. const float64_t *inpB=inputB.ptr();
  37. float64_t *outp=output.ptr();
  38. arm_correlate_f64(inpA, inputA.nbSamples(),
  39. inpB, inputB.nbSamples(),
  40. outp);
  41. ASSERT_SNR(ref,output,(float64_t)SNR_THRESHOLD);
  42. ASSERT_CLOSE_ERROR(ref,output,ABS_ERROR,REL_ERROR);
  43. }
  44. /*
  45. void MISCF64::test_conv_f64()
  46. {
  47. const float64_t *inpA=inputA.ptr();
  48. const float64_t *inpB=inputB.ptr();
  49. float64_t *outp=output.ptr();
  50. arm_conv_f64(inpA, inputA.nbSamples(),
  51. inpB, inputB.nbSamples(),
  52. outp);
  53. ASSERT_SNR(ref,output,(float64_t)SNR_THRESHOLD);
  54. ASSERT_CLOSE_ERROR(ref,output,ABS_ERROR,REL_ERROR);
  55. }
  56. // This value must be coherent with the Python script
  57. // generating the test patterns
  58. #define NBPOINTS 4
  59. void MISCF64::test_conv_partial_f64()
  60. {
  61. const float64_t *inpA=inputA.ptr();
  62. const float64_t *inpB=inputB.ptr();
  63. float64_t *outp=output.ptr();
  64. float64_t *tmpp=tmp.ptr();
  65. arm_status status=arm_conv_partial_f64(inpA, inputA.nbSamples(),
  66. inpB, inputB.nbSamples(),
  67. outp,
  68. this->first,
  69. NBPOINTS);
  70. memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(float64_t));
  71. ASSERT_TRUE(status==ARM_MATH_SUCCESS);
  72. ASSERT_SNR(ref,tmp,(float64_t)SNR_THRESHOLD);
  73. ASSERT_CLOSE_ERROR(ref,tmp,ABS_ERROR,REL_ERROR);
  74. }
  75. */
  76. void MISCF64::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
  77. {
  78. (void)paramsArgs;
  79. switch(id)
  80. {
  81. case MISCF64::TEST_CORRELATE_F64_1:
  82. {
  83. this->nba = 4;
  84. this->nbb = 1;
  85. ref.reload(MISCF64::REF1_F64_ID,mgr);
  86. }
  87. break;
  88. case MISCF64::TEST_CORRELATE_F64_2:
  89. {
  90. this->nba = 4;
  91. this->nbb = 2;
  92. ref.reload(MISCF64::REF2_F64_ID,mgr);
  93. }
  94. break;
  95. case MISCF64::TEST_CORRELATE_F64_3:
  96. {
  97. this->nba = 4;
  98. this->nbb = 3;
  99. ref.reload(MISCF64::REF3_F64_ID,mgr);
  100. }
  101. break;
  102. case MISCF64::TEST_CORRELATE_F64_4:
  103. {
  104. this->nba = 4;
  105. this->nbb = 8;
  106. ref.reload(MISCF64::REF4_F64_ID,mgr);
  107. }
  108. break;
  109. case MISCF64::TEST_CORRELATE_F64_5:
  110. {
  111. this->nba = 4;
  112. this->nbb = 11;
  113. ref.reload(MISCF64::REF5_F64_ID,mgr);
  114. }
  115. break;
  116. case MISCF64::TEST_CORRELATE_F64_6:
  117. {
  118. this->nba = 5;
  119. this->nbb = 1;
  120. ref.reload(MISCF64::REF6_F64_ID,mgr);
  121. }
  122. break;
  123. case MISCF64::TEST_CORRELATE_F64_7:
  124. {
  125. this->nba = 5;
  126. this->nbb = 2;
  127. ref.reload(MISCF64::REF7_F64_ID,mgr);
  128. }
  129. break;
  130. case MISCF64::TEST_CORRELATE_F64_8:
  131. {
  132. this->nba = 5;
  133. this->nbb = 3;
  134. ref.reload(MISCF64::REF8_F64_ID,mgr);
  135. }
  136. break;
  137. case MISCF64::TEST_CORRELATE_F64_9:
  138. {
  139. this->nba = 5;
  140. this->nbb = 8;
  141. ref.reload(MISCF64::REF9_F64_ID,mgr);
  142. }
  143. break;
  144. case MISCF64::TEST_CORRELATE_F64_10:
  145. {
  146. this->nba = 5;
  147. this->nbb = 11;
  148. ref.reload(MISCF64::REF10_F64_ID,mgr);
  149. }
  150. break;
  151. case MISCF64::TEST_CORRELATE_F64_11:
  152. {
  153. this->nba = 6;
  154. this->nbb = 1;
  155. ref.reload(MISCF64::REF11_F64_ID,mgr);
  156. }
  157. break;
  158. case MISCF64::TEST_CORRELATE_F64_12:
  159. {
  160. this->nba = 6;
  161. this->nbb = 2;
  162. ref.reload(MISCF64::REF12_F64_ID,mgr);
  163. }
  164. break;
  165. case MISCF64::TEST_CORRELATE_F64_13:
  166. {
  167. this->nba = 6;
  168. this->nbb = 3;
  169. ref.reload(MISCF64::REF13_F64_ID,mgr);
  170. }
  171. break;
  172. case MISCF64::TEST_CORRELATE_F64_14:
  173. {
  174. this->nba = 6;
  175. this->nbb = 8;
  176. ref.reload(MISCF64::REF14_F64_ID,mgr);
  177. }
  178. break;
  179. case MISCF64::TEST_CORRELATE_F64_15:
  180. {
  181. this->nba = 6;
  182. this->nbb = 11;
  183. ref.reload(MISCF64::REF15_F64_ID,mgr);
  184. }
  185. break;
  186. case MISCF64::TEST_CORRELATE_F64_16:
  187. {
  188. this->nba = 9;
  189. this->nbb = 1;
  190. ref.reload(MISCF64::REF16_F64_ID,mgr);
  191. }
  192. break;
  193. case MISCF64::TEST_CORRELATE_F64_17:
  194. {
  195. this->nba = 9;
  196. this->nbb = 2;
  197. ref.reload(MISCF64::REF17_F64_ID,mgr);
  198. }
  199. break;
  200. case MISCF64::TEST_CORRELATE_F64_18:
  201. {
  202. this->nba = 9;
  203. this->nbb = 3;
  204. ref.reload(MISCF64::REF18_F64_ID,mgr);
  205. }
  206. break;
  207. case MISCF64::TEST_CORRELATE_F64_19:
  208. {
  209. this->nba = 9;
  210. this->nbb = 8;
  211. ref.reload(MISCF64::REF19_F64_ID,mgr);
  212. }
  213. break;
  214. case MISCF64::TEST_CORRELATE_F64_20:
  215. {
  216. this->nba = 9;
  217. this->nbb = 11;
  218. ref.reload(MISCF64::REF20_F64_ID,mgr);
  219. }
  220. break;
  221. case MISCF64::TEST_CORRELATE_F64_21:
  222. {
  223. this->nba = 10;
  224. this->nbb = 1;
  225. ref.reload(MISCF64::REF21_F64_ID,mgr);
  226. }
  227. break;
  228. case MISCF64::TEST_CORRELATE_F64_22:
  229. {
  230. this->nba = 10;
  231. this->nbb = 2;
  232. ref.reload(MISCF64::REF22_F64_ID,mgr);
  233. }
  234. break;
  235. case MISCF64::TEST_CORRELATE_F64_23:
  236. {
  237. this->nba = 10;
  238. this->nbb = 3;
  239. ref.reload(MISCF64::REF23_F64_ID,mgr);
  240. }
  241. break;
  242. case MISCF64::TEST_CORRELATE_F64_24:
  243. {
  244. this->nba = 10;
  245. this->nbb = 8;
  246. ref.reload(MISCF64::REF24_F64_ID,mgr);
  247. }
  248. break;
  249. case MISCF64::TEST_CORRELATE_F64_25:
  250. {
  251. this->nba = 10;
  252. this->nbb = 11;
  253. ref.reload(MISCF64::REF25_F64_ID,mgr);
  254. }
  255. break;
  256. case MISCF64::TEST_CORRELATE_F64_26:
  257. {
  258. this->nba = 11;
  259. this->nbb = 1;
  260. ref.reload(MISCF64::REF26_F64_ID,mgr);
  261. }
  262. break;
  263. case MISCF64::TEST_CORRELATE_F64_27:
  264. {
  265. this->nba = 11;
  266. this->nbb = 2;
  267. ref.reload(MISCF64::REF27_F64_ID,mgr);
  268. }
  269. break;
  270. case MISCF64::TEST_CORRELATE_F64_28:
  271. {
  272. this->nba = 11;
  273. this->nbb = 3;
  274. ref.reload(MISCF64::REF28_F64_ID,mgr);
  275. }
  276. break;
  277. case MISCF64::TEST_CORRELATE_F64_29:
  278. {
  279. this->nba = 11;
  280. this->nbb = 8;
  281. ref.reload(MISCF64::REF29_F64_ID,mgr);
  282. }
  283. break;
  284. case MISCF64::TEST_CORRELATE_F64_30:
  285. {
  286. this->nba = 11;
  287. this->nbb = 11;
  288. ref.reload(MISCF64::REF30_F64_ID,mgr);
  289. }
  290. break;
  291. case MISCF64::TEST_CORRELATE_F64_31:
  292. {
  293. this->nba = 12;
  294. this->nbb = 1;
  295. ref.reload(MISCF64::REF31_F64_ID,mgr);
  296. }
  297. break;
  298. case MISCF64::TEST_CORRELATE_F64_32:
  299. {
  300. this->nba = 12;
  301. this->nbb = 2;
  302. ref.reload(MISCF64::REF32_F64_ID,mgr);
  303. }
  304. break;
  305. case MISCF64::TEST_CORRELATE_F64_33:
  306. {
  307. this->nba = 12;
  308. this->nbb = 3;
  309. ref.reload(MISCF64::REF33_F64_ID,mgr);
  310. }
  311. break;
  312. case MISCF64::TEST_CORRELATE_F64_34:
  313. {
  314. this->nba = 12;
  315. this->nbb = 8;
  316. ref.reload(MISCF64::REF34_F64_ID,mgr);
  317. }
  318. break;
  319. case MISCF64::TEST_CORRELATE_F64_35:
  320. {
  321. this->nba = 12;
  322. this->nbb = 11;
  323. ref.reload(MISCF64::REF35_F64_ID,mgr);
  324. }
  325. break;
  326. case MISCF64::TEST_CORRELATE_F64_36:
  327. {
  328. this->nba = 13;
  329. this->nbb = 1;
  330. ref.reload(MISCF64::REF36_F64_ID,mgr);
  331. }
  332. break;
  333. case MISCF64::TEST_CORRELATE_F64_37:
  334. {
  335. this->nba = 13;
  336. this->nbb = 2;
  337. ref.reload(MISCF64::REF37_F64_ID,mgr);
  338. }
  339. break;
  340. case MISCF64::TEST_CORRELATE_F64_38:
  341. {
  342. this->nba = 13;
  343. this->nbb = 3;
  344. ref.reload(MISCF64::REF38_F64_ID,mgr);
  345. }
  346. break;
  347. case MISCF64::TEST_CORRELATE_F64_39:
  348. {
  349. this->nba = 13;
  350. this->nbb = 8;
  351. ref.reload(MISCF64::REF39_F64_ID,mgr);
  352. }
  353. break;
  354. case MISCF64::TEST_CORRELATE_F64_40:
  355. {
  356. this->nba = 13;
  357. this->nbb = 11;
  358. ref.reload(MISCF64::REF40_F64_ID,mgr);
  359. }
  360. break;
  361. case MISCF64::TEST_CONV_F64_41:
  362. {
  363. this->nba = 4;
  364. this->nbb = 1;
  365. ref.reload(MISCF64::REF41_F64_ID,mgr);
  366. }
  367. break;
  368. case MISCF64::TEST_CONV_F64_42:
  369. {
  370. this->nba = 4;
  371. this->nbb = 2;
  372. ref.reload(MISCF64::REF42_F64_ID,mgr);
  373. }
  374. break;
  375. case MISCF64::TEST_CONV_F64_43:
  376. {
  377. this->nba = 4;
  378. this->nbb = 3;
  379. ref.reload(MISCF64::REF43_F64_ID,mgr);
  380. }
  381. break;
  382. case MISCF64::TEST_CONV_F64_44:
  383. {
  384. this->nba = 4;
  385. this->nbb = 8;
  386. ref.reload(MISCF64::REF44_F64_ID,mgr);
  387. }
  388. break;
  389. case MISCF64::TEST_CONV_F64_45:
  390. {
  391. this->nba = 4;
  392. this->nbb = 11;
  393. ref.reload(MISCF64::REF45_F64_ID,mgr);
  394. }
  395. break;
  396. case MISCF64::TEST_CONV_F64_46:
  397. {
  398. this->nba = 5;
  399. this->nbb = 1;
  400. ref.reload(MISCF64::REF46_F64_ID,mgr);
  401. }
  402. break;
  403. case MISCF64::TEST_CONV_F64_47:
  404. {
  405. this->nba = 5;
  406. this->nbb = 2;
  407. ref.reload(MISCF64::REF47_F64_ID,mgr);
  408. }
  409. break;
  410. case MISCF64::TEST_CONV_F64_48:
  411. {
  412. this->nba = 5;
  413. this->nbb = 3;
  414. ref.reload(MISCF64::REF48_F64_ID,mgr);
  415. }
  416. break;
  417. case MISCF64::TEST_CONV_F64_49:
  418. {
  419. this->nba = 5;
  420. this->nbb = 8;
  421. ref.reload(MISCF64::REF49_F64_ID,mgr);
  422. }
  423. break;
  424. case MISCF64::TEST_CONV_F64_50:
  425. {
  426. this->nba = 5;
  427. this->nbb = 11;
  428. ref.reload(MISCF64::REF50_F64_ID,mgr);
  429. }
  430. break;
  431. case MISCF64::TEST_CONV_F64_51:
  432. {
  433. this->nba = 6;
  434. this->nbb = 1;
  435. ref.reload(MISCF64::REF51_F64_ID,mgr);
  436. }
  437. break;
  438. case MISCF64::TEST_CONV_F64_52:
  439. {
  440. this->nba = 6;
  441. this->nbb = 2;
  442. ref.reload(MISCF64::REF52_F64_ID,mgr);
  443. }
  444. break;
  445. case MISCF64::TEST_CONV_F64_53:
  446. {
  447. this->nba = 6;
  448. this->nbb = 3;
  449. ref.reload(MISCF64::REF53_F64_ID,mgr);
  450. }
  451. break;
  452. case MISCF64::TEST_CONV_F64_54:
  453. {
  454. this->nba = 6;
  455. this->nbb = 8;
  456. ref.reload(MISCF64::REF54_F64_ID,mgr);
  457. }
  458. break;
  459. case MISCF64::TEST_CONV_F64_55:
  460. {
  461. this->nba = 6;
  462. this->nbb = 11;
  463. ref.reload(MISCF64::REF55_F64_ID,mgr);
  464. }
  465. break;
  466. case MISCF64::TEST_CONV_F64_56:
  467. {
  468. this->nba = 9;
  469. this->nbb = 1;
  470. ref.reload(MISCF64::REF56_F64_ID,mgr);
  471. }
  472. break;
  473. case MISCF64::TEST_CONV_F64_57:
  474. {
  475. this->nba = 9;
  476. this->nbb = 2;
  477. ref.reload(MISCF64::REF57_F64_ID,mgr);
  478. }
  479. break;
  480. case MISCF64::TEST_CONV_F64_58:
  481. {
  482. this->nba = 9;
  483. this->nbb = 3;
  484. ref.reload(MISCF64::REF58_F64_ID,mgr);
  485. }
  486. break;
  487. case MISCF64::TEST_CONV_F64_59:
  488. {
  489. this->nba = 9;
  490. this->nbb = 8;
  491. ref.reload(MISCF64::REF59_F64_ID,mgr);
  492. }
  493. break;
  494. case MISCF64::TEST_CONV_F64_60:
  495. {
  496. this->nba = 9;
  497. this->nbb = 11;
  498. ref.reload(MISCF64::REF60_F64_ID,mgr);
  499. }
  500. break;
  501. case MISCF64::TEST_CONV_F64_61:
  502. {
  503. this->nba = 10;
  504. this->nbb = 1;
  505. ref.reload(MISCF64::REF61_F64_ID,mgr);
  506. }
  507. break;
  508. case MISCF64::TEST_CONV_F64_62:
  509. {
  510. this->nba = 10;
  511. this->nbb = 2;
  512. ref.reload(MISCF64::REF62_F64_ID,mgr);
  513. }
  514. break;
  515. case MISCF64::TEST_CONV_F64_63:
  516. {
  517. this->nba = 10;
  518. this->nbb = 3;
  519. ref.reload(MISCF64::REF63_F64_ID,mgr);
  520. }
  521. break;
  522. case MISCF64::TEST_CONV_F64_64:
  523. {
  524. this->nba = 10;
  525. this->nbb = 8;
  526. ref.reload(MISCF64::REF64_F64_ID,mgr);
  527. }
  528. break;
  529. case MISCF64::TEST_CONV_F64_65:
  530. {
  531. this->nba = 10;
  532. this->nbb = 11;
  533. ref.reload(MISCF64::REF65_F64_ID,mgr);
  534. }
  535. break;
  536. case MISCF64::TEST_CONV_F64_66:
  537. {
  538. this->nba = 11;
  539. this->nbb = 1;
  540. ref.reload(MISCF64::REF66_F64_ID,mgr);
  541. }
  542. break;
  543. case MISCF64::TEST_CONV_F64_67:
  544. {
  545. this->nba = 11;
  546. this->nbb = 2;
  547. ref.reload(MISCF64::REF67_F64_ID,mgr);
  548. }
  549. break;
  550. case MISCF64::TEST_CONV_F64_68:
  551. {
  552. this->nba = 11;
  553. this->nbb = 3;
  554. ref.reload(MISCF64::REF68_F64_ID,mgr);
  555. }
  556. break;
  557. case MISCF64::TEST_CONV_F64_69:
  558. {
  559. this->nba = 11;
  560. this->nbb = 8;
  561. ref.reload(MISCF64::REF69_F64_ID,mgr);
  562. }
  563. break;
  564. case MISCF64::TEST_CONV_F64_70:
  565. {
  566. this->nba = 11;
  567. this->nbb = 11;
  568. ref.reload(MISCF64::REF70_F64_ID,mgr);
  569. }
  570. break;
  571. case MISCF64::TEST_CONV_F64_71:
  572. {
  573. this->nba = 12;
  574. this->nbb = 1;
  575. ref.reload(MISCF64::REF71_F64_ID,mgr);
  576. }
  577. break;
  578. case MISCF64::TEST_CONV_F64_72:
  579. {
  580. this->nba = 12;
  581. this->nbb = 2;
  582. ref.reload(MISCF64::REF72_F64_ID,mgr);
  583. }
  584. break;
  585. case MISCF64::TEST_CONV_F64_73:
  586. {
  587. this->nba = 12;
  588. this->nbb = 3;
  589. ref.reload(MISCF64::REF73_F64_ID,mgr);
  590. }
  591. break;
  592. case MISCF64::TEST_CONV_F64_74:
  593. {
  594. this->nba = 12;
  595. this->nbb = 8;
  596. ref.reload(MISCF64::REF74_F64_ID,mgr);
  597. }
  598. break;
  599. case MISCF64::TEST_CONV_F64_75:
  600. {
  601. this->nba = 12;
  602. this->nbb = 11;
  603. ref.reload(MISCF64::REF75_F64_ID,mgr);
  604. }
  605. break;
  606. case MISCF64::TEST_CONV_F64_76:
  607. {
  608. this->nba = 13;
  609. this->nbb = 1;
  610. ref.reload(MISCF64::REF76_F64_ID,mgr);
  611. }
  612. break;
  613. case MISCF64::TEST_CONV_F64_77:
  614. {
  615. this->nba = 13;
  616. this->nbb = 2;
  617. ref.reload(MISCF64::REF77_F64_ID,mgr);
  618. }
  619. break;
  620. case MISCF64::TEST_CONV_F64_78:
  621. {
  622. this->nba = 13;
  623. this->nbb = 3;
  624. ref.reload(MISCF64::REF78_F64_ID,mgr);
  625. }
  626. break;
  627. case MISCF64::TEST_CONV_F64_79:
  628. {
  629. this->nba = 13;
  630. this->nbb = 8;
  631. ref.reload(MISCF64::REF79_F64_ID,mgr);
  632. }
  633. break;
  634. case MISCF64::TEST_CONV_F64_80:
  635. {
  636. this->nba = 13;
  637. this->nbb = 11;
  638. ref.reload(MISCF64::REF80_F64_ID,mgr);
  639. }
  640. break;
  641. case MISCF64::TEST_LEVINSON_DURBIN_F64_81:
  642. {
  643. this->nba = 3;
  644. inputA.reload(MISCF64::INPUTPHI_A_F64_ID,mgr);
  645. this->errOffset=0;
  646. inputB.reload(MISCF64::INPUT_ERRORS_F64_ID,mgr);
  647. ref.reload(MISCF64::REF81_F64_ID,mgr);
  648. }
  649. break;
  650. case MISCF64::TEST_LEVINSON_DURBIN_F64_82:
  651. {
  652. this->nba = 8;
  653. inputA.reload(MISCF64::INPUTPHI_B_F64_ID,mgr);
  654. this->errOffset=1;
  655. inputB.reload(MISCF64::INPUT_ERRORS_F64_ID,mgr);
  656. ref.reload(MISCF64::REF82_F64_ID,mgr);
  657. }
  658. break;
  659. case MISCF64::TEST_LEVINSON_DURBIN_F64_83:
  660. {
  661. this->nba = 11;
  662. inputA.reload(MISCF64::INPUTPHI_C_F64_ID,mgr);
  663. this->errOffset=2;
  664. inputB.reload(MISCF64::INPUT_ERRORS_F64_ID,mgr);
  665. ref.reload(MISCF64::REF83_F64_ID,mgr);
  666. }
  667. break;
  668. case MISCF64::TEST_CONV_PARTIAL_F64_84:
  669. {
  670. this->first=3;
  671. this->nba = 6;
  672. this->nbb = 8;
  673. ref.reload(MISCF64::REF84_F64_ID,mgr);
  674. tmp.create(ref.nbSamples(),MISCF64::TMP_F64_ID,mgr);
  675. }
  676. break;
  677. case MISCF64::TEST_CONV_PARTIAL_F64_85:
  678. {
  679. this->first=9;
  680. this->nba = 6;
  681. this->nbb = 8;
  682. ref.reload(MISCF64::REF85_F64_ID,mgr);
  683. tmp.create(ref.nbSamples(),MISCF64::TMP_F64_ID,mgr);
  684. }
  685. break;
  686. case MISCF64::TEST_CONV_PARTIAL_F64_86:
  687. {
  688. this->first=7;
  689. this->nba = 6;
  690. this->nbb = 8;
  691. ref.reload(MISCF64::REF86_F64_ID,mgr);
  692. tmp.create(ref.nbSamples(),MISCF64::TMP_F64_ID,mgr);
  693. }
  694. break;
  695. }
  696. if (id < TEST_LEVINSON_DURBIN_F64_81)
  697. {
  698. inputA.reload(MISCF64::INPUTA_F64_ID,mgr,nba);
  699. inputB.reload(MISCF64::INPUTB_F64_ID,mgr,nbb);
  700. }
  701. if (id > TEST_LEVINSON_DURBIN_F64_83)
  702. {
  703. inputA.reload(MISCF64::INPUTA2_F64_ID,mgr,nba);
  704. inputB.reload(MISCF64::INPUTB2_F64_ID,mgr,nbb);
  705. }
  706. output.create(ref.nbSamples(),MISCF64::OUT_F64_ID,mgr);
  707. }
  708. void MISCF64::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
  709. {
  710. (void)id;
  711. output.dump(mgr);
  712. }