DistanceF16.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #include "DistanceF16.h"
  2. #include <stdio.h>
  3. #include "Error.h"
  4. #include "Test.h"
  5. void DistanceF16::test_braycurtis_distance_f16()
  6. {
  7. (void)arm_braycurtis_distance_f16(inpA, inpB, this->vecDim);
  8. }
  9. void DistanceF16::test_canberra_distance_f16()
  10. {
  11. (void)arm_canberra_distance_f16(inpA, inpB, this->vecDim);
  12. }
  13. void DistanceF16::test_chebyshev_distance_f16()
  14. {
  15. (void)arm_chebyshev_distance_f16(inpA, inpB, this->vecDim);
  16. }
  17. void DistanceF16::test_cityblock_distance_f16()
  18. {
  19. (void)arm_cityblock_distance_f16(inpA, inpB, this->vecDim);
  20. }
  21. void DistanceF16::test_correlation_distance_f16()
  22. {
  23. memcpy(tmpAp, inpA, sizeof(float16_t) * this->vecDim);
  24. memcpy(tmpBp, inpB, sizeof(float16_t) * this->vecDim);
  25. (void)arm_correlation_distance_f16(tmpAp, tmpBp, this->vecDim);
  26. }
  27. void DistanceF16::test_cosine_distance_f16()
  28. {
  29. (void)arm_cosine_distance_f16(inpA, inpB, this->vecDim);
  30. }
  31. void DistanceF16::test_euclidean_distance_f16()
  32. {
  33. (void)arm_euclidean_distance_f16(inpA, inpB, this->vecDim);
  34. }
  35. void DistanceF16::test_jensenshannon_distance_f16()
  36. {
  37. (void)arm_jensenshannon_distance_f16(inpA, inpB, this->vecDim);
  38. }
  39. void DistanceF16::test_minkowski_distance_f16()
  40. {
  41. (void)arm_minkowski_distance_f16(inpA, inpB, 2,this->vecDim);
  42. }
  43. void DistanceF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
  44. {
  45. std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
  46. this->vecDim = *it++;
  47. if ((id != DistanceF16::TEST_MINKOWSKI_DISTANCE_F16_9) && (id != DistanceF16::TEST_JENSENSHANNON_DISTANCE_F16_8))
  48. {
  49. inputA.reload(DistanceF16::INPUTA_PROBA_F16_ID,mgr);
  50. inputB.reload(DistanceF16::INPUTB_PROBA_F16_ID,mgr);
  51. }
  52. else
  53. {
  54. inputA.reload(DistanceF16::INPUTA_F16_ID,mgr);
  55. inputB.reload(DistanceF16::INPUTB_F16_ID,mgr);
  56. }
  57. if (id == DistanceF16::TEST_CORRELATION_DISTANCE_F16_5)
  58. {
  59. tmpA.create(this->vecDim,DistanceF16::TMPA_F16_ID,mgr);
  60. tmpB.create(this->vecDim,DistanceF16::TMPB_F16_ID,mgr);
  61. tmpAp = tmpA.ptr();
  62. tmpBp = tmpB.ptr();
  63. }
  64. inpA=inputA.ptr();
  65. inpB=inputB.ptr();
  66. }
  67. void DistanceF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
  68. {
  69. (void)id;
  70. (void)mgr;
  71. }