summaryrefslogtreecommitdiff
path: root/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h')
-rw-r--r--fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h370
1 files changed, 0 insertions, 370 deletions
diff --git a/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h b/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h
deleted file mode 100644
index 98f3552..0000000
--- a/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/matrix_tests/matrix_templates.h
+++ /dev/null
@@ -1,370 +0,0 @@
-#ifndef _MATRIX_TEMPLATES_H_
-#define _MATRIX_TEMPLATES_H_
-
-/*--------------------------------------------------------------------------------*/
-/* Includes */
-/*--------------------------------------------------------------------------------*/
-#include "test_templates.h"
-
-/*--------------------------------------------------------------------------------*/
-/* Group Specific Templates */
-/*--------------------------------------------------------------------------------*/
-
-/**
- * Compare the outputs from the function under test and the reference
- * function.
- */
-#define MATRIX_COMPARE_INTERFACE(output_type, output_content_type) \
- TEST_ASSERT_BUFFERS_EQUAL( \
- ((output_type *) &matrix_output_ref)->pData, \
- ((output_type *) &matrix_output_fut)->pData, \
- ((output_type *) &matrix_output_fut)->numRows * \
- ((output_type *) &matrix_output_ref)->numCols * \
- sizeof(output_content_type))
-
-/**
- * Comparison SNR thresholds for the data types used in matrix_tests.
- */
-#define MATRIX_SNR_THRESHOLD 120
-
-/**
- * Compare the outputs from the function under test and the reference
- * function using SNR.
- */
-#define MATRIX_SNR_COMPARE_INTERFACE(output_type, output_content_type) \
- do \
- { \
- TEST_CONVERT_AND_ASSERT_SNR( \
- (float32_t *)matrix_output_f32_ref, \
- ((output_type *) &matrix_output_ref)->pData, \
- (float32_t *)matrix_output_f32_fut, \
- ((output_type *) &matrix_output_ref)->pData, \
- ((output_type *) &matrix_output_fut)->numRows * \
- ((output_type *) &matrix_output_ref)->numCols, \
- output_content_type, \
- MATRIX_SNR_THRESHOLD \
- ); \
- } while (0)
-
-/**
- * Compare the outputs from the function under test and the reference
- * function using SNR. This is special for float64_t
- */
-#define MATRIX_DBL_SNR_COMPARE_INTERFACE(output_type) \
- do \
- { \
- TEST_ASSERT_DBL_SNR( \
- (float64_t *)matrix_output_f32_ref, \
- (float64_t *)matrix_output_f32_fut, \
- ((output_type *) &matrix_output_fut)->numRows * \
- ((output_type *) &matrix_output_ref)->numCols, \
- MATRIX_SNR_THRESHOLD \
- ); \
- } while (0)
-
-/*--------------------------------------------------------------------------------*/
-/* Input Interfaces */
-/*--------------------------------------------------------------------------------*/
-/*
- * General:
- * Input interfaces provide inputs to functions inside test templates. They
- * ONLY provide the inputs. The output variables should be hard coded.
- *
- * The input interfaces must have the following format:
- *
- * ARM_xxx_INPUT_INTERFACE() or
- * REF_xxx_INPUT_INTERFACE()
- *
- * The xxx must be lowercase, and is intended to be the indentifying substring
- * in the function's name. Acceptable values are 'sub' or 'add' from the
- * functions arm_add_q31.
- */
-
-#define ARM_mat_add_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_add_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_cmplx_mult_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_cmplx_mult_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_inverse_INPUT_INTERFACE(input_ptr) \
- PAREN(input_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_inverse_INPUT_INTERFACE(input_ptr) \
- PAREN(input_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_mult_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_mult_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_mult_fast_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_mult_fast_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_sub_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_sub_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
- PAREN(input_a_ptr, input_b_ptr, (void *) &matrix_output_ref)
-
-#define ARM_mat_trans_INPUT_INTERFACE(input_ptr) \
- PAREN(input_ptr, (void *) &matrix_output_fut)
-
-#define REF_mat_trans_INPUT_INTERFACE(input_ptr) \
- PAREN(input_ptr, (void *) &matrix_output_ref)
-
-/*--------------------------------------------------------------------------------*/
-/* Dimension Validation Interfaces */
-/*--------------------------------------------------------------------------------*/
-
-#define MATRIX_TEST_VALID_ADDITIVE_DIMENSIONS(input_type, \
- matrix_a_ptr, \
- matrix_b_ptr) \
- ((((input_type) (matrix_a_ptr))->numRows == \
- ((input_type) (matrix_b_ptr))->numRows) && \
- (((input_type) (matrix_a_ptr))->numCols == \
- ((input_type) (matrix_b_ptr))->numCols))
-
-#define MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS(input_type, \
- matrix_a_ptr, \
- matrix_b_ptr) \
- (((input_type) (matrix_a_ptr))->numCols == \
- ((input_type) (matrix_b_ptr))->numRows)
-
-#define MATRIX_TEST_VALID_SQUARE_DIMENSIONS(input_type, \
- matrix_ptr) \
- (((input_type)(matrix_ptr))->numRows == \
- ((input_type)(matrix_ptr))->numCols)
-
-#define MATRIX_TEST_VALID_DIMENSIONS_ALWAYS(input_type, \
- matrix_ptr) \
- (1 == 1) \
-
-/*--------------------------------------------------------------------------------*/
-/* Output Configuration Interfaces */
-/*--------------------------------------------------------------------------------*/
-/* The matrix tests assume the output matrix is always the correct size. These
- * interfaces size the properly size the output matrices according to the input
- * matrices and the operation at hand.*/
-
-#define MATRIX_TEST_CONFIG_ADDITIVE_OUTPUT(input_type, \
- matrix_a_ptr, \
- matrix_b_ptr) \
- do \
- { \
- ((input_type) &matrix_output_fut)->numRows = \
- ((input_type)(matrix_a_ptr))->numRows; \
- ((input_type) &matrix_output_fut)->numCols = \
- ((input_type)(matrix_a_ptr))->numCols; \
- ((input_type) &matrix_output_ref)->numRows = \
- ((input_type)(matrix_a_ptr))->numRows; \
- ((input_type) &matrix_output_ref)->numCols = \
- ((input_type)(matrix_a_ptr))->numCols; \
- } while (0)
-
-#define MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT(input_type, \
- matrix_a_ptr, \
- matrix_b_ptr) \
- do \
- { \
- ((input_type) &matrix_output_fut)->numRows = \
- ((input_type)(matrix_a_ptr))->numRows; \
- ((input_type) &matrix_output_fut)->numCols = \
- ((input_type)(matrix_b_ptr))->numCols; \
- ((input_type) &matrix_output_ref)->numRows = \
- ((input_type)(matrix_a_ptr))->numRows; \
- ((input_type) &matrix_output_ref)->numCols = \
- ((input_type)(matrix_b_ptr))->numCols; \
- } while (0)
-
-#define MATRIX_TEST_CONFIG_SAMESIZE_OUTPUT(input_type, \
- matrix_ptr) \
- do \
- { \
- ((input_type) &matrix_output_fut)->numRows = \
- ((input_type)(matrix_ptr))->numRows; \
- ((input_type) &matrix_output_fut)->numCols = \
- ((input_type)(matrix_ptr))->numCols; \
- ((input_type) &matrix_output_ref)->numRows = \
- ((input_type)(matrix_ptr))->numRows; \
- ((input_type) &matrix_output_ref)->numCols = \
- ((input_type)(matrix_ptr))->numCols; \
- } while (0)
-
-#define MATRIX_TEST_CONFIG_TRANSPOSE_OUTPUT(input_type, \
- matrix_ptr) \
- do \
- { \
- ((input_type) &matrix_output_fut)->numRows = \
- ((input_type)(matrix_ptr))->numCols; \
- ((input_type) &matrix_output_fut)->numCols = \
- ((input_type)(matrix_ptr))->numRows; \
- ((input_type) &matrix_output_ref)->numRows = \
- ((input_type)(matrix_ptr))->numCols; \
- ((input_type) &matrix_output_ref)->numCols = \
- ((input_type)(matrix_ptr))->numRows; \
- } while (0)
-
-/*--------------------------------------------------------------------------------*/
-/* TEST Templates */
-/*--------------------------------------------------------------------------------*/
-
-#define MATRIX_TEST_TEMPLATE_ELT1(arr_desc_inputs, \
- input_type, \
- output_type, output_content_type, \
- fut, fut_arg_interface, \
- ref, ref_arg_interface, \
- output_config_interface, \
- dim_validation_interface, \
- compare_interface) \
- do \
- { \
- TEMPLATE_DO_ARR_DESC( \
- input_idx, input_type, input, arr_desc_inputs \
- , \
- JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n", \
- (int)input->numRows, \
- (int)input->numCols); \
- \
- if (dim_validation_interface(input_type, \
- input)) { \
- output_config_interface(input_type, \
- input); \
- TEST_CALL_FUT_AND_REF( \
- fut, fut_arg_interface(input), \
- ref, ref_arg_interface(input)); \
- compare_interface(output_type, \
- output_content_type); \
- } else { \
- arm_status matrix_test_retval; \
- TEST_CALL_FUT( \
- matrix_test_retval = fut, \
- fut_arg_interface(input)); \
- \
- /* If dimensions are known bad, the fut should */ \
- /* detect it. */ \
- if ( matrix_test_retval != ARM_MATH_SIZE_MISMATCH) { \
- return JTEST_TEST_FAILED; \
- } \
- }); \
- return JTEST_TEST_PASSED; \
- } while (0)
-
-
-#define MATRIX_TEST_TEMPLATE_ELT2(arr_desc_inputs_a, \
- arr_desc_inputs_b, \
- input_type, \
- output_type, output_content_type, \
- fut, fut_arg_interface, \
- ref, ref_arg_interface, \
- output_config_interface, \
- dim_validation_interface, \
- compare_interface) \
- do \
- { \
- TEMPLATE_DO_ARR_DESC( \
- input_a_idx, input_type, input_a, arr_desc_inputs_a \
- , \
- input_type input_b = ARR_DESC_ELT( \
- input_type, input_a_idx, \
- &(arr_desc_inputs_b)); \
- \
- JTEST_DUMP_STRF("Matrix Dimensions: A %dx%d B %dx%d\n", \
- (int)input_a->numRows, \
- (int)input_a->numCols, \
- (int)input_b->numRows, \
- (int)input_b->numCols); \
- \
- if (dim_validation_interface(input_type, \
- input_a, \
- input_b)) { \
- \
- output_config_interface(input_type, \
- input_a, \
- input_b); \
- \
- TEST_CALL_FUT_AND_REF( \
- fut, fut_arg_interface(input_a, input_b), \
- ref, ref_arg_interface(input_a, input_b)); \
- \
- compare_interface(output_type, output_content_type); \
- \
- } else { \
- arm_status matrix_test_retval; \
- TEST_CALL_FUT( \
- matrix_test_retval = fut, fut_arg_interface(input_a, input_b)); \
- \
- /* If dimensions are known bad, the fut should */ \
- /* detect it. */ \
- if ( matrix_test_retval != ARM_MATH_SIZE_MISMATCH) { \
- return JTEST_TEST_FAILED; \
- } \
- }); \
- return JTEST_TEST_PASSED; \
- } while (0)
-
-/**
- * Specialization of #MATRIX_TEST_TEMPLATE_ELT2() for matrix tests.
- *
- * @note This macro relies on the existance of ARM_xxx_INPUT_INTERFACE and
- * REF_xxx_INPUT_INTERFACEs.
- */
-#define MATRIX_DEFINE_TEST_TEMPLATE_ELT2(fn_name, suffix, \
- output_config_interface, \
- dim_validation_interface, \
- comparison_interface) \
- JTEST_DEFINE_TEST(arm_##fn_name##_##suffix##_test, \
- arm_##fn_name##_##suffix) \
- { \
- MATRIX_TEST_TEMPLATE_ELT2( \
- matrix_##suffix##_a_inputs, \
- matrix_##suffix##_b_inputs, \
- arm_matrix_instance_##suffix * , \
- arm_matrix_instance_##suffix, \
- TYPE_FROM_ABBREV(suffix), \
- arm_##fn_name##_##suffix, \
- ARM_##fn_name##_INPUT_INTERFACE, \
- ref_##fn_name##_##suffix, \
- REF_##fn_name##_INPUT_INTERFACE, \
- output_config_interface, \
- dim_validation_interface, \
- comparison_interface); \
- } \
-
-/**
- * Specialization of #MATRIX_TEST_TEMPLATE_ELT1() for matrix tests.
- *
- * @note This macro relies on the existance of ARM_xxx_INPUT_INTERFACE and
- * REF_xxx_INPUT_INTERFACEs.
- */
-#define MATRIX_DEFINE_TEST_TEMPLATE_ELT1(fn_name, suffix, \
- output_config_interface, \
- dim_validation_interface) \
- JTEST_DEFINE_TEST(arm_##fn_name##_##suffix##_test, \
- arm_##fn_name##_##suffix) \
- { \
- MATRIX_TEST_TEMPLATE_ELT1( \
- matrix_##suffix##_a_inputs, \
- arm_matrix_instance_##suffix * , \
- arm_matrix_instance_##suffix, \
- TYPE_FROM_ABBREV(suffix), \
- arm_##fn_name##_##suffix, \
- ARM_##fn_name##_INPUT_INTERFACE, \
- ref_##fn_name##_##suffix, \
- REF_##fn_name##_INPUT_INTERFACE, \
- output_config_interface, \
- dim_validation_interface, \
- MATRIX_COMPARE_INTERFACE); \
- } \
-
-
-#endif /* _MATRIX_TEMPLATES_H_ */