ref_conv.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #ifndef __REF_CONV_H__
  2. #define __REF_CONV_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <stdint.h>
  7. #include <riscv_math.h>
  8. #include <ref_common.h>
  9. void ref_conv_f32(float32_t* pSrcA, uint32_t srcALen, float32_t* pSrcB,
  10. uint32_t srcBLen, float32_t* pDst);
  11. riscv_status ref_conv_partial_f32(float32_t* pSrcA, uint32_t srcALen,
  12. float32_t* pSrcB, uint32_t srcBLen,
  13. float32_t* pDst, uint32_t firstIndex,
  14. uint32_t numPoints);
  15. void ref_conv_q31(q31_t* pSrcA, uint32_t srcALen, q31_t* pSrcB,
  16. uint32_t srcBLen, q31_t* pDst);
  17. void ref_conv_fast_q31(q31_t* pSrcA, uint32_t srcALen, q31_t* pSrcB,
  18. uint32_t srcBLen, q31_t* pDst);
  19. riscv_status ref_conv_partial_q31(q31_t* pSrcA, uint32_t srcALen, q31_t* pSrcB,
  20. uint32_t srcBLen, q31_t* pDst,
  21. uint32_t firstIndex, uint32_t numPoints);
  22. riscv_status ref_conv_partial_fast_q31(q31_t* pSrcA, uint32_t srcALen,
  23. q31_t* pSrcB, uint32_t srcBLen,
  24. q31_t* pDst, uint32_t firstIndex,
  25. uint32_t numPoints);
  26. void ref_conv_q15(q15_t* pSrcA, uint32_t srcALen, q15_t* pSrcB,
  27. uint32_t srcBLen, q15_t* pDst);
  28. #define ref_conv_opt_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, pScratch1, \
  29. pScratch2) \
  30. ref_conv_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst)
  31. void ref_conv_fast_q15(q15_t* pSrcA, uint32_t srcALen, q15_t* pSrcB,
  32. uint32_t srcBLen, q15_t* pDst);
  33. void ref_conv_fast_opt_q15(q15_t* pSrcA, uint32_t srcALen, q15_t* pSrcB,
  34. uint32_t srcBLen, q15_t* pDst, q15_t* pScratch1,
  35. q15_t* pScratch2);
  36. riscv_status ref_conv_partial_q15(q15_t* pSrcA, uint32_t srcALen, q15_t* pSrcB,
  37. uint32_t srcBLen, q15_t* pDst,
  38. uint32_t firstIndex, uint32_t numPoints);
  39. #define ref_conv_partial_opt_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, \
  40. firstIndex, numPoints, pScratch1, pScratch2) \
  41. ref_conv_partial_q15(pSrcA, srcALen, pSrcB, srcBLen, pDst, firstIndex, \
  42. numPoints)
  43. riscv_status ref_conv_partial_fast_q15(q15_t* pSrcA, uint32_t srcALen,
  44. q15_t* pSrcB, uint32_t srcBLen,
  45. q15_t* pDst, uint32_t firstIndex,
  46. uint32_t numPoints);
  47. riscv_status ref_conv_partial_fast_opt_q15(q15_t* pSrcA, uint32_t srcALen,
  48. q15_t* pSrcB, uint32_t srcBLen,
  49. q15_t* pDst, uint32_t firstIndex,
  50. uint32_t numPoints, q15_t* pScratch1,
  51. q15_t* pScratch2);
  52. void ref_conv_q7(q7_t* pSrcA, uint32_t srcALen, q7_t* pSrcB, uint32_t srcBLen,
  53. q7_t* pDst);
  54. #define ref_conv_opt_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, pScratch1, \
  55. pScratch2) \
  56. ref_conv_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst)
  57. riscv_status ref_conv_partial_q7(q7_t* pSrcA, uint32_t srcALen, q7_t* pSrcB,
  58. uint32_t srcBLen, q7_t* pDst,
  59. uint32_t firstIndex, uint32_t numPoints);
  60. #define ref_conv_partial_opt_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, \
  61. firstIndex, numPoints, pScratch1, pScratch2) \
  62. ref_conv_partial_q7(pSrcA, srcALen, pSrcB, srcBLen, pDst, firstIndex, \
  63. numPoints)
  64. #ifdef __cplusplus
  65. }
  66. #endif
  67. #endif /** __REF_CONV_H__ */