Procházet zdrojové kódy

上傳檔案到 'app/main/CTO20220622/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests'

rita před 2 roky
rodič
revize
dd52f280df

+ 102 - 0
app/main/CTO20220622/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_templates.h

@@ -0,0 +1,102 @@
+#ifndef _FAST_MATH_TEMPLATES_H_
+#define _FAST_MATH_TEMPLATES_H_
+
+/*--------------------------------------------------------------------------------*/
+/* Includes */
+/*--------------------------------------------------------------------------------*/
+
+#include "test_templates.h"
+#include <string.h>             /* memcpy() */
+
+/*--------------------------------------------------------------------------------*/
+/* Group Specific Templates */
+/*--------------------------------------------------------------------------------*/
+
+/**
+ * Comparison SNR thresholds for the data types used in transform_tests.
+ */
+#define FAST_MATH_SNR_THRESHOLD_float32_t 95
+#define FAST_MATH_SNR_THRESHOLD_q31_t     95
+#define FAST_MATH_SNR_THRESHOLD_q15_t     45
+
+/**
+ *  Compare the outputs from the function under test and the reference
+ *  function using SNR.
+ */
+#define FAST_MATH_SNR_COMPARE_INTERFACE(block_size,     \
+                                        output_type)    \
+    do                                                  \
+    {                                                   \
+        TEST_CONVERT_AND_ASSERT_SNR(                    \
+            fast_math_output_f32_ref,                   \
+            (output_type *) fast_math_output_ref,       \
+            fast_math_output_f32_fut,                   \
+            (output_type *) fast_math_output_fut,       \
+            block_size,                                 \
+            output_type,                                \
+            FAST_MATH_SNR_THRESHOLD_##output_type       \
+            );                                          \
+    } while (0)
+
+
+/*--------------------------------------------------------------------------------*/
+/* TEST Templates */
+/*--------------------------------------------------------------------------------*/
+
+#define SQRT_TEST_TEMPLATE_ELT1(suffix)                             \
+                                                                    \
+    JTEST_DEFINE_TEST(arm_sqrt_##suffix##_test, arm_sqrt_##suffix)  \
+    {                                                               \
+        uint32_t i;                                                 \
+                                                                    \
+        JTEST_COUNT_CYCLES(                                         \
+            for(i=0;i<FAST_MATH_MAX_LEN;i++)                        \
+            {                                                       \
+                arm_sqrt_##suffix(                                  \
+                    (suffix##_t)fast_math_##suffix##_inputs[i]      \
+                    ,(suffix##_t*)fast_math_output_fut + i);        \
+            });                                                     \
+                                                                    \
+        for(i=0;i<FAST_MATH_MAX_LEN;i++)                            \
+        {                                                           \
+            ref_sqrt_##suffix(                                      \
+                (suffix##_t)fast_math_##suffix##_inputs[i]          \
+                ,(suffix##_t*)fast_math_output_ref + i);            \
+        }                                                           \
+                                                                    \
+        FAST_MATH_SNR_COMPARE_INTERFACE(                            \
+            FAST_MATH_MAX_LEN,                                      \
+            suffix##_t);                                            \
+                                                                    \
+        return JTEST_TEST_PASSED;                                   \
+    }
+
+
+#define SIN_COS_TEST_TEMPLATE_ELT1(suffix, type, func)                  \
+                                                                        \
+        JTEST_DEFINE_TEST(arm_##func##_##suffix##_test, arm_##func##_##suffix) \
+        {                                                               \
+            uint32_t i;                                                 \
+                                                                        \
+            JTEST_COUNT_CYCLES(                                         \
+                for(i=0;i<FAST_MATH_MAX_LEN;i++)                        \
+                {                                                       \
+                    *((type*)fast_math_output_fut + i) = arm_##func##_##suffix( \
+                        fast_math_##suffix##_inputs[i]);                \
+                });                                                     \
+                                                                        \
+            JTEST_COUNT_CYCLES(                                         \
+                for(i=0;i<FAST_MATH_MAX_LEN;i++)                        \
+                {                                                       \
+                    *((type*)fast_math_output_ref + i) = ref_##func##_##suffix( \
+                        fast_math_##suffix##_inputs[i]);                \
+                });                                                     \
+                                                                        \
+            FAST_MATH_SNR_COMPARE_INTERFACE(                            \
+                FAST_MATH_MAX_LEN,                                      \
+                type);                                                  \
+                                                                        \
+            return JTEST_TEST_PASSED;                                   \
+        }
+
+#endif /* _FAST_MATH_TEMPLATES_H_ */

+ 29 - 0
app/main/CTO20220622/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_test_data.h

@@ -0,0 +1,29 @@
+#ifndef _FAST_MATH_TEST_DATA_H_
+#define _FAST_MATH_TEST_DATA_H_
+
+/*--------------------------------------------------------------------------------*/
+/* Includes */
+/*--------------------------------------------------------------------------------*/
+
+#include "arm_math.h"
+
+/*--------------------------------------------------------------------------------*/
+/* Macros and Defines */
+/*--------------------------------------------------------------------------------*/
+
+#define FAST_MATH_MAX_LEN 1024
+#define TRANFORM_BIGGEST_INPUT_TYPE float32_t
+
+/*--------------------------------------------------------------------------------*/
+/* Variable Declarations */
+/*--------------------------------------------------------------------------------*/
+
+extern float32_t fast_math_output_fut[FAST_MATH_MAX_LEN];
+extern float32_t fast_math_output_ref[FAST_MATH_MAX_LEN];
+extern float32_t fast_math_output_f32_fut[FAST_MATH_MAX_LEN];
+extern float32_t fast_math_output_f32_ref[FAST_MATH_MAX_LEN];
+extern const float32_t fast_math_f32_inputs[FAST_MATH_MAX_LEN];
+extern const q31_t fast_math_q31_inputs[FAST_MATH_MAX_LEN];
+extern const q15_t * fast_math_q15_inputs;
+
+#endif /* _FAST_MATH_TEST_DATA_H_ */

+ 9 - 0
app/main/CTO20220622/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/fast_math_tests/fast_math_test_group.h

@@ -0,0 +1,9 @@
+#ifndef _FAST_MATH_TEST_GROUP_H_
+#define _FAST_MATH_TEST_GROUP_H_
+
+/*--------------------------------------------------------------------------------*/
+/* Declare Test Groups */
+/*--------------------------------------------------------------------------------*/
+JTEST_DECLARE_GROUP(fast_math_tests);
+
+#endif /* _FAST_MATH_TEST_GROUP_H_ */