SupportTestsF32.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include "SupportTestsF32.h"
  2. #include "Error.h"
  3. #include "arm_math.h"
  4. #include "Test.h"
  5. #include <cstdio>
  6. void SupportTestsF32::test_barycenter_f32()
  7. {
  8. const float32_t *inp = input.ptr();
  9. const float32_t *coefsp = coefs.ptr();
  10. float32_t *outp = output.ptr();
  11. for(int i=0; i < this->nbPatterns ; i ++)
  12. {
  13. arm_barycenter_f32(inp, coefsp,
  14. outp,
  15. this->nbVectors,
  16. this->vecDim);
  17. inp += this->vecDim * this->nbVectors;
  18. coefsp += this->nbVectors;
  19. outp += this->vecDim;
  20. }
  21. ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3);
  22. }
  23. void SupportTestsF32::test_weighted_sum_f32()
  24. {
  25. const float32_t *inp = input.ptr();
  26. const float32_t *coefsp = coefs.ptr();
  27. float32_t *outp = output.ptr();
  28. for(int i=0; i < this->nbPatterns ; i ++)
  29. {
  30. *outp=arm_weighted_sum_f32(inp, coefsp,
  31. this->vecDim);
  32. inp += this->vecDim;
  33. coefsp += this->vecDim;
  34. outp++;
  35. }
  36. ASSERT_NEAR_EQ(output,ref,(float32_t)1e-3);
  37. }
  38. void SupportTestsF32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
  39. {
  40. switch(id)
  41. {
  42. case TEST_BARYCENTER_F32_1:
  43. {
  44. input.reload(SupportTestsF32::INPUTS1_F32_ID,mgr);
  45. coefs.reload(SupportTestsF32::WEIGHTS1_F32_ID,mgr);
  46. dims.reload(SupportTestsF32::DIMS1_S16_ID,mgr);
  47. ref.reload(SupportTestsF32::REF1_F32_ID,mgr);
  48. const int16_t *dimsp = dims.ptr();
  49. this->nbPatterns=dimsp[0];
  50. this->nbVectors=dimsp[1];
  51. this->vecDim=dimsp[2];
  52. output.create(this->nbPatterns*this->vecDim,SupportTestsF32::OUT_F32_ID,mgr);
  53. }
  54. break;
  55. case TEST_WEIGHTED_SUM_F32_2:
  56. input.reload(SupportTestsF32::INPUTS2_F32_ID,mgr);
  57. coefs.reload(SupportTestsF32::WEIGHTS2_F32_ID,mgr);
  58. dims.reload(SupportTestsF32::DIMS2_S16_ID,mgr);
  59. ref.reload(SupportTestsF32::REF2_F32_ID,mgr);
  60. const int16_t *dimsp = dims.ptr();
  61. this->nbPatterns=dimsp[0];
  62. this->vecDim=dimsp[1];
  63. output.create(this->nbPatterns,SupportTestsF32::OUT_F32_ID,mgr);
  64. break;
  65. }
  66. }
  67. void SupportTestsF32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
  68. {
  69. output.dump(mgr);
  70. }