test in progress
This commit is contained in:
62
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/all_tests.c
Normal file
62
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/all_tests.c
Normal file
@ -0,0 +1,62 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_group.h"
|
||||
#include "complex_math_test_group.h"
|
||||
#include "controller_test_group.h"
|
||||
#include "fast_math_test_group.h"
|
||||
#include "filtering_test_group.h"
|
||||
#include "matrix_test_group.h"
|
||||
#include "statistics_test_group.h"
|
||||
#include "support_test_group.h"
|
||||
#include "transform_test_group.h"
|
||||
#include "intrinsics_test_group.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(all_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out
|
||||
*/
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_BASICMATH_TESTS)
|
||||
JTEST_GROUP_CALL(basic_math_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_COMPLEXMATH_TESTS)
|
||||
JTEST_GROUP_CALL(complex_math_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_CONTROLLER_TESTS)
|
||||
JTEST_GROUP_CALL(controller_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_FASTMATH_TESTS)
|
||||
JTEST_GROUP_CALL(fast_math_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_FILTERING_TESTS)
|
||||
/* Biquad df2T_f32 will fail with Neon. The test must be updated.
|
||||
Neon implementation is requiring a different initialization.
|
||||
*/
|
||||
JTEST_GROUP_CALL(filtering_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_MATRIX_TESTS)
|
||||
JTEST_GROUP_CALL(matrix_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_STATISTICS_TESTS)
|
||||
JTEST_GROUP_CALL(statistics_tests);
|
||||
#endif()
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_SUPPORT_TESTS)
|
||||
JTEST_GROUP_CALL(support_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_TRANSFORM_TESTS)
|
||||
JTEST_GROUP_CALL(transform_tests);
|
||||
#endif
|
||||
|
||||
#if !defined(CUSTOMIZE_TESTS) || defined(ENABLE_INTRINSICS_TESTS)
|
||||
JTEST_GROUP_CALL(intrinsics_tests);
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_ABS_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
abs, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix))
|
||||
|
||||
JTEST_ARM_ABS_TEST(f32);
|
||||
JTEST_ARM_ABS_TEST(q31);
|
||||
JTEST_ARM_ABS_TEST(q15);
|
||||
JTEST_ARM_ABS_TEST(q7 );
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(abs_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_abs_f32_test);
|
||||
JTEST_TEST_CALL(arm_abs_q31_test);
|
||||
JTEST_TEST_CALL(arm_abs_q15_test);
|
||||
JTEST_TEST_CALL(arm_abs_q7_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_ADD_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
add, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
BASIC_MATH_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_ADD_TEST(f32);
|
||||
JTEST_ARM_ADD_TEST(q31);
|
||||
JTEST_ARM_ADD_TEST(q15);
|
||||
JTEST_ARM_ADD_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(add_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_add_f32_test);
|
||||
JTEST_TEST_CALL(arm_add_q31_test);
|
||||
JTEST_TEST_CALL(arm_add_q15_test);
|
||||
JTEST_TEST_CALL(arm_add_q7_test);
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
#include "basic_math_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(BASIC_MATH_BIGGEST_INPUT_TYPE,
|
||||
basic_math_output_fut,
|
||||
BASIC_MATH_MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
ARR_DESC_DEFINE(BASIC_MATH_BIGGEST_INPUT_TYPE,
|
||||
basic_math_output_ref,
|
||||
BASIC_MATH_MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
BASIC_MATH_BIGGEST_INPUT_TYPE
|
||||
basic_math_output_f32_ref[BASIC_MATH_MAX_INPUT_ELEMENTS];
|
||||
|
||||
BASIC_MATH_BIGGEST_INPUT_TYPE
|
||||
basic_math_output_f32_fut[BASIC_MATH_MAX_INPUT_ELEMENTS];
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Block Sizes */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
To change test parameter values add/remove values inside CURLY and update
|
||||
the preceeding parameter to reflect the number of values inside CURLY.
|
||||
*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
basic_math_block_sizes,
|
||||
4,
|
||||
CURLY( 2, 7, 15, 32));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Numbers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
To change test parameter values add/remove values inside CURLY and update
|
||||
the preceeding parameter to reflect the number of values inside CURLY.
|
||||
*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
basic_math_elts,
|
||||
4,
|
||||
CURLY( 0, 1, 0x80000000, 0x7fffffff));
|
||||
|
||||
ARR_DESC_DEFINE(int8_t,
|
||||
basic_math_elts2,
|
||||
5,
|
||||
CURLY( 0, 3, -3, -7, 7));
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
basic_math_eltsf,
|
||||
6,
|
||||
CURLY( 0.0f, 1.0f, 1.254001, -1.665584, -127.435646, 245.34634267));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Data */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
basic_math_f_32,
|
||||
32,
|
||||
CURLY(
|
||||
-0.432565, -1.665584, 0.125332, 0.287676, -1.146471,
|
||||
1.190915, 1.189164, -0.037633, 0.327292, 0.174639,
|
||||
-0.186709, 0.725791, -0.588317, 2.183186, -0.136396,
|
||||
0.113931, 1.066768, 0.059281, -0.095648, -0.832349,
|
||||
0.294411, -1.336182, 0.714325, 1.623562, -0.691776,
|
||||
0.857997, 1.254001, -1.593730, -1.440964, 0.571148,
|
||||
-0.399886, 0.689997
|
||||
));
|
||||
|
||||
/* Alias the 32 element array with wrappers that end sooner. */
|
||||
ARR_DESC_DEFINE_SUBSET(basic_math_f_15,
|
||||
basic_math_f_32,
|
||||
15);
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(basic_math_f_2,
|
||||
basic_math_f_32,
|
||||
2);
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
basic_math_zeros,
|
||||
32,
|
||||
CURLY(0));
|
||||
|
||||
/* Aggregate all float datasets. */
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *,
|
||||
basic_math_f_all,
|
||||
4,
|
||||
CURLY(
|
||||
&basic_math_zeros,
|
||||
&basic_math_f_2,
|
||||
&basic_math_f_15,
|
||||
&basic_math_f_32
|
||||
));
|
@ -0,0 +1,17 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(basic_math_tests)
|
||||
{
|
||||
JTEST_GROUP_CALL(abs_tests);
|
||||
JTEST_GROUP_CALL(add_tests);
|
||||
JTEST_GROUP_CALL(dot_prod_tests);
|
||||
JTEST_GROUP_CALL(mult_tests);
|
||||
JTEST_GROUP_CALL(negate_tests);
|
||||
JTEST_GROUP_CALL(offset_tests);
|
||||
JTEST_GROUP_CALL(scale_tests);
|
||||
JTEST_GROUP_CALL(shift_tests);
|
||||
JTEST_GROUP_CALL(sub_tests);
|
||||
|
||||
return;
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_DOT_PROD_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
dot_prod, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
BASIC_MATH_SNR_ELT1_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_DOT_PROD_TEST(f32);
|
||||
JTEST_ARM_DOT_PROD_TEST(q31);
|
||||
JTEST_ARM_DOT_PROD_TEST(q15);
|
||||
JTEST_ARM_DOT_PROD_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(dot_prod_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_dot_prod_f32_test);
|
||||
JTEST_TEST_CALL(arm_dot_prod_q31_test);
|
||||
JTEST_TEST_CALL(arm_dot_prod_q15_test);
|
||||
JTEST_TEST_CALL(arm_dot_prod_q7_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MULT_TEST(suffix, compare_interface) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
mult, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
compare_interface)
|
||||
|
||||
JTEST_ARM_MULT_TEST(f32, BASIC_MATH_COMPARE_INTERFACE);
|
||||
JTEST_ARM_MULT_TEST(q31, BASIC_MATH_SNR_COMPARE_INTERFACE);
|
||||
JTEST_ARM_MULT_TEST(q15, BASIC_MATH_COMPARE_INTERFACE);
|
||||
JTEST_ARM_MULT_TEST(q7 , BASIC_MATH_COMPARE_INTERFACE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mult_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_mult_f32_test);
|
||||
JTEST_TEST_CALL(arm_mult_q31_test);
|
||||
JTEST_TEST_CALL(arm_mult_q15_test);
|
||||
JTEST_TEST_CALL(arm_mult_q7_test);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_NEGATE_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
negate, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix))
|
||||
|
||||
JTEST_ARM_NEGATE_TEST(f32);
|
||||
JTEST_ARM_NEGATE_TEST(q31);
|
||||
JTEST_ARM_NEGATE_TEST(q15);
|
||||
JTEST_ARM_NEGATE_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(negate_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_negate_f32_test);
|
||||
JTEST_TEST_CALL(arm_negate_q31_test);
|
||||
JTEST_TEST_CALL(arm_negate_q15_test);
|
||||
JTEST_TEST_CALL(arm_negate_q7_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_OFFSET_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT1_BLK( \
|
||||
offset, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix))
|
||||
|
||||
JTEST_ARM_OFFSET_TEST(f32);
|
||||
JTEST_ARM_OFFSET_TEST(q31);
|
||||
JTEST_ARM_OFFSET_TEST(q15);
|
||||
JTEST_ARM_OFFSET_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(offset_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_offset_f32_test);
|
||||
JTEST_TEST_CALL(arm_offset_q31_test);
|
||||
JTEST_TEST_CALL(arm_offset_q15_test);
|
||||
JTEST_TEST_CALL(arm_offset_q7_test);
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
|
||||
#define JTEST_ARM_SCALE_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT2_BLK( \
|
||||
scale, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), /*elt1_type*/ \
|
||||
int8_t, /*elt2_type*/ \
|
||||
TYPE_FROM_ABBREV(suffix))
|
||||
|
||||
/* float32_t defined separately because it has less arguments */
|
||||
JTEST_DEFINE_TEST(arm_scale_f32_test,
|
||||
arm_scale_f32)
|
||||
{
|
||||
TEST_TEMPLATE_BUF1_ELT1_BLK(
|
||||
basic_math_f_all,
|
||||
basic_math_eltsf,
|
||||
basic_math_block_sizes,
|
||||
float32_t,
|
||||
float32_t,
|
||||
float32_t,
|
||||
arm_scale_f32,
|
||||
ARM_scale_float_INPUT_INTERFACE,
|
||||
ref_scale_f32,
|
||||
REF_scale_float_INPUT_INTERFACE,
|
||||
BASIC_MATH_COMPARE_INTERFACE);
|
||||
}
|
||||
|
||||
JTEST_ARM_SCALE_TEST(q31);
|
||||
JTEST_ARM_SCALE_TEST(q15);
|
||||
JTEST_ARM_SCALE_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(scale_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_scale_f32_test);
|
||||
JTEST_TEST_CALL(arm_scale_q31_test);
|
||||
JTEST_TEST_CALL(arm_scale_q15_test);
|
||||
JTEST_TEST_CALL(arm_scale_q7_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_SHIFT_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT1_BLK( \
|
||||
shift, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
int8_t, /*elt_type*/ \
|
||||
TYPE_FROM_ABBREV(suffix))
|
||||
|
||||
JTEST_ARM_SHIFT_TEST(q31);
|
||||
JTEST_ARM_SHIFT_TEST(q15);
|
||||
JTEST_ARM_SHIFT_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(shift_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_shift_q31_test);
|
||||
JTEST_TEST_CALL(arm_shift_q15_test);
|
||||
JTEST_TEST_CALL(arm_shift_q7_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "basic_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "basic_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_SUB_TEST(suffix) \
|
||||
BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
sub, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
BASIC_MATH_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_SUB_TEST(f32);
|
||||
JTEST_ARM_SUB_TEST(q31);
|
||||
JTEST_ARM_SUB_TEST(q15);
|
||||
JTEST_ARM_SUB_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(sub_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_sub_f32_test);
|
||||
JTEST_TEST_CALL(arm_sub_q31_test);
|
||||
JTEST_TEST_CALL(arm_sub_q15_test);
|
||||
JTEST_TEST_CALL(arm_sub_q7_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_CONJ_TEST(suffix) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
cmplx_conj, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
COMPLEX_MATH_SNR_COMPARE_CMPLX_INTERFACE)
|
||||
|
||||
JTEST_ARM_CMPLX_CONJ_TEST(f32);
|
||||
JTEST_ARM_CMPLX_CONJ_TEST(q31);
|
||||
JTEST_ARM_CMPLX_CONJ_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_conj_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_conj_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_conj_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_conj_q15_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_DOT_PROD_TEST(suffix, comparison_interface) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
cmplx_dot_prod, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
comparison_interface)
|
||||
|
||||
JTEST_ARM_CMPLX_DOT_PROD_TEST(f32, COMPLEX_MATH_SNR_COMPARE_SPLIT_INTERFACE);
|
||||
JTEST_ARM_CMPLX_DOT_PROD_TEST(q31, COMPLEX_MATH_SNR_COMPARE_SPLIT_INTERFACE);
|
||||
JTEST_ARM_CMPLX_DOT_PROD_TEST(q15, COMPLEX_MATH_SNR_COMPARE_SPLIT_INTERFACE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_dot_prod_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_dot_prod_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_dot_prod_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_dot_prod_q15_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_MAG_SQUARED_TEST(suffix) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
cmplx_mag_squared, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
COMPLEX_MATH_COMPARE_RE_INTERFACE)
|
||||
|
||||
JTEST_ARM_CMPLX_MAG_SQUARED_TEST(f32);
|
||||
JTEST_ARM_CMPLX_MAG_SQUARED_TEST(q31);
|
||||
JTEST_ARM_CMPLX_MAG_SQUARED_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_mag_squared_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_squared_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_squared_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_squared_q15_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_MAG_TEST(suffix, comparison_interface) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
cmplx_mag, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
comparison_interface)
|
||||
|
||||
JTEST_ARM_CMPLX_MAG_TEST(f32, COMPLEX_MATH_COMPARE_RE_INTERFACE);
|
||||
JTEST_ARM_CMPLX_MAG_TEST(q31, COMPLEX_MATH_SNR_COMPARE_RE_INTERFACE);
|
||||
JTEST_ARM_CMPLX_MAG_TEST(q15, COMPLEX_MATH_SNR_COMPARE_RE_INTERFACE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_mag_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mag_q15_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_MULT_CMPLX_TEST(suffix) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
cmplx_mult_cmplx, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
COMPLEX_MATH_COMPARE_CMPLX_INTERFACE)
|
||||
|
||||
JTEST_ARM_CMPLX_MULT_CMPLX_TEST(f32);
|
||||
JTEST_ARM_CMPLX_MULT_CMPLX_TEST(q31);
|
||||
JTEST_ARM_CMPLX_MULT_CMPLX_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_mult_cmplx_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_cmplx_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_cmplx_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_cmplx_q15_test);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "complex_math_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_CMPLX_MULT_REAL_TEST(suffix, comparison_interface) \
|
||||
COMPLEX_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
|
||||
cmplx_mult_real, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
comparison_interface)
|
||||
|
||||
JTEST_ARM_CMPLX_MULT_REAL_TEST(f32, COMPLEX_MATH_COMPARE_CMPLX_INTERFACE);
|
||||
JTEST_ARM_CMPLX_MULT_REAL_TEST(q31, COMPLEX_MATH_SNR_COMPARE_CMPLX_INTERFACE);
|
||||
JTEST_ARM_CMPLX_MULT_REAL_TEST(q15, COMPLEX_MATH_COMPARE_CMPLX_INTERFACE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cmplx_mult_real_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_real_f32_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_real_q31_test);
|
||||
JTEST_TEST_CALL(arm_cmplx_mult_real_q15_test);
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
#include "complex_math_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(COMPLEX_MATH_BIGGEST_INPUT_TYPE,
|
||||
complex_math_output_fut_a,
|
||||
COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2 /*Complex data has two parts*/,
|
||||
CURLY(0));
|
||||
|
||||
ARR_DESC_DEFINE(COMPLEX_MATH_BIGGEST_INPUT_TYPE,
|
||||
complex_math_output_fut_b,
|
||||
COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2 /*Complex data has two parts*/,
|
||||
CURLY(0));
|
||||
|
||||
ARR_DESC_DEFINE(COMPLEX_MATH_BIGGEST_INPUT_TYPE,
|
||||
complex_math_output_ref_a,
|
||||
COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2 /*Complex data has two parts*/,
|
||||
CURLY(0));
|
||||
|
||||
|
||||
ARR_DESC_DEFINE(COMPLEX_MATH_BIGGEST_INPUT_TYPE,
|
||||
complex_math_output_ref_b,
|
||||
COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2 /*Complex data has two parts*/,
|
||||
CURLY(0));
|
||||
|
||||
|
||||
COMPLEX_MATH_BIGGEST_INPUT_TYPE
|
||||
complex_math_output_f32_ref_a[COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2];
|
||||
|
||||
COMPLEX_MATH_BIGGEST_INPUT_TYPE
|
||||
complex_math_output_f32_ref_b[COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2];
|
||||
|
||||
COMPLEX_MATH_BIGGEST_INPUT_TYPE
|
||||
complex_math_output_f32_fut_a[COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2];
|
||||
|
||||
COMPLEX_MATH_BIGGEST_INPUT_TYPE
|
||||
complex_math_output_f32_fut_b[COMPLEX_MATH_MAX_INPUT_ELEMENTS * 2];
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Block Sizes */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
complex_math_block_sizes,
|
||||
4,
|
||||
CURLY(1, 2, 15, 32));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Data */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
complex_math_f_32,
|
||||
32 * 2 /*Complex data has two parts*/,
|
||||
CURLY(
|
||||
-0.432564811528220680 , 0.815622288876143300,
|
||||
-1.665584378238097000 , 0.711908323500893280,
|
||||
0.125332306474830680 , 1.290249754932477000,
|
||||
0.287676420358548850 , 0.668600505682040320,
|
||||
-1.146471350681463700 , 1.190838074243369100,
|
||||
1.190915465642998800 , -1.202457114773944000,
|
||||
1.189164201652103100 , -0.019789557768770449,
|
||||
-0.037633276593317645 , -0.156717298831980680,
|
||||
0.327292361408654140 , -1.604085562001158500,
|
||||
0.174639142820924520 , 0.257304234677489860,
|
||||
-0.186708577681439360 , -1.056472928081482400,
|
||||
0.725790548293302700 , 1.415141485872338600,
|
||||
-0.588316543014188680 , -0.805090404196879830,
|
||||
2.183185818197101100 , 0.528743010962224870,
|
||||
-0.136395883086595700 , 0.219320672667622370,
|
||||
0.113931313520809620 , -0.921901624355539130,
|
||||
1.066768211359188800 , -2.170674494305262500,
|
||||
0.059281460523605348 , -0.059187824521191180,
|
||||
-0.095648405483669041 , -1.010633706474247400,
|
||||
-0.832349463650022490 , 0.614463048895480980,
|
||||
0.294410816392640380 , 0.507740785341985520,
|
||||
-1.336181857937804000 , 1.692429870190521400,
|
||||
0.714324551818952160 , 0.591282586924175900,
|
||||
1.623562064446270700 , -0.643595202682526120,
|
||||
-0.691775701702286750 , 0.380337251713910140,
|
||||
0.857996672828262640 , -1.009115524340785000,
|
||||
1.254001421602532400 , -0.019510669530289293,
|
||||
-1.593729576447476800 , -0.048220789145312269,
|
||||
-1.440964431901020000 , 0.000043191841625545,
|
||||
0.571147623658177950 , -0.317859451247687890,
|
||||
-0.399885577715363150 , 1.095003738787492500,
|
||||
0.689997375464345140 , -1.873990257640960800
|
||||
));
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(complex_math_f_15,
|
||||
complex_math_f_32,
|
||||
15 * 2 /*Complex data has two parts*/);
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(complex_math_f_2,
|
||||
complex_math_f_32,
|
||||
2 * 2 /*Complex data has two parts*/);
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
complex_math_zeros,
|
||||
32 * 2 /*Complex data has two parts*/,
|
||||
CURLY(0));
|
||||
|
||||
/* Aggregate all float datasets */
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *,
|
||||
complex_math_f_all,
|
||||
4,
|
||||
CURLY(
|
||||
&complex_math_zeros,
|
||||
&complex_math_f_2,
|
||||
&complex_math_f_15,
|
||||
&complex_math_f_32
|
||||
));
|
@ -0,0 +1,14 @@
|
||||
#include "jtest.h"
|
||||
#include "complex_math_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(complex_math_tests)
|
||||
{
|
||||
JTEST_GROUP_CALL(cmplx_conj_tests);
|
||||
JTEST_GROUP_CALL(cmplx_dot_prod_tests);
|
||||
JTEST_GROUP_CALL(cmplx_mag_tests);
|
||||
JTEST_GROUP_CALL(cmplx_mag_squared_tests);
|
||||
JTEST_GROUP_CALL(cmplx_mult_cmplx_tests);
|
||||
JTEST_GROUP_CALL(cmplx_mult_real_tests);
|
||||
|
||||
return;
|
||||
}
|
@ -0,0 +1,499 @@
|
||||
#include "controller_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
float32_t controller_output_fut[CONTROLLER_MAX_LEN] = {0};
|
||||
float32_t controller_output_ref[CONTROLLER_MAX_LEN] = {0};
|
||||
float32_t controller_output_f32_fut[CONTROLLER_MAX_LEN] = {0};
|
||||
float32_t controller_output_f32_ref[CONTROLLER_MAX_LEN] = {0};
|
||||
|
||||
const q31_t controller_q31_inputs[CONTROLLER_MAX_LEN] =
|
||||
{
|
||||
0xC14A5524, 0xCCABDA17, 0xAD6F5B56, 0xFDAFCE3B, 0xA9B226EB, 0x41F6F6A,
|
||||
0xA5CE38BF, 0x3A978AFA, 0xBA44B82A, 0x855C0F8, 0x3D060524, 0x93D5E570,
|
||||
0x97D7791D, 0xFFE0C38C, 0x26749841, 0xC0A6EE54, 0x218EC386, 0x39FF3726,
|
||||
0x8DC1F7CA, 0x702F2CF5, 0xC1142FF1, 0xEC1476AB, 0x15F640DD, 0xE62CCE49,
|
||||
0x3805DE7E, 0xF70871FE, 0xCF8BD360, 0x8D19A8A0, 0xD764F821, 0xA58558CF,
|
||||
0x8C0CE04D, 0x50A46C19, 0x66D2370D, 0x50FA359A, 0xB646AE24, 0x6CE00F5C,
|
||||
0xE6D48948, 0xB55BD831, 0x3B72950A, 0x9EB69530, 0x73394127, 0x773FA6F4,
|
||||
0x9805A980, 0x838DE587, 0x9CF597F4, 0xA2AD1691, 0xFA81A473, 0x7CDC7D7F,
|
||||
0x4A5190D0, 0xED895BB9, 0x8FD60F35, 0x1A21D530, 0xA0EB6DDA, 0xBDE6A516,
|
||||
0x2501A3E1, 0x5ED893C8, 0xE1E175B1, 0xACBBB2F3, 0xED350907, 0xDB140D7E,
|
||||
0xEEAE272D, 0xBE229841, 0xC18BFB88, 0xA6BB9B80, 0xBCF090E4, 0x24DB166C,
|
||||
0xF9AB7E42, 0x62DF28D1, 0xC7004665, 0xE3F56FC6, 0x419E0C75, 0x46BE9F38,
|
||||
0x2432B9B2, 0x758D83E0, 0xDCE12926, 0x3F57CB74, 0x1F4458E2, 0xF1DD639,
|
||||
0x83A1FB49, 0x173AFC76, 0x86EF7531, 0x48D32F34, 0x7D3E3063, 0x8F2FB549,
|
||||
0x5C314C9, 0x18CBEB6D, 0xA6F8B697, 0x447B9E9C, 0x2E32BA33, 0xD074D715,
|
||||
0x81ACD746, 0xE55A4E04, 0x4891860F, 0x1DA3EB4F, 0xE0E6A27F, 0x20BFDEB4,
|
||||
0xD0B3A25B, 0x40C10544, 0xC15656C, 0x15405EAE, 0x9858E3E1, 0xA36A9C4E,
|
||||
0x88BD21F9, 0xAACF7A68, 0x773665E5, 0xCEDFDF66, 0x617A9610, 0x524FC968,
|
||||
0xC2D086CD, 0x5F008079, 0x24DCA447, 0x6A4F5599, 0xB706CD4A, 0x1DE70608,
|
||||
0xA33A2EE5, 0x137E488E, 0x98061B7B, 0x4079D69D, 0xA4A897D5, 0xC4CEC8F5,
|
||||
0xD75F7883, 0x22406802, 0xF1AD70BB, 0x9D4ADD79, 0xBCBC7CE4, 0xB358C0D8,
|
||||
0x85792E47, 0xA7ADAC05, 0x3D19EEAB, 0x331AC0AF, 0x33035831, 0x13D93987,
|
||||
0xFC542094, 0x845F317E, 0xDDC4BF8B, 0x1379E50C, 0x5C20193F, 0xFDD58298,
|
||||
0x9D482B82, 0x4A6BE062, 0xDC8A757B, 0x272917C1, 0x90E1EFBC, 0x355AD882,
|
||||
0xE6F8EA35, 0x604555A1, 0x7DFFFBB, 0xF58AE216, 0x9A11B463, 0xD3541BAD,
|
||||
0xA1576756, 0x483BED8D, 0x1F05AFCC, 0xCEA63DFB, 0x55B84677, 0xFB2E04F2,
|
||||
0x787AF96C, 0x84A12CD3, 0x460A9BD, 0x9DB22DD8, 0x1A8C7F28, 0x861E452E,
|
||||
0x932D3F78, 0x7652D852, 0x73357BBA, 0xEBBB0A58, 0x62536AFA, 0x3F6B65EF,
|
||||
0x6DC57B58, 0x9EB798CE, 0xE6B0A740, 0xDFF68B47, 0x3247FB8F, 0xFFF3D302,
|
||||
0xA9FD3E40, 0x475A43D1, 0x6FF9528A, 0x2018A09D, 0x47E0F9C9, 0x4CF5F6D3,
|
||||
0x2807CE34, 0xDD6FD8ED, 0x234045D1, 0x51CEB5F9, 0x25297896, 0x6443A0FE,
|
||||
0x8F4449A9, 0xD4C3E1C6, 0xF01D52F1, 0x4E09C820, 0xF18F0810, 0xE1548689,
|
||||
0xF9DE5A1F, 0x5286DC23, 0x48AC3A4B, 0xEA0C1BE0, 0xA1B785DB, 0x7086465D,
|
||||
0x1CC10929, 0x1E1D716E, 0xED231D4C, 0x2049D108, 0xB8FF9971, 0x949CF8D4,
|
||||
0x441F1E8B, 0xC3D95372, 0x69C324B4, 0xA10BFDC9, 0xC781DE78, 0x82476137,
|
||||
0xE163DDF, 0x390DEEC2, 0xAF68CE5B, 0x8E680ABD, 0x8223A615, 0x92593380,
|
||||
0x7B1465FE, 0x865AE957, 0x930F53EB, 0xED772EF7, 0x10E916B6, 0xE3BCFA68,
|
||||
0x2ACB80BB, 0xE51C5590, 0x994714B5, 0xF30984EE, 0x59BBE1B4, 0xB4867DBC,
|
||||
0xB91C706C, 0xBC16C218, 0xA8931CD0, 0x129A66AB, 0x13171F4D, 0x62882872,
|
||||
0x4B167FD4, 0xE6902F4C, 0xFA794932, 0xD4B152C, 0xB0856EA9, 0x39466D55,
|
||||
0x3669E451, 0x8F5B9E8C, 0x877A3C6A, 0x51B956B4, 0x367EAD2A, 0x9D2C662A,
|
||||
0x78FB6880, 0x4E6D40B6, 0x4070EFDC, 0x4DF9679C, 0x20306EDB, 0xE381AAE7,
|
||||
0xA55DA748, 0x9B8B617B, 0x3E036FAD, 0x84E4C4A7, 0xD5A3F517, 0x669BA988,
|
||||
0x98FDDE8C, 0x67BD85CE, 0x34BBB46C, 0x76994800, 0x85B9D8B6, 0x6DFA2FEF,
|
||||
0x205DB5C, 0x9F843C4C, 0x72721B52, 0x73EF6B86, 0x5FB98B61, 0xC323DDAC,
|
||||
0x31D424B4, 0xF68C0D7E, 0x162FAF9D, 0x7B2A7A99, 0xF9392693, 0xC42D12C0,
|
||||
0x8692A73E, 0xD9A1EE80, 0xDD956856, 0x44E7BDAC, 0x8D874532, 0x5F5C9DD0,
|
||||
0x5D167858, 0x8559FEA2, 0x9D821476, 0xD9654ED2, 0x594C0DC7, 0x1A87B506,
|
||||
0x3F693200, 0x7A651AB5, 0xA0CCBC8A, 0x9F9E662C, 0x78EF631, 0x2A09DA0,
|
||||
0xB088C72F, 0x92EE0D42, 0x360DCD5F, 0xF333FE48, 0x8D63CC06, 0x233A8ACB,
|
||||
0x706651ED, 0x7AA5C079, 0x262239D1, 0x3EBBEBB6, 0xA25A4F3D, 0x32581A06,
|
||||
0x6E6FD780, 0x5773F7C7, 0x75ED1DDC, 0x90DF2D15, 0xBC79A9BC, 0xB7175917,
|
||||
0x354E381C, 0x762AADD7, 0xF643DAC1, 0xF3BBF49E, 0xD2FECE7E, 0x6C8140F4,
|
||||
0xD7694875, 0x92D30822, 0xC742A7CF, 0xB792ED98, 0x121CFE24, 0xA04E1EE7,
|
||||
0x58CE268, 0x215A080, 0x316CB323, 0xFAB14A31, 0xE1C13C03, 0xFD8EF4F1,
|
||||
0xF3F446D0, 0x6C6CEA0A, 0xBBFDF9FB, 0x67242969, 0xBE55A4EB, 0x8FF5534,
|
||||
0x52F0DF1C, 0x9710ADE3, 0xD40F4A21, 0x7984E8E7, 0x419545EB, 0x993F7880,
|
||||
0xAB246B20, 0x408AABC4, 0xCBF6EA49, 0xC0894C55, 0x4CAA6398, 0xA47856E9,
|
||||
0xAF2AE47D, 0x22F55D33, 0xF0D37915, 0xD0634C72, 0xD983671, 0x2BCC5AF8,
|
||||
0x9A77D48, 0xC11B5CFA, 0xF107CD7E, 0x3A6B3593, 0xE1425F05, 0x6271812A,
|
||||
0x5B838310, 0xBD8418CA, 0x10A58792, 0x239F7137, 0xA13D5071, 0x7F9930D4,
|
||||
0xA462664F, 0x54180F8E, 0x291585BA, 0xE586B87A, 0x144B2C12, 0x98E425C7,
|
||||
0xBAA4B373, 0x18F0D03C, 0x99462AC0, 0xD8B4D2EF, 0x72473895, 0xA6BF5435,
|
||||
0xEDAD53B, 0xE0912FA6, 0x5C33F331, 0x3D93CD7, 0x4D03D752, 0x20699929,
|
||||
0xB89962F9, 0x36E781E9, 0xF58B642C, 0x5FCA69E3, 0x5960A7F4, 0xAD5AAFD0,
|
||||
0xDF18324A, 0x3DB1E5AA, 0x76BA3876, 0x1BC29AF6, 0xBCC18841, 0x73A60174,
|
||||
0x625BFF58, 0x67C57724, 0x4458E53C, 0xE157B095, 0x2B370837, 0x83DF6CE3,
|
||||
0xDD08EEFA, 0x3F52A7C2, 0x191B4785, 0x60843D82, 0xB0DE11F1, 0x105EA26C,
|
||||
0x6E1C7AA2, 0x47AADD14, 0xB6676D03, 0x3B8D4DF6, 0x737A694, 0x409521DC,
|
||||
0x744206A, 0xC722023F, 0x2BE4EAD5, 0x63E11D76, 0xCA4A09AB, 0x5CF2D2B9,
|
||||
0x31586916, 0xCDFD7D84, 0xB203F634, 0xAD7329D4, 0xC524582F, 0x2E53E6C1,
|
||||
0xBB0E019B, 0xB8538C6A, 0x6A2542D, 0x8A6A00E5, 0x119725CC, 0x5406D347,
|
||||
0x1B6FFAF1, 0xECCF71F1, 0x981117F2, 0x7167CA76, 0x74F4B880, 0x77A55F47,
|
||||
0x59EADB62, 0x4A331D95, 0xBCBBA76F, 0xA45C4D50, 0xC718D5, 0x87CE05D1,
|
||||
0x60D47AD5, 0xA5CA9C40, 0xB0061766, 0xE69B39DF, 0xBD5F1320, 0x9930EAD3,
|
||||
0xA8B38325, 0x8DD090F, 0x6A6EEF37, 0x2DF16F66, 0xAB514C7E, 0x31109C58,
|
||||
0xFD48C7FC, 0x515341CA, 0x77AB8EA6, 0x41328DAF, 0xBAF8D31E, 0xA4B31611,
|
||||
0xED37F331, 0x7A832A22, 0xA22591C7, 0x722D1F89, 0x3B19CF18, 0x261B8A4D,
|
||||
0xC3F6F6DB, 0xCF8CED61, 0x990FA250, 0xA02E72A9, 0x560DCEA2, 0xB08E67B4,
|
||||
0x3674E663, 0x97CC3852, 0xA7EB2EAC, 0xFFDE0AA8, 0xA64719A, 0x23269EDD,
|
||||
0x3C0B339E, 0x86284D40, 0x48D82ECB, 0xA4D4CCF8, 0x43631B91, 0x4BF0C248,
|
||||
0xB6497B9B, 0x6827BC58, 0xE30B7AF9, 0xA0CCBF26, 0x6C3B7B71, 0xD744B3ED,
|
||||
0xFA25D2F6, 0x4CDE642D, 0xD65B8142, 0xA6F9207F, 0xE7A207BE, 0xDB506684,
|
||||
0x44DA4780, 0x9175EA0C, 0x156104AF, 0x4155E1B0, 0x6E3A6886, 0x9DBA1EA2,
|
||||
0x5423D9C8, 0xCC024E22, 0x758F852A, 0x1DD6395, 0x2D19CBAD, 0xE164F5A1,
|
||||
0xC2084602, 0x89C274AD, 0x13CB5562, 0xD7FE2D5B, 0xE07A4EE5, 0x1672BA91,
|
||||
0x4F624CCF, 0x2E5EA4A3, 0x28FEEFAF, 0xBDDA6EF4, 0x32AFD40C, 0x99A5FB3B,
|
||||
0xDD1D73A3, 0xA342CB3E, 0xA78445F5, 0x53979C3B, 0x427D7943, 0x5221B58C,
|
||||
0xA6CE9A5E, 0xFB50ECA4, 0xBB86E36E, 0x60839F6D, 0xC5E1C2F3, 0xA1B7FB04,
|
||||
0xFBB65E0C, 0x78B80F5E, 0xFD8D972B, 0x3BF3BA90, 0x2D572D9, 0x2B5BC920,
|
||||
0xB6A0DE01, 0xD274D306, 0xC7C6C855, 0x9CAA669B, 0xB04AA641, 0x4D6B1760,
|
||||
0x3E17ED79, 0xD23241B0, 0xA4A6F957, 0xCBDE76AF, 0x4E5F9493, 0x4C215DA5,
|
||||
0x33A052B, 0x1A4D80C2, 0x40AEEBCA, 0x390D106B, 0xE9E8E018, 0x5AF3D6CF,
|
||||
0xE35E1D4, 0xC4FB1C6, 0x14B6299B, 0x8D2E25F0, 0xCCBF932A, 0xC5AC18B6,
|
||||
0x2227567D, 0x86B5CE2F, 0x26344534, 0x22C515EC, 0x2442B70D, 0xEC3721C6,
|
||||
0x34EF687D, 0x9C06323A, 0xEAF3EA60, 0x60396F52, 0xEAE78AA1, 0xC9D06CBC,
|
||||
0x6F95F6C8, 0x584CC258, 0xBA9A27BB, 0x66DF8D47, 0x9D4804EA, 0x57DD9E67,
|
||||
0xF89C7895, 0xF5336111, 0x25C122C8, 0x62742114, 0xCFBF6D26, 0xBF9F6482,
|
||||
0xE6F02CD9, 0x11083202, 0xC99E2618, 0x7EBC9351, 0x440112F1, 0xC9DFFBC1,
|
||||
0x3BF4DC25, 0xB1BA7FA0, 0x61AF9AED, 0x6B1F7D29, 0xAD865294, 0xE3E01129,
|
||||
0x7E9E77A5, 0x100435D7, 0x9FE3A71, 0x88597C81, 0x722849FA, 0x31C5A0AF,
|
||||
0xFBA178DC, 0x7F102D31, 0x5CA07864, 0x950E6F98, 0x82C34882, 0x5D041F11,
|
||||
0x8C613C57, 0xD398CFD1, 0x426F38AD, 0x5599AB1D, 0xFAFA078D, 0xAB25B413,
|
||||
0xD94B32CF, 0xB288FE38, 0x2893BB46, 0x9A0B4168, 0xA91BCA94, 0x653A5E8D,
|
||||
0x2174EBBE, 0xDEFE6415, 0x30DA429C, 0xD0C5E40C, 0xB4719AA4, 0xD29CE7A6,
|
||||
0x905957CD, 0xCD287499, 0x83CA0AA7, 0xA8385832, 0x25A0CA02, 0xC20D47A4,
|
||||
0xB562F556, 0x4BC19E4C, 0xD9E215C7, 0x27E838B4, 0xC58612F4, 0xA2827F6F,
|
||||
0xC49DCDBA, 0x679B7362, 0x4E495845, 0xCFD2F0D1, 0x395E76A0, 0x375A655E,
|
||||
0x92E2058F, 0x73F9F0CA, 0x61EFF3B3, 0x51FFD362, 0xE7410345, 0x7FDA8B3B,
|
||||
0xA219E2E8, 0x17ABE543, 0x26557412, 0x4B30084D, 0xA68E191D, 0xFE0D93DF,
|
||||
0x73EF127D, 0x4DECDDB1, 0x77FAF45F, 0xD6002898, 0x92DD0A40, 0x157F6DDF,
|
||||
0xC2A55F8E, 0x4359F924, 0xFB630C3F, 0x338B6B58, 0xB2945F75, 0x4FA23A0E,
|
||||
0x836EB8C0, 0xB3B18FD, 0x86114337, 0x24668ACB, 0x99BB82F0, 0x924C8A47,
|
||||
0xBA959701, 0x81155ABF, 0x8C612D71, 0x36074CA7, 0xD1668C41, 0xE35F58C7,
|
||||
0x7FC2802D, 0x8E6A7CF3, 0x65B07D07, 0x815F6A6B, 0x791BF0DD, 0x6E47D719,
|
||||
0xC24394C7, 0xE84A6EB, 0xF194AFEE, 0x464A2F52, 0x677579FD, 0xEBA775AE,
|
||||
0x1F6EEFF, 0x9A795237, 0x78D9D45F, 0x9D0B344D, 0xBBD34AB7, 0x2F85B12A,
|
||||
0x16C5C2AD, 0x3990985D, 0x88DF3351, 0x82811AA5, 0x6D351F41, 0x4066A69D,
|
||||
0x86B660BF, 0x6EDB4768, 0xDDD78CF0, 0xB5D74F6E, 0xE89E220C, 0x91439687,
|
||||
0x947CC9C9, 0x3857E2BD, 0x302F8AE4, 0x1DABE7F8, 0x4832D6C9, 0x37D58FCB,
|
||||
0x4EA8A711, 0xCD7BAC98, 0x19DBF8BC, 0xD8DE8DC2, 0xEAFF7E7B, 0xB7629C93,
|
||||
0x792C6E19, 0xF7009192, 0xFF88439D, 0x2E196A66, 0xEC71B78C, 0xEAF4BB3A,
|
||||
0x7C16225E, 0x668F337, 0xCBEE1608, 0x6D5B5552, 0x345DC590, 0x681209CC,
|
||||
0x7B24A819, 0xD08A1416, 0x99888FE3, 0x9FC7288A, 0x24BD8502, 0xEA1D9678,
|
||||
0x20EECA0, 0x59BEA057, 0x5ADE91EB, 0xDEA8E49D, 0xFA200E6F, 0x9149C81D,
|
||||
0xF2281E93, 0x8A5B0451, 0x67312D58, 0xE3B849F1, 0xD2217960, 0x7CDF59F3,
|
||||
0x33C775C0, 0x9EBA8799, 0x7DF9506, 0xB4E96110, 0xB8FCF3E3, 0xDEA059B2,
|
||||
0x8229B6EA, 0x316486F6, 0x43919185, 0x6C0D90F3, 0x1C6F3DF8, 0x38DB92A9,
|
||||
0x5CD41244, 0x2C9F0A7B, 0xDF4A315F, 0xF7CE9C66, 0x4C800860, 0x318D53E0,
|
||||
0xF105C20D, 0xD753E1F2, 0x750810BA, 0xA17ECCA5, 0x2010140, 0x4D884763,
|
||||
0xC2BB0DA7, 0xB2D5BA74, 0x141CECD4, 0x887FDFC3, 0xC64B53, 0x2D2A85F6,
|
||||
0x15532B45, 0x5D5CBCE1, 0xBEB9A16A, 0xA214611B, 0x9FC5AC5F, 0x11AE5DD7,
|
||||
0xA0B9A5A9, 0xFC648AF4, 0x740009AC, 0xED0E0321, 0xB8E6A61, 0x8910C544,
|
||||
0xC74F26C8, 0x9525CCF3, 0xB41AEB59, 0xE61984CE, 0x598B2197, 0xA412E59D,
|
||||
0xE1976DD4, 0xB29BBE16, 0x88FD9FB0, 0xB04006F3, 0xB45E309, 0xD5CC15F1,
|
||||
0xD9DAF630, 0xDC809335, 0x803ED52, 0xB537F5A5, 0xA994F6EB, 0xF5288568,
|
||||
0xF66FD264, 0x2EA2B3A6, 0x647619F3, 0xFFB38C7A, 0x1BC03B9, 0xB6BC3061,
|
||||
0xBF30596E, 0xBE2AD27B, 0x8AC04220, 0x641979A3, 0x9ECCBB89, 0xA144FBC1,
|
||||
0x4E8FAE26, 0x8C5A9D90, 0x299ED467, 0xD7C9C7E3, 0x1D4865ED, 0x76F31C3D,
|
||||
0xCEE81CDF, 0xB479195E, 0x6FFB3AE1, 0xDC8A398, 0x300F7364, 0xC7940AFA,
|
||||
0x3B85BE3E, 0xD98CC40D, 0xA24A3D89, 0x3A674204, 0x22888A38, 0x2E77F2D,
|
||||
0xA2841C9C, 0xCF0689C3, 0x9FE98922, 0x89335017, 0x2D6B69A7, 0xFEDB63F9,
|
||||
0x899AF4EF, 0x9F9F9B40, 0xA4BE97E8, 0xA51DAF7A, 0x16AC50D3, 0xA8D7ED6,
|
||||
0xED193443, 0x7615EF1B, 0xB0DF6A4E, 0x64FFE794, 0xE3DB2C9A, 0x7435B022,
|
||||
0x556E825C, 0x23802AF9, 0xC25098A4, 0xE75A18BB, 0x70B2A7B9, 0x7FB81BF,
|
||||
0x63EF910, 0x6C669591, 0x6574DD2B, 0xCF6E379D, 0xD2B3AFAC, 0x1E6A1101,
|
||||
0x1DE22385, 0x2338191F, 0xC69704B6, 0xCBABC599, 0x54EB4809, 0x7839BE6D,
|
||||
0xD50017DD, 0x39B1A0E1, 0x288D52D3, 0x2D52668C, 0x20D22A68, 0x4E1207D1,
|
||||
0x3FCC0EFE, 0x47F3FE64, 0x25177A90, 0xB4BFDD4D, 0xDA8DBDCE, 0x6F7275A8,
|
||||
0x6BEAA655, 0xAA1810FC, 0xE4DB593A, 0x8A4D4BC0, 0x2C402E93, 0xF1C0F7F9,
|
||||
0x6F0CC577, 0x70412414, 0x752F9DC1, 0xD82E38EA, 0xAC455F7B, 0x4DCD4EDB,
|
||||
0x92BC2696, 0xFB03F135, 0x4FCA1F8C, 0xBD5E75F6, 0x502F41B0, 0x3616D3F1,
|
||||
0x2E5B8E31, 0x2026EB19, 0x57E783D7, 0x467BBE00, 0x4703ABA3, 0x1F776B9C,
|
||||
0xE2570A84, 0xFEC7DB48, 0x1BD5012, 0xFD0A2D5D, 0x7FCC29F2, 0x291304B6,
|
||||
0x99D5D8ED, 0xC7551C8, 0xFD12F38F, 0xBADE8892, 0xDF749997, 0xA5DAE2F,
|
||||
0x2B9FA269, 0x5C13CFED, 0x15E9A399, 0x54437F4E, 0xA72DB2AB, 0x56186AA1,
|
||||
0xFE4DB55C, 0xA34D7836, 0x2A879760, 0xC63FA94, 0xAC18B207, 0x5FC78B3,
|
||||
0x7F10621E, 0xA769E6B2, 0xEC9F4A11, 0xCE3F982C, 0x62BA2EF5, 0xA5F239CD,
|
||||
0x73D63FED, 0xE36E9F5E, 0x8AC1DA0E, 0x3F3DB3EB, 0x738326EA, 0x35C366B1,
|
||||
0xCD476E86, 0x82F6B208, 0xF11A9FC1, 0x426AC396, 0x7E4D1B93, 0x75E4EDB7,
|
||||
0xAF3C44A7, 0x51A5EF5C, 0xFAD2463D, 0x8A5639CA, 0xC995AC78, 0xCC4BE4F6,
|
||||
0x3AFE7F8D, 0x66993D04, 0x4386FF37, 0xCBC1C6C2, 0x55A8F5EC, 0xE81A9A75,
|
||||
0x30A67E1B, 0x4A4A7D0C, 0x20F7F993, 0x1891805, 0x738976AD, 0xD426E7D6,
|
||||
0x3C5CEEBF, 0x4499187F, 0xABF17C97, 0x447C317F, 0x68D8419C, 0x7AAB6456,
|
||||
0x421BCF29, 0xF6740F9C, 0x8916BB8D, 0x3D72AAB, 0x9AD54DD7, 0x7549C6EE,
|
||||
0x7317342B, 0xA18546D4, 0x1056BDA7, 0x54BBCCCE, 0x8CE63E46, 0x5D146234,
|
||||
0x33BE6C63, 0xB250C4E5, 0x89D72335, 0x87C36BA, 0xB65530CC, 0x2DFAC48C,
|
||||
0x1663D16F, 0x59B80AA, 0x950274EA, 0x92532D4A, 0x3CEF802D, 0x492FBDA5,
|
||||
0xA63A2574, 0xEF8005C2, 0x94A18651, 0xAF627ABA, 0x6829B238, 0xA698F646,
|
||||
0xD2598516, 0x10144D36, 0xD9B1D1B9, 0xAB2ACF05, 0x5395B699, 0xA7851C75,
|
||||
0x1806C6F3, 0xAE970306, 0x3284B145, 0x98F4FE8F
|
||||
};
|
||||
|
||||
/* The source data is random across the q31_t range. Accessing it by word should
|
||||
remain random. */
|
||||
const q15_t * controller_q15_inputs = (q15_t *) controller_q31_inputs;
|
||||
|
||||
const float32_t controller_f32_inputs[CONTROLLER_MAX_LEN] =
|
||||
{
|
||||
43.0264275639 , -17.0525215570 , -94.8488973910 , -8.1924989580 ,
|
||||
7.2830326091 , 66.8368719314 , 33.9778190671 , 117.8652289772 ,
|
||||
-129.6077797465, -14.6420815368 , 18.0239223278 , 20.6760530292 ,
|
||||
55.0375037651 , 1.8674609862 , -85.6534302408 , -33.5750364909 ,
|
||||
29.2110949614 , 110.4727049460 , -94.1914619387 , -1.4084169343 ,
|
||||
83.5181653041 , 47.3073514127 , -13.3420621181 , 30.3389699104 ,
|
||||
12.1188124277 , 100.9730921941 , -114.0146362390, -77.5823200409 ,
|
||||
37.2019034618 , 40.0026301128 , -58.3387276630 , -34.9472398600 ,
|
||||
-5.1169678311 , -87.7660091118 , -150.5888601131, 56.0349370503 ,
|
||||
50.2168884079 , -74.2313236767 , 22.3648603560 , -6.8676387051 ,
|
||||
74.8957303680 , -90.1292012823 , -55.1436241586 , -66.6732976100 ,
|
||||
-6.7918147615 , 7.7612697081 , 35.7892605979 , -20.0470508830 ,
|
||||
41.8369017546 , -143.7378056984, -41.9127158600 , -108.3531841158,
|
||||
-57.1917422289 , -124.2808828105, 38.9316388820 , -77.9212517405 ,
|
||||
37.1990818377 , -28.9545952748 , -155.6371057564, 45.8088886393 ,
|
||||
36.2537018275 , -6.5727656016 , -104.2070491921, 45.5583813729 ,
|
||||
-19.7674717059 , -80.4802190947 , -1.4444563441 , -42.2142256438 ,
|
||||
36.6546339194 , -57.0866498590 , 44.4677067511 , 65.7285753407 ,
|
||||
-103.8158864647, 25.4348723711 , -153.5419639389, 39.3608409474 ,
|
||||
49.1658103436 , 79.5570602275 , 75.2944095996 , 58.9394700746 ,
|
||||
-53.1018534392 , 33.4172444014 , 35.6224682287 , -64.4353396418 ,
|
||||
-125.8464291251, -47.6072111617 , -26.2177687594 , -12.0061322096 ,
|
||||
-17.7887967585 , -28.2926175090 , -62.0691715749 , 40.5098573604 ,
|
||||
-191.1123732593, 119.6750713043 , 19.6182375803 , -26.7615252921 ,
|
||||
2.2957847015 , -108.3436451287, -50.5906164995 , -5.6360985100 ,
|
||||
-11.6772204201 , -84.2765293757 , -60.9317810068 , 82.0446350218 ,
|
||||
-70.2048296348 , 72.8738253222 , 60.2450218115 , 114.2741231228 ,
|
||||
46.8180775285 , 6.9915412654 , -8.9909197429 , -78.9165936808 ,
|
||||
66.4731535459 , -68.4235455651 , -79.8254597080 , -10.6308477115 ,
|
||||
-62.6161569330 , -55.7744410292 , -11.8408366528 , 98.1034940997 ,
|
||||
35.8213741877 , -54.4694482732 , 86.9631830044 , -53.0343838122 ,
|
||||
-47.4898642865 , -47.2010929590 , -31.3312639685 , -23.0908245172 ,
|
||||
12.0258009869 , -5.1098204703 , -9.8420230737 , -107.3328761158,
|
||||
44.6810431959 , -17.9083820345 , -60.9753512872 , -7.5915088994 ,
|
||||
17.2250813329 , 57.9176125648 , 124.3004161362 , -63.1950908493 ,
|
||||
120.5788885640 , -44.1734238117 , -91.7408095116 , -43.5696066595 ,
|
||||
-49.9560710099 , -167.8513443296, -70.9437505499 , -46.4109705355 ,
|
||||
-64.2264526456 , -13.9995803916 , -100.9548186356, 9.9101010575 ,
|
||||
-50.0615130815 , -55.7590145012 , -60.3195153388 , 61.7913378549 ,
|
||||
-102.0850899209, 53.2360193126 , -25.8997883369 , 75.1445512333 ,
|
||||
-113.8148602310, 17.8027281119 , -19.5006822722 , -44.2169628471 ,
|
||||
107.5017084384 , -113.7909124666, -43.9735396033 , 7.6880981388 ,
|
||||
46.7384653508 , 9.9047443751 , 81.8646964362 , 132.3812863877 ,
|
||||
-95.6959050236 , -68.5015813484 , 65.8586404494 , 18.5039353889 ,
|
||||
-30.1786166621 , -90.3098515667 , -22.9356228552 , -20.5778272423 ,
|
||||
-2.2127786675 , -35.4418447703 , -51.8722915974 , -107.9024439078,
|
||||
-51.5940748232 , -51.7463262677 , 74.2795485984 , 94.2205022462 ,
|
||||
9.7016384049 , -47.3556083155 , -36.7822314478 , -151.6455525363,
|
||||
-15.7183814485 , 78.2063383182 , 0.1516414969 , 37.9304181609 ,
|
||||
20.6185902740 , -22.2164106778 , 6.1160554677 , 2.4061326953 ,
|
||||
-111.6681824598, -60.0858917090 , 75.1698614693 , -76.5787410444 ,
|
||||
28.3391655715 , -2.4946186443 , -68.0378899682 , 104.0893199171 ,
|
||||
-51.8319647254 , 38.8521710524 , 75.9114239564 , 73.9206172905 ,
|
||||
-103.2533029987, 6.9002718274 , -36.6346436319 , -25.1990926265 ,
|
||||
1.5852145953 , -50.6438436795 , 21.5018844428 , -151.9305562846,
|
||||
-51.7326681814 , 21.4475994143 , 42.2564011921 , -74.0520586926 ,
|
||||
49.7370635809 , -13.2957534126 , 36.6746826778 , -31.7005492589 ,
|
||||
148.4894964268 , 79.7890632353 , 16.8856024809 , 16.1690460177 ,
|
||||
39.2665169484 , 117.2461167794 , -37.4827984831 , -47.8387803604 ,
|
||||
-95.7025286193 , 34.3058214285 , -124.9536456028, 56.1640195764 ,
|
||||
94.3636873606 , 35.3992852810 , -38.3920852159 , -100.5738062016,
|
||||
-29.7837022314 , 42.9133913996 , -34.2715618187 , -14.3589115627 ,
|
||||
-16.5935468750 , 20.4574192236 , -88.7897972666 , -38.6285080386 ,
|
||||
53.3203422726 , 98.5991486746 , 122.7305462474 , 67.7902817187 ,
|
||||
5.1764117389 , 5.0632821624 , 21.9288789574 , -78.3140512638 ,
|
||||
-21.2069682335 , 23.6342010925 , 34.4445769455 , 59.1346766615 ,
|
||||
28.9978778000 , 39.8121180845 , -17.1650033520 , -56.9174900874 ,
|
||||
17.8157086148 , -112.8801457350, -122.4019040408, 140.8669393157 ,
|
||||
-65.4664329639 , 40.6952775518 , 32.7260891658 , -43.2565155866 ,
|
||||
19.3945751928 , -20.1815002000 , -67.6601711640 , -18.1921178207 ,
|
||||
-35.6802153684 , 49.9550290306 , 131.4925251016 , -31.2940938167 ,
|
||||
-5.2848453344 , -109.5580577933, 20.2437599390 , -8.8782958734 ,
|
||||
54.1836717264 , 7.2555852190 , -3.5698316137 , -51.9236786262 ,
|
||||
6.7861547980 , -104.4814551670, 45.8458629668 , 70.0890876844 ,
|
||||
38.3572837740 , 61.8024165129 , 68.0176962024 , -12.8193934080 ,
|
||||
-21.4661610917 , -0.9377108815 , -74.2100679061 , 71.0490808147 ,
|
||||
91.9813889497 , -14.5797640164 , 3.5036749129 , -138.3605478356,
|
||||
-48.1501349794 , -16.0636922482 , -12.1334197606 , 15.0562207637 ,
|
||||
-34.0878176054 , 55.1075126157 , 97.3829871877 , 0.2053358099 ,
|
||||
-94.8713267382 , 51.5460954054 , 21.2966946363 , 58.1331025047 ,
|
||||
-23.4599044132 , -19.3315856528 , -8.4497193577 , -1.9594679356 ,
|
||||
-33.1906549336 , -144.6825417978, -57.1218958072 , 35.7353406097 ,
|
||||
61.4666549819 , 14.6536253128 , 82.1632196866 , -44.6230161723 ,
|
||||
-91.1022589278 , -18.5737673927 , -136.8975612334, 56.9606788003 ,
|
||||
70.7059960183 , -68.2829345081 , -10.2629800455 , -53.6385325047 ,
|
||||
-68.7928766204 , 88.2444688302 , 83.1412324801 , -102.9206928160,
|
||||
-68.2329763159 , -69.7552955469 , 108.2132269009 , -28.2582329307 ,
|
||||
5.6685898328 , -36.0392956840 , 43.3269513128 , -8.6436416796 ,
|
||||
-16.5054886972 , 11.5008791788 , 39.6923606683 , -28.9039554061 ,
|
||||
13.5938214364 , -23.6296332202 , 49.1171161163 , 53.1636857935 ,
|
||||
-62.9672053166 , -54.2594757384 , 48.3838956696 , 8.0469071555 ,
|
||||
-33.6472086213 , -120.5381752144, 55.0880453111 , 17.8990740563 ,
|
||||
144.9402232336 , 101.7886229203 , -73.3666393712 , -16.4721379138 ,
|
||||
-12.7447935685 , 101.8245160983 , -49.7026860415 , -15.1227790364 ,
|
||||
65.7430288442 , -131.8695390036, 10.2750933946 , 90.9752774838 ,
|
||||
-26.5859990591 , -95.6962772568 , 76.2174589344 , 24.8796848060 ,
|
||||
-38.8938223046 , 54.1687774852 , -37.3585968996 , -34.6848570502 ,
|
||||
33.0151011570 , -55.8345877671 , -3.9009101671 , -31.5024971691 ,
|
||||
-9.6863895491 , 91.8719195957 , -58.9993249744 , -25.6887030614 ,
|
||||
-8.0829472205 , 4.6386491741 , -71.4019697167 , -21.3734669095 ,
|
||||
86.2079144404 , 79.6823974266 , -0.0910915997 , 44.8067718095 ,
|
||||
58.7204020766 , 72.6856808976 , -50.3373732478 , -116.1175365534,
|
||||
-15.0884909384 , 5.4593772059 , -63.6553527905 , 37.3460388205 ,
|
||||
-32.2399421679 , 95.7569350513 , -7.3700141964 , -56.0370832967 ,
|
||||
-41.7377150439 , -42.0042856519 , 12.5134312941 , 93.7845584531 ,
|
||||
-32.4801087157 , -33.3976050318 , -24.2252126001 , -46.3199064467 ,
|
||||
-20.3704610276 , 15.8571376404 , 88.9127217235 , -33.1132582267 ,
|
||||
-1.0005675836 , -28.1780471904 , 150.9349379135 , 38.0600520828 ,
|
||||
36.4338677563 , -3.3709201641 , 29.7709773016 , 16.5064119077 ,
|
||||
21.3147729463 , 110.6714300904 , 18.8406036507 , 14.8963298097 ,
|
||||
50.9975960392 , 16.3991140350 , -194.0805845907, -41.6723945839 ,
|
||||
-74.8991127408 , -6.4587655805 , -0.6883628218 , -49.8709647175 ,
|
||||
194.2265120473 , 64.3043624521 , 16.0040882780 , 68.4032551772 ,
|
||||
-43.4050313128 , 84.6826289824 , -28.1357565943 , 134.6895584120 ,
|
||||
-7.9746152680 , -95.6692886462 , -48.9444370342 , 79.4479343188 ,
|
||||
-50.5345228122 , 52.4800633307 , -14.7735051703 , -20.1510237050 ,
|
||||
22.5049816980 , 64.4191999102 , 24.8385648232 , 99.4265041360 ,
|
||||
62.0189508473 , -28.3892600378 , -109.8842008564, -79.0407483407 ,
|
||||
18.3408112020 , 49.1650536089 , 31.5419844924 , -36.1160722679 ,
|
||||
-132.9148081329, 10.4053531567 , -129.2463715470, -43.4602207151 ,
|
||||
-24.2420653292 , 91.5388317556 , 21.4762248190 , -44.3810909139 ,
|
||||
18.4098011282 , -45.8691164539 , -20.9831197962 , 16.2076792914 ,
|
||||
66.0224147666 , -13.6794615513 , 101.2163279622 , -62.4462618603 ,
|
||||
22.2040981785 , -52.3208382802 , -24.7909079016 , 58.5150375093 ,
|
||||
18.8569705105 , -55.6083430939 , 131.0273367422 , -34.5209015065 ,
|
||||
121.4357296573 , -77.2590299593 , -51.5929566898 , 5.0247131098 ,
|
||||
-23.8451707592 , -4.5912313547 , 31.1387246821 , 61.7019310824 ,
|
||||
49.1912429744 , -50.5836913031 , -74.8182600630 , -21.6209317022 ,
|
||||
20.9409464654 , -72.7870824583 , -28.3530746820 , -45.0794425434 ,
|
||||
-13.4910629905 , -62.0158772255 , -34.1421181246 , 44.2844972784 ,
|
||||
8.4213193211 , 79.9349022793 , 60.0160502260 , 32.2272994080 ,
|
||||
-72.2893887746 , 17.3063698247 , -134.6335742431, 64.6499736261 ,
|
||||
7.1411921919 , -37.5517577873 , 6.2405670930 , 117.1920927305 ,
|
||||
128.7420689815 , -3.1556854963 , -13.4100422909 , -11.9336372907 ,
|
||||
-8.6022400553 , -102.0033506666, -78.4696575074 , 15.0765861403 ,
|
||||
-111.5219718576, -13.4162786508 , 38.2437013694 , 61.1637732561 ,
|
||||
-34.4804160003 , 107.4438003830 , -79.4193067813 , -81.1842853968 ,
|
||||
-26.2622970331 , 132.3205425408 , -119.1464268477, 67.3048866598 ,
|
||||
103.3266736715 , -58.1865815617 , 27.6231908601 , -11.2004371750 ,
|
||||
26.0340617206 , 12.5696123916 , 0.6442714420 , -30.7393043544 ,
|
||||
1.5314955897 , 49.9110088250 , -106.1358721920, 51.1608329944 ,
|
||||
-32.8684239794 , -27.7215905745 , -11.6450303367 , -36.7731678028 ,
|
||||
59.9383486599 , -4.6301990580 , 5.0361682939 , -10.5669407980 ,
|
||||
124.0908762205 , 35.8305364082 , -123.6216777114, -74.2569079167 ,
|
||||
-56.7651776816 , 16.0736385582 , 23.5030632215 , -110.6764295938,
|
||||
44.3086821806 , 9.4452708243 , 5.3300080251 , 39.0483916714 ,
|
||||
151.4550562868 , 62.8957092621 , -116.8103461233, 5.1129927759 ,
|
||||
-33.2252515135 , -9.4522506046 , 22.7026048372 , -15.5264414569 ,
|
||||
71.2087620034 , 19.1191568332 , 50.3019546809 , -5.6096922409 ,
|
||||
22.9344126462 , -7.7591876203 , 31.8949515564 , -58.4253952381 ,
|
||||
66.4341297173 , -19.0583083044 , 96.7695087855 , 20.4934280047 ,
|
||||
4.9544603116 , -20.8288135920 , -173.2659655408, -62.4883621640 ,
|
||||
-48.5528422703 , 12.1437504278 , 60.2482234666 , -19.6072312919 ,
|
||||
-34.6320214291 , 129.0089698963 , -50.9042160618 , 98.3952661477 ,
|
||||
-4.7051792479 , -13.1768910826 , 69.5138802139 , 58.5748201565 ,
|
||||
-45.9385652563 , 151.7952104306 , 34.2541941013 , -58.0417838381 ,
|
||||
28.1480473670 , 46.4006562684 , 97.7001828545 , 4.0855607626 ,
|
||||
-32.6097018162 , 16.8913949959 , 105.7266202978 , -89.3978374651 ,
|
||||
-60.9338593128 , -41.2220734230 , 49.9393070783 , 95.0974764854 ,
|
||||
49.2498366456 , 58.6214364590 , 34.1113830569 , 45.6634098874 ,
|
||||
-22.5356086770 , -97.1978653617 , 86.5565049535 , 70.6118545777 ,
|
||||
-30.6978082909 , 118.7238621666 , 14.5922386932 , 11.3449652072 ,
|
||||
65.6007783405 , 82.6369678204 , -52.0390492248 , -47.0160551227 ,
|
||||
-95.5142448634 , 99.7162626888 , -36.5523815090 , -42.8042935534 ,
|
||||
68.3566199798 , -13.8451547552 , -71.1629911780 , 36.2989433752 ,
|
||||
-32.4867163365 , 112.4079947071 , -75.6295117422 , 47.5276421639 ,
|
||||
51.8078250755 , -26.8715188457 , -9.6291144797 , 40.1999849640 ,
|
||||
-38.4634033246 , 40.9764960915 , -26.1715730268 , 36.5996396515 ,
|
||||
-26.9924731886 , 53.7879986570 , -83.1658398348 , 23.6381378489 ,
|
||||
43.8794937753 , -55.4133836419 , 90.0266130838 , 14.1036181982 ,
|
||||
-18.1225736715 , 85.1363181151 , -62.5970846379 , -18.5291947838 ,
|
||||
-25.7341986703 , -49.7061342931 , -59.0442763971 , 50.8960636803 ,
|
||||
-87.6471123430 , -36.7217762531 , 22.5952364054 , 11.1107885650 ,
|
||||
-0.5377327229 , 160.8145792630 , 73.3103441505 , 10.1656872354 ,
|
||||
-50.4554350397 , -57.3478171016 , -15.4201715357 , -26.9135446491 ,
|
||||
-4.9891264771 , -37.0226770057 , -80.9919535641 , 50.4418660876 ,
|
||||
-25.8517575250 , -69.9538258421 , -17.5730160671 , 15.9405836751 ,
|
||||
113.9545230349 , -46.1040379057 , -94.2458635014 , -69.0338522452 ,
|
||||
43.5813790265 , 107.1836101171 , -55.1012654323 , -77.1529555887 ,
|
||||
-33.1530320656 , -94.5582659641 , -53.6837586872 , 27.0680381378 ,
|
||||
93.9385415207 , -61.0955216188 , 18.0530957225 , 7.9150142320 ,
|
||||
-12.1218191587 , 34.0173961457 , 40.0084937565 , 9.8119275580 ,
|
||||
44.2065861274 , -1.8718514394 , 67.4740024215 , 46.7391150131 ,
|
||||
207.2404815875 , 45.1635364462 , 43.3580102761 , -44.0244218674 ,
|
||||
83.2387206007 , -8.6441851856 , 12.3993902588 , -22.5091685270 ,
|
||||
-19.8332981376 , 97.9196509289 , -76.6720306234 , 28.9740705859 ,
|
||||
121.9415248016 , 9.6656982611 , -51.0996453694 , 37.3704374740 ,
|
||||
74.7589840907 , -113.4066752631, 120.0029566342 , -105.3786221360,
|
||||
81.8152755619 , -13.4979932982 , -21.4680758393 , -85.1088235539 ,
|
||||
-65.3610798409 , -35.0444139470 , -48.0220794487 , -41.6210317362 ,
|
||||
33.1212995259 , -82.1480936443 , -10.5479715135 , 76.4601917004 ,
|
||||
42.1983651157 , 92.6104239912 , -42.3536237955 , -24.5644182272 ,
|
||||
30.4446637772 , -90.2899420489 , 63.6723540422 , 103.0895811428 ,
|
||||
64.1706769263 , -10.7069812309 , 21.8927240409 , 6.3571071738 ,
|
||||
57.1457649358 , -52.9866276448 , 66.0981829072 , -29.5372056881 ,
|
||||
-79.2252039810 , -136.2440652798, -57.0106422562 , 86.8203548141 ,
|
||||
66.4244149837 , 53.3230426111 , -66.1283059222 , -131.0402660353,
|
||||
8.0548411081 , 122.9088988100 , 1.2626894208 , -60.5059112373 ,
|
||||
-68.8707203082 , -6.4747987200 , 85.8411327244 , 99.9624156733 ,
|
||||
90.4197864338 , -35.9630441182 , -22.9158275507 , -17.3660128776 ,
|
||||
16.7845345761 , 34.7219749782 , -39.3513765878 , 1.0460702756 ,
|
||||
-60.9494500182 , 20.0900333387 , -85.9636743832 , 88.4400782168 ,
|
||||
15.0729628728 , 61.5499846243 , 11.8579871757 , 107.8617581581 ,
|
||||
-42.9393027864 , -62.8422307621 , -19.0589600542 , 4.0750325807 ,
|
||||
-36.0651825425 , 55.7638724501 , -10.4691736080 , -55.5672537178 ,
|
||||
-61.2061519915 , -21.1885348576 , -131.2535612498, 24.7463552676 ,
|
||||
22.9426321237 , 14.3038202264 , -138.0926317438, -59.0892900856 ,
|
||||
-162.5416439986, 7.1307658250 , -141.1236672256, -4.7173618068 ,
|
||||
-16.7741532807 , -68.2615451173 , -2.6608701102 , 84.1978109826 ,
|
||||
-11.3446202072 , 59.9630033088 , -1.8994925010 , -37.9301641959 ,
|
||||
-119.4435600954, -11.4587491646 , 12.2423215240 , -7.3169898616 ,
|
||||
-67.0373621128 , 36.0198843055 , 53.9791315249 , -134.5885680695,
|
||||
-83.8330811965 , -16.6714816463 , -8.8498552035 , -24.0513088196 ,
|
||||
-22.9444328877 , -37.7961441531 , 25.1975736186 , -136.1611637464,
|
||||
-5.0843464033 , -10.3939554694 , 20.7422826935 , 75.6854136623 ,
|
||||
46.4179626736 , -57.0052830175 , 7.3457235521 , -51.5504447254 ,
|
||||
-158.4375751701, -200.2426967181, -48.1234996261 , 1.6623945527 ,
|
||||
21.1746524375 , 99.4092980367 , -2.3206772903 , 45.7989166757 ,
|
||||
2.0181548348 , -88.0556010969 , -59.1527212096 , 47.3607925077 ,
|
||||
-10.4181140309 , 56.3558125650 , -8.9799125560 , -30.0376711812 ,
|
||||
-36.7132904688 , 35.7785050392 , -13.0763909369 , -2.1855594714 ,
|
||||
18.1550954005 , -28.6711803575 , -55.4495172398 , -2.8812973198 ,
|
||||
-59.9575059158 , 40.0588875786 , 57.4713686602 , -3.2835144853 ,
|
||||
-36.7193552111 , -64.9415131516 , -166.9555466445, -23.5556853844 ,
|
||||
-54.9408569587 , -35.2310451959 , 21.3345143458 , 65.7590671151 ,
|
||||
51.2214538168 , 46.1271939944 , -42.2235267919 , 127.2329928299 ,
|
||||
105.2391778600 , 17.6726845966 , -129.9021148044, 8.7065613044 ,
|
||||
-94.0987112511 , -3.5375742950 , -23.1385452379 , 60.6219530633 ,
|
||||
92.5445564235 , 48.5111974469 , -52.5699309159 , -60.0634811685 ,
|
||||
25.9034368684 , 140.0249495491 , 1.5918852392 , 38.0266038291 ,
|
||||
17.5588710703 , 3.4294066089 , -27.6748782173 , 59.6182974489 ,
|
||||
-35.2924781853 , -38.6198576115 , -13.6119803198 , 7.8375587489 ,
|
||||
22.7250686519 , -28.3524510951 , -34.4269062817 , 22.6464817325 ,
|
||||
-61.6528147860 , -5.9782002429 , 61.4730771294 , 43.5582379527 ,
|
||||
55.6862408270 , 87.8745651631 , 46.3401042715 , -19.8780979663 ,
|
||||
74.1272633369 , 29.8590452377 , -12.8665765140 , 34.2931401219 ,
|
||||
53.9279617551 , -16.9017895140 , -70.1527553166 , -79.6367897992 ,
|
||||
109.3728271017 , -129.2214826835, -53.4644539730 , -51.5654458993 ,
|
||||
17.6062148433 , 3.5090251835 , 74.2615941204 , -109.3431097845,
|
||||
40.1403465151 , 28.8714561280 , 94.0868659302 , -19.0047033845 ,
|
||||
-60.0967410050 , -19.0998457619 , -67.2027075128 , 72.0711434846 ,
|
||||
-17.8737851232 , 123.7050551274 , 132.6331504104 , 25.5018761009 ,
|
||||
-36.7817189239 , -29.1580893235 , -6.5848563828 , 90.2868948516 ,
|
||||
-35.7017258498 , -68.5675432955 , -52.4888589786 , 47.1377730021 ,
|
||||
-7.4546621940 , -52.0657517138 , -49.0404829633 , -114.6910280126,
|
||||
-117.6819819437, -32.7856729408 , 31.8232065591 , 12.1192973039 ,
|
||||
35.2678513420 , -1.0336778293 , 30.7021249679 , 127.0442906046 ,
|
||||
-84.8457819393 , 28.9862843096 , -47.3524701726 , -126.1094998460,
|
||||
-2.9700276582 , -2.4956545870 , -53.8624121141 , -85.2114117637 ,
|
||||
76.9057985618 , 137.1205201755 , -19.0830817212 , 14.3407526579 ,
|
||||
-56.5921994449 , -25.6084873186 , -44.9470801106 , -133.3139496090,
|
||||
0.3487447576 , 33.4499716730 , 34.7126257844 , -9.3307383323 ,
|
||||
27.2996276947 , 10.8765676134 , -91.1032360444 , -90.9584216222 ,
|
||||
1.6981490570 , 96.8557438791 , 56.7726390913 , -44.3246449237 ,
|
||||
52.3260643361 , 21.5551140465 , 27.4535327381 , 2.0072717479 ,
|
||||
7.4823125629 , 77.1185863870 , 16.1372262663 , -10.7206012957
|
||||
};
|
||||
|
||||
const float32_t controller_f32_coeffs[CONTROLLER_MAX_COEFFS_LEN] =
|
||||
{
|
||||
/* S->Kp, S->Ki, S->Kd; */
|
||||
0.0000000000 , -1.0336778293 , 56.7726390913 ,
|
||||
0.3487447576 , 0.0000000000 , 27.4535327381 ,
|
||||
-29.1580893235, 1.6981490570 , 0.0000000000 ,
|
||||
0.0000000000 , 0.0000000000 , -2.4956545870 ,
|
||||
0.0000000000 , 8.7065613044 , 0.0000000000 ,
|
||||
0.0000000000 , 0.0000000000 , 0.0000000000 ,
|
||||
18.1550954005 , -5.9782002429 , 2.0072717479 ,
|
||||
33.1212995259 , -82.1480936443, -10.5479715135,
|
||||
-23.6296332202, 49.1171161163 , 53.1636857935 ,
|
||||
7.2830326091 , 66.8368719314 , 33.9778190671 ,
|
||||
9.4452708243 , 5.3300080251 , 39.0483916714 ,
|
||||
6.9915412654 , -8.9909197429 , -78.9165936808
|
||||
};
|
||||
|
||||
const q31_t controller_q31_coeffs[CONTROLLER_MAX_COEFFS_LEN] =
|
||||
{
|
||||
0x00000000, 0xFEF760E4, 0x38C5CBAD,
|
||||
0x00594756, 0x00000000, 0x1B741AB9,
|
||||
0xE2D78775, 0x01B2B9E6, 0x00000000,
|
||||
0x00000000, 0x00000000, 0xFD811CC8,
|
||||
0x00000000, 0x08B4E134, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000,
|
||||
0x1227B455, 0xFA0594AB, 0x0201DC90,
|
||||
0x211F0D7C, 0xADDA1689, 0xF573B824,
|
||||
0xE85ED05B, 0x311DFB52, 0x3529E750,
|
||||
0x074874D3, 0x42D63D3D, 0x21FA525A,
|
||||
0x0971FD45, 0x05547B68, 0x270C6366,
|
||||
0x06FDD5A6, 0xF7025315, 0xB1155A1E
|
||||
};
|
||||
|
||||
|
||||
const q15_t controller_q15_coeffs[CONTROLLER_MAX_COEFFS_LEN] =
|
||||
{
|
||||
0x0000, 0xFEF7, 0x38C6,
|
||||
0x0059, 0x0000, 0x1B74,
|
||||
0xE2D8, 0x01B3, 0x0000,
|
||||
0x0000, 0x0000, 0xFD81,
|
||||
0x0000, 0x08B5, 0x0000,
|
||||
0x0000, 0x0000, 0x0000,
|
||||
0x1228, 0xFA06, 0x0202,
|
||||
0x211F, 0xADDA, 0xF574,
|
||||
0xE85F, 0x311E, 0x352A,
|
||||
0x0748, 0x42D6, 0x21FA,
|
||||
0x0972, 0x0554, 0x270C,
|
||||
0x06FE, 0xF702, 0xB115
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
#include "jtest.h"
|
||||
#include "controller_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(controller_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_GROUP_CALL(pid_reset_tests);
|
||||
JTEST_GROUP_CALL(pid_tests);
|
||||
JTEST_GROUP_CALL(sin_cos_tests);
|
||||
return;
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
#include "jtest.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h"
|
||||
#include "type_abbrev.h"
|
||||
#include "test_templates.h"
|
||||
|
||||
/* Bucket of zeros. For comparison with the output of arm_pid_reset_xxx. */
|
||||
ARR_DESC_DEFINE(float32_t, zeroes, 3, CURLY(0));
|
||||
|
||||
/**
|
||||
* Define a JTEST_TEST_t for the function arm_pid_reset_xxx function having
|
||||
* suffix.
|
||||
*/
|
||||
#define ARM_PID_RESET_TEST(suffix) \
|
||||
JTEST_DEFINE_TEST(arm_pid_reset_##suffix##_test, \
|
||||
arm_pid_reset_##suffix) \
|
||||
{ \
|
||||
/* Initialise the pid_instance */ \
|
||||
arm_pid_instance_##suffix pid_inst = { 0 }; \
|
||||
pid_inst.state[0] = (TYPE_FROM_ABBREV(suffix)) 0xffffffff; \
|
||||
pid_inst.state[1] = (TYPE_FROM_ABBREV(suffix)) 0xffffffff; \
|
||||
pid_inst.state[2] = (TYPE_FROM_ABBREV(suffix)) 0xffffffff; \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES(arm_pid_reset_##suffix(&pid_inst)); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
TEST_ASSERT_BUFFERS_EQUAL( \
|
||||
pid_inst.state, \
|
||||
zeroes.data_ptr, \
|
||||
3 * sizeof(TYPE_FROM_ABBREV(suffix))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
ARM_PID_RESET_TEST(f32);
|
||||
ARM_PID_RESET_TEST(q31);
|
||||
ARM_PID_RESET_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(pid_reset_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_pid_reset_f32_test);
|
||||
JTEST_TEST_CALL(arm_pid_reset_q31_test);
|
||||
JTEST_TEST_CALL(arm_pid_reset_q15_test);
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
#include "jtest.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h"
|
||||
#include "ref.h"
|
||||
#include "type_abbrev.h"
|
||||
#include "test_templates.h"
|
||||
#include "controller_test_data.h"
|
||||
#include "controller_templates.h"
|
||||
|
||||
/**
|
||||
* Define a JTEST_TEST_t for the function arm_pid_xxx function having
|
||||
* suffix.
|
||||
*/
|
||||
#define ARM_PID_TEST(suffix,type) \
|
||||
JTEST_DEFINE_TEST(arm_pid_##suffix##_test, arm_pid_##suffix) \
|
||||
{ \
|
||||
uint32_t i,j; \
|
||||
\
|
||||
arm_pid_instance_##suffix fut_pid_inst = { 0 }; \
|
||||
arm_pid_instance_##suffix ref_pid_inst = { 0 }; \
|
||||
\
|
||||
for(i=0;i<CONTROLLER_MAX_COEFFS_LEN/3;i++) \
|
||||
{ \
|
||||
fut_pid_inst.Kp = controller_##suffix##_coeffs[i*3+0]; \
|
||||
fut_pid_inst.Ki = controller_##suffix##_coeffs[i*3+1]; \
|
||||
fut_pid_inst.Kd = controller_##suffix##_coeffs[i*3+2]; \
|
||||
ref_pid_inst.Kp = controller_##suffix##_coeffs[i*3+0]; \
|
||||
ref_pid_inst.Ki = controller_##suffix##_coeffs[i*3+1]; \
|
||||
ref_pid_inst.Kd = controller_##suffix##_coeffs[i*3+2]; \
|
||||
\
|
||||
arm_pid_init_##suffix(&fut_pid_inst, 1); \
|
||||
arm_pid_init_##suffix(&ref_pid_inst, 1); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n", \
|
||||
(int)CONTROLLER_MAX_LEN); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
for(j=0;j<CONTROLLER_MAX_LEN;j++) \
|
||||
{ \
|
||||
*((type*)controller_output_fut + j) = \
|
||||
arm_pid_##suffix(&fut_pid_inst, \
|
||||
controller_##suffix##_inputs[j]); \
|
||||
}); \
|
||||
\
|
||||
for(j=0;j<CONTROLLER_MAX_LEN;j++) \
|
||||
{ \
|
||||
*((type*)controller_output_ref + j) = \
|
||||
ref_pid_##suffix(&ref_pid_inst, \
|
||||
controller_##suffix##_inputs[j]); \
|
||||
} \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
CONTROLLER_SNR_COMPARE_INTERFACE( \
|
||||
CONTROLLER_MAX_LEN, \
|
||||
type); \
|
||||
} \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
ARM_PID_TEST(f32,float32_t);
|
||||
ARM_PID_TEST(q31,q31_t);
|
||||
ARM_PID_TEST(q15,q15_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(pid_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_pid_f32_test);
|
||||
JTEST_TEST_CALL(arm_pid_q31_test);
|
||||
JTEST_TEST_CALL(arm_pid_q15_test);
|
||||
}
|
@ -0,0 +1,151 @@
|
||||
#include "jtest.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h"
|
||||
#include "ref.h"
|
||||
#include "type_abbrev.h"
|
||||
#include "test_templates.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input Data */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
arm_sin_cos_degrees_f32,
|
||||
9,
|
||||
CURLY(
|
||||
0,
|
||||
17,
|
||||
45,
|
||||
90,
|
||||
180,
|
||||
360,
|
||||
362,
|
||||
-73,
|
||||
-191.111
|
||||
));
|
||||
|
||||
/* The Q31 version of the function maps numbers in the range [-1, 0.9999999]
|
||||
* to degrees in the range [-180, 179]*/
|
||||
ARR_DESC_DEFINE(q31_t,
|
||||
arm_sin_cos_degrees_q31,
|
||||
6,
|
||||
CURLY(
|
||||
0,
|
||||
0x80000000, /* -1 */
|
||||
0x7fffffff, /* 0.99999 */
|
||||
/* Randoms */
|
||||
0xf7badafa,
|
||||
0x285954a1,
|
||||
0xb9d09511
|
||||
));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Output Variables */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
float32_t sin_val_fut = 0;
|
||||
float32_t cos_val_fut = 0;
|
||||
float32_t sin_val_ref = 0;
|
||||
float32_t cos_val_ref = 0;
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Definitions */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define MAX_DELTA_f32 50.0e-8f
|
||||
#define ABS(x) ((x) > 0 ? (x) : -(x))
|
||||
|
||||
/*
|
||||
Function to test correctness of sin_cos output by comparing it with reference library
|
||||
*/
|
||||
#define COMPARISON_INTERFACE(type, threshold) \
|
||||
if ( (ABS((type) sin_val_ref - (type) sin_val_fut) > \
|
||||
(type) threshold ) || \
|
||||
(ABS((type) cos_val_ref - (type) cos_val_fut) > \
|
||||
(type) threshold)) \
|
||||
{ \
|
||||
JTEST_DUMP_STRF("Error: %f %f\n", \
|
||||
ABS((type) sin_val_ref - (type) sin_val_fut), \
|
||||
ABS((type) cos_val_ref - (type) cos_val_fut)); \
|
||||
return JTEST_TEST_FAILED; \
|
||||
}
|
||||
|
||||
/*
|
||||
Sine and cosine test function for float32_t input
|
||||
*/
|
||||
JTEST_DEFINE_TEST(arm_sin_cos_f32_test, arm_sin_cos_f32)
|
||||
{
|
||||
/* Test function for all input degree values */
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
degree_idx, TYPE_FROM_ABBREV(f32),
|
||||
degree, arm_sin_cos_degrees_f32
|
||||
,
|
||||
/* Display cycle count and run test */
|
||||
JTEST_COUNT_CYCLES(
|
||||
arm_sin_cos_f32(
|
||||
degree,
|
||||
(TYPE_FROM_ABBREV(f32) *) &sin_val_fut,
|
||||
(TYPE_FROM_ABBREV(f32) *) &cos_val_fut)
|
||||
);
|
||||
ref_sin_cos_f32(
|
||||
degree,
|
||||
(TYPE_FROM_ABBREV(f32) *) &sin_val_ref,
|
||||
(TYPE_FROM_ABBREV(f32) *) &cos_val_ref);
|
||||
|
||||
/* Test correctness */
|
||||
COMPARISON_INTERFACE(
|
||||
TYPE_FROM_ABBREV(f32),
|
||||
MAX_DELTA_f32));
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Sine and cosine test function for q31_t input
|
||||
*/
|
||||
JTEST_DEFINE_TEST(arm_sin_cos_q31_test,
|
||||
arm_sin_cos_q31)
|
||||
{
|
||||
/* Test function for all input degree values */
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
degree_idx, TYPE_FROM_ABBREV(q31),
|
||||
degree, arm_sin_cos_degrees_q31
|
||||
,
|
||||
/* Display cycle count and run test */
|
||||
JTEST_COUNT_CYCLES(
|
||||
arm_sin_cos_q31(
|
||||
degree,
|
||||
(TYPE_FROM_ABBREV(q31) *) &sin_val_fut,
|
||||
(TYPE_FROM_ABBREV(q31) *) &cos_val_fut)
|
||||
);
|
||||
ref_sin_cos_q31(
|
||||
degree,
|
||||
(TYPE_FROM_ABBREV(q31) *) &sin_val_ref,
|
||||
(TYPE_FROM_ABBREV(q31) *) &cos_val_ref);
|
||||
|
||||
/* Convert q31 numbers to float for comparison purposes. */
|
||||
ref_q31_t_to_float((TYPE_FROM_ABBREV(q31) *) &sin_val_fut, &sin_val_fut, 1);
|
||||
ref_q31_t_to_float((TYPE_FROM_ABBREV(q31) *) &cos_val_fut, &cos_val_fut, 1);
|
||||
ref_q31_t_to_float((TYPE_FROM_ABBREV(q31) *) &sin_val_ref, &sin_val_ref, 1);
|
||||
ref_q31_t_to_float((TYPE_FROM_ABBREV(q31) *) &cos_val_ref, &cos_val_ref, 1);
|
||||
|
||||
/* Test correctness */
|
||||
COMPARISON_INTERFACE(
|
||||
TYPE_FROM_ABBREV(f32),
|
||||
MAX_DELTA_f32));
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(sin_cos_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_sin_cos_f32_test);
|
||||
JTEST_TEST_CALL(arm_sin_cos_q31_test);
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "fast_math_templates.h"
|
||||
#include "fast_math_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
SQRT_TEST_TEMPLATE_ELT1(q31);
|
||||
SQRT_TEST_TEMPLATE_ELT1(q15);
|
||||
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(f32, float32_t, sin);
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(q31, q31_t, sin);
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(q15, q15_t, sin);
|
||||
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(f32, float32_t, cos);
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(q31, q31_t, cos);
|
||||
SIN_COS_TEST_TEMPLATE_ELT1(q15, q15_t, cos);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(fast_math_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_sqrt_q31_test);
|
||||
JTEST_TEST_CALL(arm_sqrt_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_sin_f32_test);
|
||||
JTEST_TEST_CALL(arm_sin_q31_test);
|
||||
JTEST_TEST_CALL(arm_sin_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_cos_f32_test);
|
||||
JTEST_TEST_CALL(arm_cos_q31_test);
|
||||
JTEST_TEST_CALL(arm_cos_q15_test);
|
||||
}
|
@ -0,0 +1,370 @@
|
||||
#include "fast_math_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
float32_t fast_math_output_fut[FAST_MATH_MAX_LEN] = {0};
|
||||
float32_t fast_math_output_ref[FAST_MATH_MAX_LEN] = {0};
|
||||
float32_t fast_math_output_f32_fut[FAST_MATH_MAX_LEN] = {0};
|
||||
float32_t fast_math_output_f32_ref[FAST_MATH_MAX_LEN] = {0};
|
||||
|
||||
const q31_t fast_math_q31_inputs[FAST_MATH_MAX_LEN] =
|
||||
{
|
||||
0x414A5524, 0x4CAB5A17, 0x2D6F5B56, 0x7DAF4E3B, 0x29B226EB, 0x41F6F6A ,
|
||||
0x25CE38BF, 0x3A970AFA, 0x3A44382A, 0x05540F8 , 0x3D060524, 0x13D56570,
|
||||
0x17D7791D, 0x7FE0438C, 0x26741841, 0x40A66E54, 0x218E4386, 0x39FF3726,
|
||||
0x0DC177CA, 0x702F2CF5, 0x41142FF1, 0x6C1476AB, 0x15F640DD, 0x662C4E49,
|
||||
0x38055E7E, 0x770871FE, 0x4F8B5360, 0x0D1928A0, 0x57647821, 0x258558CF,
|
||||
0x0C0C604D, 0x50A46C19, 0x66D2370D, 0x50FA359A, 0x36462E24, 0x6CE00F5C,
|
||||
0x66D40948, 0x355B5831, 0x3B72150A, 0x1EB61530, 0x73394127, 0x773F26F4,
|
||||
0x18052980, 0x038D6587, 0x1CF517F4, 0x22AD1691, 0x7A812473, 0x7CDC7D7F,
|
||||
0x4A5110D0, 0x6D895BB9, 0x0FD60F35, 0x1A215530, 0x20EB6DDA, 0x3DE62516,
|
||||
0x250123E1, 0x5ED813C8, 0x61E175B1, 0x2CBB32F3, 0x6D350907, 0x5B140D7E,
|
||||
0x6EAE272D, 0x3E221841, 0x418B7B88, 0x26BB1B80, 0x3CF010E4, 0x24DB166C,
|
||||
0x79AB7E42, 0x62DF28D1, 0x47004665, 0x63F56FC6, 0x419E0C75, 0x46BE1F38,
|
||||
0x243239B2, 0x758D03E0, 0x5CE12926, 0x3F574B74, 0x1F4458E2, 0x71D5639 ,
|
||||
0x03A17B49, 0x173A7C76, 0x06EF7531, 0x48D32F34, 0x7D3E3063, 0x0F2F3549,
|
||||
0x5C314C9 , 0x18CB6B6D, 0x26F83697, 0x447B1E9C, 0x2E323A33, 0x50745715,
|
||||
0x01AC5746, 0x655A4E04, 0x4891060F, 0x1DA36B4F, 0x60E6227F, 0x20BF5EB4,
|
||||
0x50B3225B, 0x40C10544, 0x415656C , 0x15405EAE, 0x185863E1, 0x236A1C4E,
|
||||
0x08BD21F9, 0x2ACF7A68, 0x773665E5, 0x4EDF5F66, 0x617A1610, 0x524F4968,
|
||||
0x42D006CD, 0x5F000079, 0x24DC2447, 0x6A4F5599, 0x37064D4A, 0x1DE70608,
|
||||
0x233A2EE5, 0x137E488E, 0x18061B7B, 0x4079569D, 0x24A817D5, 0x44CE48F5,
|
||||
0x575F7883, 0x22406802, 0x71AD70BB, 0x1D4A5D79, 0x3CBC7CE4, 0x335840D8,
|
||||
0x05792E47, 0x27AD2C05, 0x3D196EAB, 0x331A40AF, 0x33035831, 0x13D93987,
|
||||
0x7C542094, 0x045F317E, 0x5DC43F8B, 0x1379650C, 0x5C20193F, 0x7DD50298,
|
||||
0x1D482B82, 0x4A6B6062, 0x5C8A757B, 0x272917C1, 0x10E16FBC, 0x355A5882,
|
||||
0x66F86A35, 0x604555A1, 0x7DF7FBB , 0x758A6216, 0x1A113463, 0x53541BAD,
|
||||
0x21576756, 0x483B6D8D, 0x1F052FCC, 0x4EA63DFB, 0x55B84677, 0x7B2E04F2,
|
||||
0x787A796C, 0x04A12CD3, 0x46029BD , 0x1DB22DD8, 0x1A8C7F28, 0x061E452E,
|
||||
0x132D3F78, 0x76525852, 0x73357BBA, 0x6BBB0A58, 0x62536AFA, 0x3F6B65EF,
|
||||
0x6DC57B58, 0x1EB718CE, 0x66B02740, 0x5FF60B47, 0x32477B8F, 0x7FF35302,
|
||||
0x29FD3E40, 0x475A43D1, 0x6FF9528A, 0x2018209D, 0x47E079C9, 0x4CF576D3,
|
||||
0x28074E34, 0x5D6F58ED, 0x234045D1, 0x51CE35F9, 0x25297896, 0x644320FE,
|
||||
0x0F4449A9, 0x54C361C6, 0x701D52F1, 0x4E094820, 0x718F0810, 0x61540689,
|
||||
0x79DE5A1F, 0x52865C23, 0x48AC3A4B, 0x6A0C1BE0, 0x21B705DB, 0x7086465D,
|
||||
0x1CC10929, 0x1E1D716E, 0x6D231D4C, 0x20495108, 0x38FF1971, 0x149C78D4,
|
||||
0x441F1E8B, 0x43D95372, 0x69C324B4, 0x210B7DC9, 0x47815E78, 0x02476137,
|
||||
0x6163DDF , 0x390D6EC2, 0x2F684E5B, 0x0E680ABD, 0x02232615, 0x12593380,
|
||||
0x7B1465FE, 0x065A6957, 0x130F53EB, 0x6D772EF7, 0x10E916B6, 0x63BC7A68,
|
||||
0x2ACB00BB, 0x651C5590, 0x194714B5, 0x730904EE, 0x59BB61B4, 0x34867DBC,
|
||||
0x391C706C, 0x3C164218, 0x28931CD0, 0x129A66AB, 0x13171F4D, 0x62882872,
|
||||
0x4B167FD4, 0x66902F4C, 0x7A794932, 0x54B152C , 0x30856EA9, 0x39466D55,
|
||||
0x36696451, 0x0F5B1E8C, 0x077A3C6A, 0x51B956B4, 0x367E2D2A, 0x1D2C662A,
|
||||
0x78FB6880, 0x4E6D40B6, 0x40706FDC, 0x4DF9679C, 0x20306EDB, 0x63812AE7,
|
||||
0x255D2748, 0x1B8B617B, 0x3E036FAD, 0x04E444A7, 0x55A37517, 0x669B2988,
|
||||
0x18FD5E8C, 0x67BD05CE, 0x34BB346C, 0x76994800, 0x05B958B6, 0x6DFA2FEF,
|
||||
0x2055B5C , 0x1F843C4C, 0x72721B52, 0x73EF6B86, 0x5FB90B61, 0x43235DAC,
|
||||
0x31D424B4, 0x768C0D7E, 0x162F2F9D, 0x7B2A7A99, 0x79392693, 0x442D12C0,
|
||||
0x0692273E, 0x59A16E80, 0x5D956856, 0x44E73DAC, 0x0D874532, 0x5F5C1DD0,
|
||||
0x5D167858, 0x05597EA2, 0x1D821476, 0x59654ED2, 0x594C0DC7, 0x1A873506,
|
||||
0x3F693200, 0x7A651AB5, 0x20CC3C8A, 0x1F9E662C, 0x78E7631 , 0x2A01DA0 ,
|
||||
0x3088472F, 0x12EE0D42, 0x360D4D5F, 0x73337E48, 0x0D634C06, 0x233A0ACB,
|
||||
0x706651ED, 0x7AA54079, 0x262239D1, 0x3EBB6BB6, 0x225A4F3D, 0x32581A06,
|
||||
0x6E6F5780, 0x577377C7, 0x75ED1DDC, 0x10DF2D15, 0x3C7929BC, 0x37175917,
|
||||
0x354E381C, 0x762A2DD7, 0x76435AC1, 0x73BB749E, 0x52FE4E7E, 0x6C8140F4,
|
||||
0x57694875, 0x12D30822, 0x474227CF, 0x37926D98, 0x121C7E24, 0x204E1EE7,
|
||||
0x58C6268 , 0x2152080 , 0x316C3323, 0x7AB14A31, 0x61C13C03, 0x7D8E74F1,
|
||||
0x73F446D0, 0x6C6C6A0A, 0x3BFD79FB, 0x67242969, 0x3E5524EB, 0x0FF5534 ,
|
||||
0x52F05F1C, 0x17102DE3, 0x540F4A21, 0x798468E7, 0x419545EB, 0x193F7880,
|
||||
0x2B246B20, 0x408A2BC4, 0x4BF66A49, 0x40894C55, 0x4CAA6398, 0x247856E9,
|
||||
0x2F2A647D, 0x22F55D33, 0x70D37915, 0x50634C72, 0x5983671 , 0x2BCC5AF8,
|
||||
0x1A77D48 , 0x411B5CFA, 0x71074D7E, 0x3A6B3593, 0x61425F05, 0x6271012A,
|
||||
0x5B830310, 0x3D8418CA, 0x10A50792, 0x239F7137, 0x213D5071, 0x7F9930D4,
|
||||
0x2462664F, 0x54180F8E, 0x291505BA, 0x6586387A, 0x144B2C12, 0x18E425C7,
|
||||
0x3AA43373, 0x18F0503C, 0x19462AC0, 0x58B452EF, 0x72473895, 0x26BF5435,
|
||||
0x6DA553B , 0x60912FA6, 0x5C337331, 0x3D93CD7 , 0x4D035752, 0x20691929,
|
||||
0x389962F9, 0x36E701E9, 0x758B642C, 0x5FCA69E3, 0x596027F4, 0x2D5A2FD0,
|
||||
0x5F18324A, 0x3DB165AA, 0x76BA3876, 0x1BC21AF6, 0x3CC10841, 0x73A60174,
|
||||
0x625B7F58, 0x67C57724, 0x4458653C, 0x61573095, 0x2B370837, 0x03DF6CE3,
|
||||
0x5D086EFA, 0x3F5227C2, 0x191B4785, 0x60843D82, 0x30DE11F1, 0x105E226C,
|
||||
0x6E1C7AA2, 0x47AA5D14, 0x36676D03, 0x3B8D4DF6, 0x7372694 , 0x409521DC,
|
||||
0x744206A , 0x4722023F, 0x2BE46AD5, 0x63E11D76, 0x4A4A09AB, 0x5CF252B9,
|
||||
0x31586916, 0x4DFD7D84, 0x32037634, 0x2D7329D4, 0x4524582F, 0x2E5366C1,
|
||||
0x3B0E019B, 0x38530C6A, 0x6A2542D , 0x0A6A00E5, 0x119725CC, 0x54065347,
|
||||
0x1B6F7AF1, 0x6CCF71F1, 0x181117F2, 0x71674A76, 0x74F43880, 0x77A55F47,
|
||||
0x59EA5B62, 0x4A331D95, 0x3CBB276F, 0x245C4D50, 0x4718D5 , 0x07CE05D1,
|
||||
0x60D47AD5, 0x25CA1C40, 0x30061766, 0x669B39DF, 0x3D5F1320, 0x19306AD3,
|
||||
0x28B30325, 0x0DD090F , 0x6A6E6F37, 0x2DF16F66, 0x2B514C7E, 0x31101C58,
|
||||
0x7D4847FC, 0x515341CA, 0x77AB0EA6, 0x41320DAF, 0x3AF8531E, 0x24B31611,
|
||||
0x6D377331, 0x7A832A22, 0x222511C7, 0x722D1F89, 0x3B194F18, 0x261B0A4D,
|
||||
0x43F676DB, 0x4F8C6D61, 0x190F2250, 0x202E72A9, 0x560D4EA2, 0x308E67B4,
|
||||
0x36746663, 0x17CC3852, 0x27EB2EAC, 0x7FDE0AA8, 0x264719A , 0x23261EDD,
|
||||
0x3C0B339E, 0x06284D40, 0x48D82ECB, 0x24D44CF8, 0x43631B91, 0x4BF04248,
|
||||
0x36497B9B, 0x68273C58, 0x630B7AF9, 0x20CC3F26, 0x6C3B7B71, 0x574433ED,
|
||||
0x7A2552F6, 0x4CDE642D, 0x565B0142, 0x26F9207F, 0x67A207BE, 0x5B506684,
|
||||
0x44DA4780, 0x11756A0C, 0x156104AF, 0x415561B0, 0x6E3A6886, 0x1DBA1EA2,
|
||||
0x542359C8, 0x4C024E22, 0x758F052A, 0x1DD6395 , 0x2D194BAD, 0x616475A1,
|
||||
0x42084602, 0x09C274AD, 0x13CB5562, 0x57FE2D5B, 0x607A4EE5, 0x16723A91,
|
||||
0x4F624CCF, 0x2E5E24A3, 0x28FE6FAF, 0x3DDA6EF4, 0x32AF540C, 0x19A57B3B,
|
||||
0x5D1D73A3, 0x23424B3E, 0x278445F5, 0x53971C3B, 0x427D7943, 0x5221358C,
|
||||
0x26CE1A5E, 0x7B506CA4, 0x3B86636E, 0x60831F6D, 0x45E142F3, 0x21B77B04,
|
||||
0x7BB65E0C, 0x78B80F5E, 0x7D8D172B, 0x3BF33A90, 0x2D572D9 , 0x2B5B4920,
|
||||
0x36A05E01, 0x52745306, 0x47C64855, 0x1CAA669B, 0x304A2641, 0x4D6B1760,
|
||||
0x3E176D79, 0x523241B0, 0x24A67957, 0x4BDE76AF, 0x4E5F1493, 0x4C215DA5,
|
||||
0x33A052B , 0x1A4D00C2, 0x40AE6BCA, 0x390D106B, 0x69E86018, 0x5AF356CF,
|
||||
0x63561D4 , 0x44F31C6 , 0x14B6299B, 0x0D2E25F0, 0x4CBF132A, 0x45AC18B6,
|
||||
0x2227567D, 0x06B54E2F, 0x26344534, 0x22C515EC, 0x2442370D, 0x6C3721C6,
|
||||
0x34EF687D, 0x1C06323A, 0x6AF36A60, 0x60396F52, 0x6AE70AA1, 0x49D06CBC,
|
||||
0x6F9576C8, 0x584C4258, 0x3A9A27BB, 0x66DF0D47, 0x1D4804EA, 0x57DD1E67,
|
||||
0x789C7895, 0x75336111, 0x25C122C8, 0x62742114, 0x4FBF6D26, 0x3F9F6482,
|
||||
0x66F02CD9, 0x11083202, 0x499E2618, 0x7EBC1351, 0x440112F1, 0x49DF7BC1,
|
||||
0x3BF45C25, 0x31BA7FA0, 0x61AF1AED, 0x6B1F7D29, 0x2D865294, 0x63E01129,
|
||||
0x7E9E77A5, 0x100435D7, 0x1FE3A71 , 0x08597C81, 0x722849FA, 0x31C520AF,
|
||||
0x7BA178DC, 0x7F102D31, 0x5CA07864, 0x150E6F98, 0x02C34882, 0x5D041F11,
|
||||
0x0C613C57, 0x53984FD1, 0x426F38AD, 0x55992B1D, 0x7AFA078D, 0x2B253413,
|
||||
0x594B32CF, 0x32887E38, 0x28933B46, 0x1A0B4168, 0x291B4A94, 0x653A5E8D,
|
||||
0x21746BBE, 0x5EFE6415, 0x30DA429C, 0x50C5640C, 0x34711AA4, 0x529C67A6,
|
||||
0x105957CD, 0x4D287499, 0x03CA0AA7, 0x28385832, 0x25A04A02, 0x420D47A4,
|
||||
0x35627556, 0x4BC11E4C, 0x59E215C7, 0x27E838B4, 0x458612F4, 0x22827F6F,
|
||||
0x449D4DBA, 0x679B7362, 0x4E495845, 0x4FD270D1, 0x395E76A0, 0x375A655E,
|
||||
0x12E2058F, 0x73F970CA, 0x61EF73B3, 0x51FF5362, 0x67410345, 0x7FDA0B3B,
|
||||
0x221962E8, 0x17AB6543, 0x26557412, 0x4B30084D, 0x268E191D, 0x7E0D13DF,
|
||||
0x73EF127D, 0x4DEC5DB1, 0x77FA745F, 0x56002898, 0x12DD0A40, 0x157F6DDF,
|
||||
0x42A55F8E, 0x43597924, 0x7B630C3F, 0x338B6B58, 0x32945F75, 0x4FA23A0E,
|
||||
0x036E38C0, 0x33B18FD , 0x06114337, 0x24660ACB, 0x19BB02F0, 0x124C0A47,
|
||||
0x3A951701, 0x01155ABF, 0x0C612D71, 0x36074CA7, 0x51660C41, 0x635F58C7,
|
||||
0x7FC2002D, 0x0E6A7CF3, 0x65B07D07, 0x015F6A6B, 0x791B70DD, 0x6E475719,
|
||||
0x424314C7, 0x68426EB , 0x71942FEE, 0x464A2F52, 0x677579FD, 0x6BA775AE,
|
||||
0x1F66EFF , 0x1A795237, 0x78D9545F, 0x1D0B344D, 0x3BD34AB7, 0x2F85312A,
|
||||
0x16C542AD, 0x3990185D, 0x08DF3351, 0x02811AA5, 0x6D351F41, 0x4066269D,
|
||||
0x06B660BF, 0x6EDB4768, 0x5DD70CF0, 0x35D74F6E, 0x689E220C, 0x11431687,
|
||||
0x147C49C9, 0x385762BD, 0x302F0AE4, 0x1DAB67F8, 0x483256C9, 0x37D50FCB,
|
||||
0x4EA82711, 0x4D7B2C98, 0x19DB78BC, 0x58DE0DC2, 0x6AFF7E7B, 0x37621C93,
|
||||
0x792C6E19, 0x77001192, 0x7F88439D, 0x2E196A66, 0x6C71378C, 0x6AF43B3A,
|
||||
0x7C16225E, 0x6687337 , 0x4BEE1608, 0x6D5B5552, 0x345D4590, 0x681209CC,
|
||||
0x7B242819, 0x508A1416, 0x19880FE3, 0x1FC7288A, 0x24BD0502, 0x6A1D1678,
|
||||
0x20E6CA0 , 0x59BE2057, 0x5ADE11EB, 0x5EA8649D, 0x7A200E6F, 0x1149481D,
|
||||
0x72281E93, 0x0A5B0451, 0x67312D58, 0x63B849F1, 0x52217960, 0x7CDF59F3,
|
||||
0x33C775C0, 0x1EBA0799, 0x7DF1506 , 0x34E96110, 0x38FC73E3, 0x5EA059B2,
|
||||
0x022936EA, 0x316406F6, 0x43911185, 0x6C0D10F3, 0x1C6F3DF8, 0x38DB12A9,
|
||||
0x5CD41244, 0x2C9F0A7B, 0x5F4A315F, 0x77CE1C66, 0x4C800860, 0x318D53E0,
|
||||
0x7105420D, 0x575361F2, 0x750810BA, 0x217E4CA5, 0x2010140 , 0x4D884763,
|
||||
0x42BB0DA7, 0x32D53A74, 0x141C6CD4, 0x087F5FC3, 0x464B53 , 0x2D2A05F6,
|
||||
0x15532B45, 0x5D5C3CE1, 0x3EB9216A, 0x2214611B, 0x1FC52C5F, 0x11AE5DD7,
|
||||
0x20B925A9, 0x7C640AF4, 0x740009AC, 0x6D0E0321, 0x38E6A61 , 0x09104544,
|
||||
0x474F26C8, 0x15254CF3, 0x341A6B59, 0x661904CE, 0x598B2197, 0x2412659D,
|
||||
0x61976DD4, 0x329B3E16, 0x08FD1FB0, 0x304006F3, 0x3456309 , 0x55CC15F1,
|
||||
0x59DA7630, 0x5C801335, 0x0036D52 , 0x353775A5, 0x299476EB, 0x75280568,
|
||||
0x766F5264, 0x2EA233A6, 0x647619F3, 0x7FB30C7A, 0x1BC03B9 , 0x36BC3061,
|
||||
0x3F30596E, 0x3E2A527B, 0x0AC04220, 0x641979A3, 0x1ECC3B89, 0x21447BC1,
|
||||
0x4E8F2E26, 0x0C5A1D90, 0x299E5467, 0x57C947E3, 0x1D4865ED, 0x76F31C3D,
|
||||
0x4EE81CDF, 0x3479195E, 0x6FFB3AE1, 0x5C82398 , 0x300F7364, 0x47940AFA,
|
||||
0x3B853E3E, 0x598C440D, 0x224A3D89, 0x3A674204, 0x22880A38, 0x2E77F2D ,
|
||||
0x22841C9C, 0x4F0609C3, 0x1FE90922, 0x09335017, 0x2D6B69A7, 0x7EDB63F9,
|
||||
0x099A74EF, 0x1F9F1B40, 0x24BE17E8, 0x251D2F7A, 0x16AC50D3, 0x28D7ED6 ,
|
||||
0x6D193443, 0x76156F1B, 0x30DF6A4E, 0x64FF6794, 0x63DB2C9A, 0x74353022,
|
||||
0x556E025C, 0x23802AF9, 0x425018A4, 0x675A18BB, 0x70B227B9, 0x7FB01BF ,
|
||||
0x63E7910 , 0x6C661591, 0x65745D2B, 0x4F6E379D, 0x52B32FAC, 0x1E6A1101,
|
||||
0x1DE22385, 0x2338191F, 0x469704B6, 0x4BAB4599, 0x54EB4809, 0x78393E6D,
|
||||
0x550017DD, 0x39B120E1, 0x288D52D3, 0x2D52668C, 0x20D22A68, 0x4E1207D1,
|
||||
0x3FCC0EFE, 0x47F37E64, 0x25177A90, 0x34BF5D4D, 0x5A8D3DCE, 0x6F7275A8,
|
||||
0x6BEA2655, 0x2A1810FC, 0x64DB593A, 0x0A4D4BC0, 0x2C402E93, 0x71C077F9,
|
||||
0x6F0C4577, 0x70412414, 0x752F1DC1, 0x582E38EA, 0x2C455F7B, 0x4DCD4EDB,
|
||||
0x12BC2696, 0x7B037135, 0x4FCA1F8C, 0x3D5E75F6, 0x502F41B0, 0x361653F1,
|
||||
0x2E5B0E31, 0x20266B19, 0x57E703D7, 0x467B3E00, 0x47032BA3, 0x1F776B9C,
|
||||
0x62570A84, 0x7EC75B48, 0x1BD5012 , 0x7D0A2D5D, 0x7FCC29F2, 0x291304B6,
|
||||
0x19D558ED, 0x47551C8 , 0x7D12738F, 0x3ADE0892, 0x5F741997, 0x25D2E2F ,
|
||||
0x2B9F2269, 0x5C134FED, 0x15E92399, 0x54437F4E, 0x272D32AB, 0x56186AA1,
|
||||
0x7E4D355C, 0x234D7836, 0x2A871760, 0x4637A94 , 0x2C183207, 0x5FC78B3 ,
|
||||
0x7F10621E, 0x276966B2, 0x6C9F4A11, 0x4E3F182C, 0x62BA2EF5, 0x25F239CD,
|
||||
0x73D63FED, 0x636E1F5E, 0x0AC15A0E, 0x3F3D33EB, 0x738326EA, 0x35C366B1,
|
||||
0x4D476E86, 0x02F63208, 0x711A1FC1, 0x426A4396, 0x7E4D1B93, 0x75E46DB7,
|
||||
0x2F3C44A7, 0x51A56F5C, 0x7AD2463D, 0x0A5639CA, 0x49952C78, 0x4C4B64F6,
|
||||
0x3AFE7F8D, 0x66993D04, 0x43867F37, 0x4BC146C2, 0x55A875EC, 0x681A1A75,
|
||||
0x30A67E1B, 0x4A4A7D0C, 0x20F77993, 0x1891805 , 0x738976AD, 0x542667D6,
|
||||
0x3C5C6EBF, 0x4499187F, 0x2BF17C97, 0x447C317F, 0x68D8419C, 0x7AAB6456,
|
||||
0x421B4F29, 0x76740F9C, 0x09163B8D, 0x3D72AAB , 0x1AD54DD7, 0x754946EE,
|
||||
0x7317342B, 0x218546D4, 0x10563DA7, 0x54BB4CCE, 0x0CE63E46, 0x5D146234,
|
||||
0x33BE6C63, 0x325044E5, 0x09D72335, 0x07C36BA , 0x365530CC, 0x2DFA448C,
|
||||
0x1663516F, 0x59B00AA , 0x150274EA, 0x12532D4A, 0x3CEF002D, 0x492F3DA5,
|
||||
0x263A2574, 0x6F8005C2, 0x14A10651, 0x2F627ABA, 0x68293238, 0x26987646,
|
||||
0x52590516, 0x10144D36, 0x59B151B9, 0x2B2A4F05, 0x53953699, 0x27851C75,
|
||||
0x180646F3, 0x2E970306, 0x32843145, 0x18F4FE8F
|
||||
};
|
||||
|
||||
/* The source data is random across the q31_t range. Accessing it by word should
|
||||
remain random. */
|
||||
const q15_t * fast_math_q15_inputs = (q15_t *) fast_math_q31_inputs;
|
||||
|
||||
const float32_t fast_math_f32_inputs[FAST_MATH_MAX_LEN] =
|
||||
{
|
||||
/* Special values close to increments of pi/2 */
|
||||
-0.0, 0.0, -1.5E-07, 1.5E-07, 1.5707964, 1.5707965,
|
||||
-1.5707964, -1.5707965, 3.1415925, 3.1415927, -3.1415925, -3.1415927,
|
||||
6.2831855, 6.283186, -6.2831855, -6.283186,
|
||||
|
||||
/* Test some slightly larger values too */
|
||||
10.1, -13.2,
|
||||
|
||||
/* Random values (0, 2pi) */
|
||||
-1.3684878, 1.1444261, 0.2627620, 0.6719343, 3.8732286, 5.9040643,
|
||||
-2.2271110, 2.5800587, 6.1848498, 5.9412493, 4.2514839, 6.2096863,
|
||||
-4.8181437, 2.1155439, 4.1618680, 1.5341357, 1.8567268, 4.2736867,
|
||||
-3.3165594, 2.5861183, 3.7864876, 4.7156566, 3.6664471, 3.4670146,
|
||||
-3.6666823, 3.2158594, 0.5189454, 4.5211925, 6.2590334, 2.2276047,
|
||||
-6.1025991, 2.1768018, 5.5703194, 2.8569321, 2.5976403, 1.3680509,
|
||||
-0.7895111, 1.9409676, 4.5622487, 4.9189303, 4.3591961, 0.0615894,
|
||||
-5.2980657, 5.7951829, 4.8440482, 0.2680398, 2.3762136, 4.4254964,
|
||||
-4.5836656, 1.4091744, 1.6905207, 4.2287795, 3.0001720, 3.9189258,
|
||||
-1.4856273, 1.1129014, 5.2128031, 4.8187110, 5.8715002, 0.6778860,
|
||||
-1.1449692, 0.6226340, 3.0772767, 1.2141962, 5.6290528, 0.6225986,
|
||||
-0.2775005, 3.5015887, 4.8537297, 1.9599772, 1.1245801, 2.1297213,
|
||||
-1.3203840, 3.2053828, 5.6948550, 3.9516457, 0.6379562, 2.4558128,
|
||||
-0.3431663, 3.1496534, 2.7125841, 6.2678565, 5.0994494, 3.0514394,
|
||||
-5.6199810, 0.8642307, 2.4504731, 5.8267510, 5.7647838, 4.4835177,
|
||||
3.8851284, 2.1569414, 5.8812331, 0.7839784, 4.5904032, 4.0619375,
|
||||
5.2348483, 2.5024810, 4.7112719, 5.2478452, 2.0260784, 3.4699621,
|
||||
6.1520498, 3.4514073, 2.0761128, 3.8922546, 2.2659464, 4.7532896,
|
||||
2.6006151, 3.0934955, 4.3652005, 6.1118673, 2.0593452, 5.2640727,
|
||||
4.6437278, 5.9952549, 0.2005758, 2.2422740, 4.1635768, 1.7687265,
|
||||
1.4475395, 4.4681525, 3.9243074, 3.7109036, 4.1496541, 0.2987948,
|
||||
2.1914796, 2.8358565, 1.5136507, 4.4927603, 5.3795520, 1.7687650,
|
||||
4.5933278, 0.8655898, 5.2572843, 0.8708603, 3.6958286, 2.3006310,
|
||||
5.0690197, 3.1653480, 3.0762120, 5.5106597, 2.2188555, 2.8239372,
|
||||
6.0540393, 0.2657649, 6.1132775, 1.1888217, 4.1916405, 3.6847088,
|
||||
4.2418564, 2.2683684, 3.8973243, 5.0966113, 0.1209983, 0.5269928,
|
||||
6.1248595, 4.0925498, 1.4529100, 2.5352096, 0.7666775, 1.6866509,
|
||||
1.6200953, 2.0839142, 0.9565145, 2.1865966, 0.7644026, 5.5552975,
|
||||
0.5923686, 5.8436176, 2.5071164, 0.2978322, 2.1511962, 4.6242118,
|
||||
4.9931353, 3.4237447, 4.3116692, 5.6148598, 0.3442670, 1.9079607,
|
||||
0.2902301, 1.2282167, 4.5249352, 4.5349096, 5.5153742, 3.6595342,
|
||||
0.4441228, 5.7977751, 5.0288862, 1.7966571, 3.4159368, 6.1875316,
|
||||
4.4967379, 5.2714014, 2.7222564, 2.9570223, 3.5230663, 1.6907520,
|
||||
4.7062218, 3.1660203, 4.0640250, 1.9336225, 0.8716326, 2.9881129,
|
||||
2.2773988, 4.9518627, 4.9027432, 4.2003861, 0.8388295, 0.1354396,
|
||||
3.5175829, 1.8901016, 5.9024853, 6.1631993, 1.8008890, 5.0317023,
|
||||
5.6304337, 3.7543702, 5.5544410, 5.9296402, 3.4504620, 4.5765894,
|
||||
3.6238793, 0.1624673, 2.8056369, 4.0608350, 3.2748147, 2.3393094,
|
||||
5.8881908, 5.2121085, 5.3349614, 2.3407017, 3.7270886, 5.4824095,
|
||||
5.8653636, 4.2000849, 1.2992148, 4.1082644, 0.4527132, 2.5555406,
|
||||
4.1904544, 5.8667713, 5.0953493, 3.0445066, 4.7547955, 2.6203864,
|
||||
6.1059115, 6.2076281, 5.4295991, 2.4434288, 2.8572272, 1.5499814,
|
||||
4.9286757, 5.5470323, 5.7410198, 3.5078076, 3.7627993, 0.9354200,
|
||||
5.6530665, 2.8299063, 1.2922774, 5.6526739, 4.7914663, 5.5448250,
|
||||
1.7903950, 4.2300036, 4.1737937, 0.7716694, 2.5592571, 1.7296789,
|
||||
4.5029688, 1.7805566, 5.6309835, 5.1935484, 2.4506089, 3.1284165,
|
||||
4.3655898, 5.2424950, 3.8304163, 3.6111801, 2.0485834, 2.8678003,
|
||||
4.4849099, 5.5568808, 4.5292698, 0.1169475, 4.2397456, 2.7552322,
|
||||
2.7509053, 0.7353640, 5.1187960, 2.0411269, 1.5470969, 2.1533307,
|
||||
2.3605433, 3.4340988, 3.5306485, 2.4870244, 2.5015301, 3.2381477,
|
||||
4.1313862, 5.9747764, 4.5386496, 2.5137752, 5.2268018, 0.8440727,
|
||||
0.3799239, 0.5293398, 0.0000000, 2.0371338, 1.8958053, 0.0733938,
|
||||
3.3923238, 0.5992443, 0.9205800, 3.9655772, 5.3992694, 6.1212150,
|
||||
3.5866836, 6.2633946, 3.4780043, 3.2387210, 2.0777367, 2.7017810,
|
||||
3.0901098, 0.4463392, 5.5778300, 0.4061048, 2.7406309, 5.1938664,
|
||||
2.4789345, 3.8545764, 5.1436714, 5.5683790, 5.8503469, 1.1987353,
|
||||
1.6247202, 5.6414565, 3.7282025, 3.1657206, 3.8503962, 5.1485818,
|
||||
3.3419582, 1.2696753, 2.8518968, 2.6886436, 6.0698884, 3.8959208,
|
||||
4.3692639, 4.5249277, 2.1796068, 3.2483466, 3.4978155, 0.9832885,
|
||||
3.5315023, 4.3655778, 2.6794992, 5.2544420, 4.5954405, 2.2621418,
|
||||
2.8539005, 2.4277593, 4.8729535, 4.6135614, 2.7035154, 4.3589760,
|
||||
5.9389515, 4.9274787, 4.4332387, 0.6869673, 2.4500066, 3.7127639,
|
||||
2.8863700, 0.3162955, 1.4368865, 5.2413645, 0.0982985, 5.4268554,
|
||||
0.4905223, 4.2037186, 3.1429204, 1.3696954, 3.5915675, 0.7677371,
|
||||
4.2170618, 3.7673071, 0.3517086, 0.3540136, 0.9581898, 0.1232828,
|
||||
2.7342886, 5.2290017, 3.8791769, 3.2680695, 5.4278441, 0.6138541,
|
||||
5.7054603, 0.6786889, 3.2483864, 0.8994758, 3.5146290, 0.0287746,
|
||||
4.8172051, 5.3325973, 5.7605579, 6.2013046, 3.1738449, 1.7053924,
|
||||
0.6330341, 3.1909083, 3.6794907, 4.7933610, 0.5212697, 4.1569315,
|
||||
3.2482749, 1.0747264, 5.8971330, 3.7101152, 2.7685894, 5.9182512,
|
||||
4.1212281, 2.8396586, 5.2759745, 3.3465722, 3.4801751, 4.2729777,
|
||||
2.3071222, 1.5035072, 3.6374836, 5.4468120, 2.5558538, 0.7075818,
|
||||
2.7887656, 1.8861142, 2.5219880, 5.2361777, 2.5360737, 2.4515477,
|
||||
2.2647672, 0.8812504, 1.6344462, 0.5454754, 2.6979830, 1.6165554,
|
||||
1.8695956, 2.6694641, 0.7490013, 3.1105972, 4.4384875, 1.5304166,
|
||||
4.9327408, 0.4655185, 2.4748426, 0.0213259, 1.3865538, 0.0081717,
|
||||
1.1886509, 0.8952537, 1.6843712, 1.0988793, 0.8711572, 3.7629093,
|
||||
5.6615138, 5.9022971, 1.3897429, 3.0327137, 2.3625475, 3.2910070,
|
||||
1.6642436, 0.4295011, 2.7415239, 1.0923508, 0.1640358, 5.9984205,
|
||||
2.7055177, 6.0416507, 4.7903915, 0.0461730, 4.2728088, 4.4356194,
|
||||
4.0534637, 3.4702651, 1.3704176, 4.8529200, 1.4327442, 2.3302118,
|
||||
5.5978709, 5.3807748, 2.5285646, 1.9981730, 3.8241692, 5.7189253,
|
||||
5.7120324, 3.7170973, 2.0896078, 5.3599569, 2.7796679, 5.6822331,
|
||||
0.2084724, 3.3453343, 4.5018856, 1.1265867, 2.1144987, 1.1794352,
|
||||
2.0227281, 2.5375066, 3.4467437, 0.3062336, 3.4729184, 1.7266910,
|
||||
1.5174002, 1.5277262, 0.9686124, 6.0093412, 5.8789338, 5.1441345,
|
||||
4.5758041, 1.1046577, 2.2642776, 1.1862024, 0.0075297, 1.9881224,
|
||||
4.3958232, 3.9285942, 3.4121603, 2.7585521, 1.8059588, 3.1520171,
|
||||
4.7849358, 4.7903511, 3.6194660, 4.6977042, 4.0560129, 0.7742111,
|
||||
3.1692252, 2.1819072, 0.5789810, 0.9289656, 1.2451370, 4.2239985,
|
||||
2.7112647, 4.3630684, 1.6134250, 0.0613154, 3.3444332, 1.7554715,
|
||||
5.9453394, 5.6953510, 2.4673100, 0.1561700, 4.2187618, 5.2600982,
|
||||
6.1041123, 0.3577199, 2.8294680, 3.6597688, 4.3142726, 4.5203293,
|
||||
4.0843265, 4.5673388, 2.3489542, 3.6541880, 0.7295941, 0.3622530,
|
||||
6.1560465, 1.7896003, 3.7383338, 6.0454361, 1.1672793, 1.2129049,
|
||||
2.1466132, 5.8615704, 2.4546365, 1.7166712, 0.9547117, 2.4951084,
|
||||
2.3544507, 0.8238180, 2.7334414, 0.5749942, 3.8618151, 0.0689837,
|
||||
3.6019012, 4.9620190, 1.4788531, 2.8149909, 3.5773830, 0.3857966,
|
||||
3.1182750, 4.0357856, 1.3902536, 5.2593808, 6.1014456, 5.3179177,
|
||||
3.1792883, 1.7522271, 4.6911344, 1.4886775, 6.0151778, 3.8972087,
|
||||
3.7715583, 1.0845061, 0.5676653, 1.6038597, 5.3945577, 5.7244031,
|
||||
4.3959286, 4.5564551, 1.4444168, 3.6194506, 5.0933266, 2.5374227,
|
||||
6.2105471, 0.5654792, 2.0165320, 3.2132771, 0.3808010, 4.5596317,
|
||||
3.4969429, 3.3260664, 5.2149334, 5.3957421, 4.9576149, 1.9970040,
|
||||
2.8413032, 4.7263877, 0.6902815, 0.6895316, 1.6957291, 3.2963937,
|
||||
6.1113470, 4.4636294, 1.9594738, 1.8312791, 5.3429527, 5.7280497,
|
||||
4.0166905, 1.6045389, 0.5571039, 5.2669152, 3.6738954, 5.9571429,
|
||||
0.3834561, 3.6734096, 1.7913869, 5.2007946, 1.2000032, 2.7804978,
|
||||
2.4718774, 5.1935175, 4.2529065, 1.3044083, 1.9987109, 0.8407592,
|
||||
4.2189258, 3.5876427, 1.0666779, 0.9277486, 2.9912971, 5.7057758,
|
||||
3.4694180, 0.2069675, 0.3384307, 5.0583614, 2.8360719, 2.4042372,
|
||||
4.9614777, 2.2888819, 3.3448533, 4.4714710, 5.4756485, 2.0652177,
|
||||
4.0848120, 6.1250762, 0.4773170, 3.6883502, 2.6005256, 1.9423615,
|
||||
1.6577182, 4.7674690, 6.2531264, 1.1722630, 4.9080805, 1.2302350,
|
||||
6.2351753, 5.0407581, 2.6654950, 4.5795867, 3.1312479, 5.0830358,
|
||||
2.2400117, 0.4602021, 3.7133088, 5.7188788, 1.2174673, 2.7166470,
|
||||
4.7071094, 0.2462034, 5.9459353, 4.7983010, 3.5111731, 1.1551193,
|
||||
3.1287047, 3.2537199, 6.2470131, 5.3711915, 6.0469623, 4.2659122,
|
||||
2.5352740, 5.8746469, 3.0126903, 1.4563896, 2.4899651, 4.4301324,
|
||||
3.5095299, 4.7540509, 6.2547920, 6.0471349, 3.3619258, 6.0561746,
|
||||
0.7264988, 0.3232592, 1.9122808, 3.6454528, 3.3361480, 5.6624574,
|
||||
3.3963785, 2.7142142, 3.4096772, 4.4762342, 0.1047703, 5.0323343,
|
||||
0.8954125, 3.0063438, 1.6137441, 2.3190715, 4.1579916, 1.0656836,
|
||||
1.7516517, 1.2454643, 1.2256706, 2.0535941, 5.5313259, 2.9600203,
|
||||
2.5382144, 1.1261446, 6.0879353, 2.5601199, 5.3060708, 3.8662016,
|
||||
2.3663172, 5.5114955, 4.9313732, 2.9213939, 5.1143679, 5.6450910,
|
||||
2.6969853, 2.1006537, 3.7488443, 5.6673754, 4.4112136, 2.3716204,
|
||||
4.6178643, 5.9948046, 3.4105954, 3.3935850, 1.9547595, 0.4475800,
|
||||
1.1434170, 0.5842667, 2.9121888, 0.0586379, 5.7492774, 4.0384655,
|
||||
0.0089162, 0.1909163, 1.3098570, 2.8586366, 0.7996361, 0.0543350,
|
||||
4.5683759, 2.2249794, 4.9036865, 2.7435946, 2.7429546, 0.3092155,
|
||||
0.3118464, 0.5723993, 3.7324447, 1.5147758, 5.2864780, 5.3860266,
|
||||
6.0545540, 3.0718480, 1.3842492, 1.4213108, 3.3727372, 4.7884765,
|
||||
2.1838288, 2.8980046, 4.0169897, 5.7637923, 1.0151904, 4.4964699,
|
||||
3.6300404, 2.7224978, 5.5558613, 2.4696170, 1.1245340, 3.9793522,
|
||||
3.9207111, 2.0605178, 5.0451799, 6.2799046, 6.1636676, 0.7981966,
|
||||
1.4592079, 0.1484872, 3.8166117, 0.6962355, 2.5601436, 5.5548184,
|
||||
3.4440198, 2.3185147, 1.3090764, 2.7705283, 6.0079576, 0.7792778,
|
||||
2.9578927, 5.3840384, 0.2726304, 4.3456090, 6.1511471, 1.7798247,
|
||||
0.8405677, 4.3057392, 5.7142715, 3.8382030, 5.6547587, 1.2153801,
|
||||
4.7401894, 2.1756202, 2.6303011, 0.9784166, 5.1459324, 3.9265103,
|
||||
4.6405120, 5.0586705, 0.4223724, 5.9739917, 3.1263686, 4.7447217,
|
||||
4.6646686, 5.2221411, 0.9833301, 2.8733554, 3.8836400, 5.8570808,
|
||||
-5.2470141, 5.6261119, 3.6600718, 3.6615062, 5.3716581, 0.2190677,
|
||||
-5.5632585, 2.5618482, 0.2285950, 4.6881858, 0.9728179, 0.9042027,
|
||||
-3.8073530, 1.5989503, 2.0367209, 2.5245268, 2.5533189, 2.4265105,
|
||||
-3.8314979, 1.0486053, 1.1818174, 0.5945707, 2.0306392, 4.8355201,
|
||||
-1.4710068, 4.6518534, 4.3531065, 5.1778361, 5.2023364, 1.8432851,
|
||||
-1.9438243, 3.2862931, 2.0439139, 5.2266206, 5.0912323, 3.4997233,
|
||||
-1.6522518, 4.2761236, 1.4680860, 2.8678051, 2.4163051, 3.3841326,
|
||||
-6.2310582, 4.7451897, 6.1603795, 1.4751828, 3.3210347, 0.3231823,
|
||||
-4.7555888, 3.7823504, 5.3857498, 6.2095284, 5.8401232, 2.5730582,
|
||||
-0.0021455, 3.3984387, 1.3052100, 1.3777994, 2.0471011, 0.6028680,
|
||||
-4.6968925, 4.7030205, 3.4136510, 2.1245480, 5.2297066, 3.4719134,
|
||||
-6.0164208, 5.6098372, 2.2399783, 3.4331443, 2.1782657, 3.9131853,
|
||||
-5.0053405, 4.6864702, 0.7887674, 5.1672539, 0.1580253, 2.6039335,
|
||||
-4.5955687, 4.9095176, 2.3077255, 4.6801428, 5.6062801, 1.5243220,
|
||||
-0.8142818, 1.4141432, 2.1992023, 1.8038058, 5.8275790, 0.3224138,
|
||||
-3.7238350, 1.0235240, 5.2678588, 1.0528164, 3.1554195, 6.2789723,
|
||||
-2.2330890, 0.2957980, 1.3424690, 2.4996969, 2.0964990, 1.4426353,
|
||||
-5.8818165, 4.2926017, 6.0451393, 2.7518666, 5.9083095, 0.0366581,
|
||||
-3.8346722, 5.0333074, 1.4638661, 5.8588735, 4.7957215, 5.1927356,
|
||||
-3.6031780, 4.9799375, 2.0674268, 1.4040530, 1.9627813, 3.6726693,
|
||||
-5.2145043, 1.8250297, 2.5293238, 5.4164658, 3.8625225, 6.2278165,
|
||||
-1.2798778, 5.1975080, 4.2465638, 1.5641957, 2.9894493, 2.5074636,
|
||||
-3.7663816, 5.0298329, 0.6601666, 5.1612735, 5.2847013, 2.2274284,
|
||||
-2.7022061, 3.5954850, 4.4034117, 4.6650751, 4.7619266, 2.4449681,
|
||||
-2.6973871, 6.0088907, 3.6000853, 5.3389611
|
||||
};
|
@ -0,0 +1,244 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define BIQUAD_DEFINE_TEST(suffix, instance_name, config_suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_biquad_cascade_##config_suffix##_##suffix##_test, \
|
||||
arm_biquad_cascade_##config_suffix##_##suffix) \
|
||||
{ \
|
||||
instance_name biquad_inst_fut = { 0 }; \
|
||||
instance_name biquad_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages \
|
||||
, \
|
||||
/* Initialize the BIQUAD Instances */ \
|
||||
arm_biquad_cascade_##config_suffix##_init_##suffix( \
|
||||
&biquad_inst_fut, numStages, \
|
||||
(output_type*)filtering_coeffs_b_##suffix, \
|
||||
(void *) filtering_pState); \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Stages: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numStages); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_biquad_cascade_##config_suffix##_##suffix( \
|
||||
&biquad_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_biquad_cascade_##config_suffix##_init_##suffix( \
|
||||
&biquad_inst_ref, numStages, \
|
||||
(output_type*)filtering_coeffs_b_##suffix, \
|
||||
(void *) filtering_pState); \
|
||||
\
|
||||
ref_biquad_cascade_##config_suffix##_##suffix( \
|
||||
&biquad_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define BIQUAD_WITH_POSTSHIFT_DEFINE_TEST(suffix, config_suffix, speed, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_biquad_cascade_##config_suffix##speed##_##suffix##_test, \
|
||||
arm_biquad_cascade_##config_suffix##speed##_##suffix) \
|
||||
{ \
|
||||
arm_biquad_casd_##config_suffix##_inst_##suffix biquad_inst_fut = { 0 }; \
|
||||
arm_biquad_casd_##config_suffix##_inst_##suffix biquad_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
postshifts_idx, uint8_t, postShift, filtering_postshifts \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Stages: %d\n" \
|
||||
"Post Shift: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numStages, \
|
||||
(int)postShift); \
|
||||
\
|
||||
/* Initialize the BIQUAD Instances */ \
|
||||
arm_biquad_cascade_##config_suffix##_init_##suffix( \
|
||||
&biquad_inst_fut, numStages, \
|
||||
(output_type*)filtering_coeffs_b_##suffix, \
|
||||
(void *) filtering_pState, postShift); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_biquad_cascade_##config_suffix##speed##_##suffix( \
|
||||
&biquad_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_biquad_cascade_##config_suffix##_init_##suffix( \
|
||||
&biquad_inst_ref, numStages, \
|
||||
(output_type*)filtering_coeffs_b_##suffix, \
|
||||
(void *) filtering_pState, postShift); \
|
||||
\
|
||||
ref_biquad_cascade_##config_suffix##speed##_##suffix( \
|
||||
&biquad_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type)))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
|
||||
JTEST_DEFINE_TEST(arm_biquad_cas_df1_32x64_q31_test,
|
||||
arm_biquad_cas_df1_32x64_q31)
|
||||
{
|
||||
arm_biquad_cas_df1_32x64_ins_q31 biquad_inst_fut = { 0 };
|
||||
arm_biquad_cas_df1_32x64_ins_q31 biquad_inst_ref = { 0 };
|
||||
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes
|
||||
,
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages
|
||||
,
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
postshifts_idx, uint8_t, postShift, filtering_postshifts
|
||||
,
|
||||
/* Initialize the BIQUAD Instances */
|
||||
arm_biquad_cas_df1_32x64_init_q31(
|
||||
&biquad_inst_fut, numStages,
|
||||
(q31_t*)filtering_coeffs_b_q31,
|
||||
(void *) filtering_pState, postShift);
|
||||
|
||||
/* Display test parameter values */
|
||||
JTEST_DUMP_STRF("Block Size: %d\n"
|
||||
"Number of Stages: %d\n",
|
||||
(int)blockSize,
|
||||
(int)numStages);
|
||||
|
||||
JTEST_COUNT_CYCLES(
|
||||
arm_biquad_cas_df1_32x64_q31(
|
||||
&biquad_inst_fut,
|
||||
(void *) filtering_q31_inputs,
|
||||
(void *) filtering_output_fut,
|
||||
blockSize));
|
||||
|
||||
arm_biquad_cas_df1_32x64_init_q31(
|
||||
&biquad_inst_ref, numStages,
|
||||
(q31_t*)filtering_coeffs_b_q31,
|
||||
(void *) filtering_pState, postShift);
|
||||
|
||||
ref_biquad_cas_df1_32x64_q31(
|
||||
&biquad_inst_ref,
|
||||
(void *) filtering_q31_inputs,
|
||||
(void *) filtering_output_ref,
|
||||
blockSize);
|
||||
|
||||
FILTERING_SNR_COMPARE_INTERFACE(
|
||||
blockSize,
|
||||
q31_t))));
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(arm_biquad_cascade_df2T_f64_test,
|
||||
arm_biquad_cascade_df2T_f64)
|
||||
{
|
||||
arm_biquad_cascade_df2T_instance_f64 biquad_inst_fut = { 0 };
|
||||
arm_biquad_cascade_df2T_instance_f64 biquad_inst_ref = { 0 };
|
||||
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes
|
||||
,
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages
|
||||
,
|
||||
/* Display test parameter values */
|
||||
JTEST_DUMP_STRF("Block Size: %d\n"
|
||||
"Number of Stages: %d\n",
|
||||
(int)blockSize,
|
||||
(int)numStages);
|
||||
|
||||
/* Initialize the BIQUAD Instances */
|
||||
arm_biquad_cascade_df2T_init_f64(
|
||||
&biquad_inst_fut, numStages,
|
||||
(float64_t*)filtering_coeffs_b_f64,
|
||||
(void *) filtering_pState);
|
||||
|
||||
JTEST_COUNT_CYCLES(
|
||||
arm_biquad_cascade_df2T_f64(
|
||||
&biquad_inst_fut,
|
||||
(void *) filtering_f64_inputs,
|
||||
(void *) filtering_output_fut,
|
||||
blockSize));
|
||||
|
||||
arm_biquad_cascade_df2T_init_f64(
|
||||
&biquad_inst_ref, numStages,
|
||||
(float64_t*)filtering_coeffs_b_f64,
|
||||
(void *) filtering_pState);
|
||||
|
||||
ref_biquad_cascade_df2T_f64(
|
||||
&biquad_inst_ref,
|
||||
(void *) filtering_f64_inputs,
|
||||
(void *) filtering_output_ref,
|
||||
blockSize);
|
||||
|
||||
FILTERING_DBL_SNR_COMPARE_INTERFACE(
|
||||
blockSize,
|
||||
float64_t)));
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
|
||||
BIQUAD_DEFINE_TEST(f32,arm_biquad_casd_df1_inst_f32, df1,float32_t);
|
||||
BIQUAD_DEFINE_TEST(f32,arm_biquad_cascade_df2T_instance_f32,df2T,float32_t);
|
||||
BIQUAD_DEFINE_TEST(f32,arm_biquad_cascade_stereo_df2T_instance_f32,stereo_df2T,float32_t);
|
||||
BIQUAD_WITH_POSTSHIFT_DEFINE_TEST(q31,df1,,q31_t);
|
||||
BIQUAD_WITH_POSTSHIFT_DEFINE_TEST(q15,df1,,q15_t);
|
||||
BIQUAD_WITH_POSTSHIFT_DEFINE_TEST(q31,df1,_fast,q31_t);
|
||||
BIQUAD_WITH_POSTSHIFT_DEFINE_TEST(q15,df1,_fast,q15_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(biquad_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df1_f32_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df2T_f32_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_stereo_df2T_f32_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df2T_f64_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df1_q31_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df1_q15_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df1_fast_q31_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cascade_df1_fast_q15_test);
|
||||
JTEST_TEST_CALL(arm_biquad_cas_df1_32x64_q31_test);
|
||||
}
|
@ -0,0 +1,473 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Header Stuff */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define CONV_MAX_INPUT_ELTS 32
|
||||
#define CONV_MAX_OUTPUT_ELTS (CONV_MAX_INPUT_ELTS * 2)
|
||||
|
||||
#define CONV_TEST_VALID_PARTIAL_PARAMS(input_a_len, input_b_len, \
|
||||
first_index, num_points) \
|
||||
(((((input_a_len) + (input_b_len) - 1)) >= num_points + first_index ) \
|
||||
&& (num_points > 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 CONV_arm_conv_INPUT_INTERFACE(input_a, input_a_len, input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_fut)
|
||||
|
||||
#define CONV_ref_conv_INPUT_INTERFACE(input_a, input_a_len, input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_ref)
|
||||
|
||||
#define CONV_arm_conv_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_fut, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_ref_conv_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_ref, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_arm_conv_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_fut)
|
||||
|
||||
#define CONV_ref_conv_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_ref)
|
||||
|
||||
#define CONV_arm_conv_fast_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_fut, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_ref_conv_fast_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_ref, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_arm_conv_partial_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_fut, first_index, num_points)
|
||||
|
||||
#define CONV_ref_conv_partial_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_ref, first_index, num_points)
|
||||
|
||||
#define CONV_arm_conv_partial_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_fut, first_index, num_points)
|
||||
|
||||
#define CONV_ref_conv_partial_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_ref, first_index, num_points)
|
||||
|
||||
#define CONV_arm_conv_partial_opt_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_fut, first_index, num_points, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_ref_conv_partial_opt_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_ref, first_index, num_points, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_arm_conv_partial_fast_opt_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_fut, first_index, num_points, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CONV_ref_conv_partial_fast_opt_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len, \
|
||||
first_index, num_points) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*)filtering_output_ref, first_index, num_points, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Inputs */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/* The following symbols alias the filtering_q31_inputs array:
|
||||
*
|
||||
* - filtering_q15_inputs
|
||||
* - filtering_q7_inputs
|
||||
*
|
||||
* The aliasing conflicts with the instantiation of #ARR_DESC_t structs.
|
||||
*
|
||||
* These macro-level aliases allow the #CONV_DEFINE_RAND_INPUT_ARR_DESCS() macro
|
||||
* to correctly select the filtering_q31_input or filtering_f32_input array,
|
||||
* within a template, by type_suffix.
|
||||
*
|
||||
*/
|
||||
#define CONV_f32_INPUTS filtering_f32_inputs
|
||||
#define CONV_q31_INPUTS filtering_q31_inputs
|
||||
#define CONV_q15_INPUTS filtering_q31_inputs
|
||||
#define CONV_q7_INPUTS filtering_q31_inputs
|
||||
|
||||
/**
|
||||
* Defines #ARR_DESC_t objects that wrap existing, type-specific, common
|
||||
* inputs.
|
||||
*/
|
||||
#define CONV_DEFINE_RAND_INPUT_ARR_DESCS(type_suffix) \
|
||||
ARR_DESC_DEFINE_USING_ARR( \
|
||||
TYPE_FROM_ABBREV(type_suffix), \
|
||||
conv_input_rand1_##type_suffix, \
|
||||
CONV_##type_suffix##_INPUTS, \
|
||||
0, \
|
||||
CONV_MAX_INPUT_ELTS); \
|
||||
\
|
||||
ARR_DESC_DEFINE_USING_ARR( \
|
||||
TYPE_FROM_ABBREV(type_suffix), \
|
||||
conv_input_rand2_##type_suffix, \
|
||||
CONV_##type_suffix##_INPUTS, \
|
||||
1, \
|
||||
CONV_MAX_INPUT_ELTS) /* Note the lacking semicolon */
|
||||
|
||||
CONV_DEFINE_RAND_INPUT_ARR_DESCS(f32);
|
||||
CONV_DEFINE_RAND_INPUT_ARR_DESCS(q31);
|
||||
CONV_DEFINE_RAND_INPUT_ARR_DESCS(q15);
|
||||
CONV_DEFINE_RAND_INPUT_ARR_DESCS(q7);
|
||||
ARR_DESC_DEFINE(float32_t, conv_input_zeros, CONV_MAX_INPUT_ELTS, CURLY(0));
|
||||
|
||||
/**
|
||||
* Define Input #ARR_DESC_t arrays by type suffix.
|
||||
*
|
||||
* Taking inputs in parallel from the 'a' and 'b' arrays yields the following
|
||||
* test cases (star is convolution):
|
||||
*
|
||||
* - zero_array * zero_array
|
||||
* - zero_array * random_array
|
||||
* - random_array * zero_array
|
||||
* - random_array * different_random_arary
|
||||
*/
|
||||
#define CONV_DEFINE_ALL_INPUTS(type_suffix) \
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *, \
|
||||
conv_##type_suffix##_a_inputs, \
|
||||
4, \
|
||||
CURLY( \
|
||||
&conv_input_zeros, \
|
||||
&conv_input_zeros, \
|
||||
&conv_input_rand1_##type_suffix, \
|
||||
&conv_input_rand1_##type_suffix \
|
||||
)); \
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *, \
|
||||
conv_##type_suffix##_b_inputs, \
|
||||
4, \
|
||||
CURLY( \
|
||||
&conv_input_zeros, \
|
||||
&conv_input_rand1_##type_suffix, \
|
||||
&conv_input_zeros, \
|
||||
&conv_input_rand2_##type_suffix \
|
||||
)) /* Note the lacking semicolon */
|
||||
|
||||
CONV_DEFINE_ALL_INPUTS(f32);
|
||||
CONV_DEFINE_ALL_INPUTS(q31);
|
||||
CONV_DEFINE_ALL_INPUTS(q15);
|
||||
CONV_DEFINE_ALL_INPUTS(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Lengths */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* The conv_lens_a and conv_lens_b #ARR_DESC_t objects are accessed in parallel
|
||||
* to provide convolution-length pairs. Taken in parallel they provide the
|
||||
* following cases:
|
||||
*
|
||||
* - 1 * 1 : Shortest convolution possible.
|
||||
* - 1 * 2 : Short convolution , one side is degenerate .
|
||||
* - 17 * 1 : Medium convolution , one side is degenerate .
|
||||
* - 15 * MAX : Longest convolution , one side is degenerate .
|
||||
* MAX * MAX : Longest convolution.
|
||||
*/
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
conv_lens_a,
|
||||
5,
|
||||
CURLY(
|
||||
1,
|
||||
1,
|
||||
17,
|
||||
15,
|
||||
CONV_MAX_INPUT_ELTS
|
||||
));
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
conv_lens_b,
|
||||
5,
|
||||
CURLY(
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
CONV_MAX_INPUT_ELTS,
|
||||
CONV_MAX_INPUT_ELTS
|
||||
));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Partial Indexing */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
first_index_arr_desc,
|
||||
4,
|
||||
CURLY(
|
||||
0,
|
||||
1,
|
||||
CONV_MAX_INPUT_ELTS / 2,
|
||||
CONV_MAX_INPUT_ELTS
|
||||
));
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
num_points_arr_desc,
|
||||
3,
|
||||
CURLY(
|
||||
1,
|
||||
CONV_MAX_OUTPUT_ELTS / 2,
|
||||
CONV_MAX_OUTPUT_ELTS
|
||||
));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Tests */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define CONV_TEST_TEMPLATE(fut, fut_arg_interface, \
|
||||
ref, ref_arg_interface, \
|
||||
suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(fut##_tests, fut) \
|
||||
{ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
input_idx, ARR_DESC_t *, input_ptr, conv_##suffix##_a_inputs \
|
||||
, \
|
||||
void * input_a_ptr = input_ptr->data_ptr; \
|
||||
void * input_b_ptr = ARR_DESC_ELT( \
|
||||
ARR_DESC_t *, input_idx, \
|
||||
&(conv_##suffix##_b_inputs))->data_ptr; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
conv_len_idx, uint32_t, conv_len_a, conv_lens_a \
|
||||
, \
|
||||
uint32_t conv_len_b = ARR_DESC_ELT( \
|
||||
uint32_t, conv_len_idx, &(conv_lens_b)); \
|
||||
\
|
||||
JTEST_DUMP_STRF("Input A Length: %d\n" \
|
||||
"Input B Length: %d\n", \
|
||||
(int)conv_len_a, \
|
||||
(int)conv_len_b); \
|
||||
\
|
||||
TEST_CALL_FUT_AND_REF( \
|
||||
fut, fut_arg_interface( \
|
||||
input_a_ptr, conv_len_a, input_b_ptr, conv_len_b), \
|
||||
ref, ref_arg_interface( \
|
||||
input_a_ptr, conv_len_a, input_b_ptr, conv_len_b)); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
conv_len_a + conv_len_b - 1, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
} \
|
||||
\
|
||||
|
||||
#define CONV_PARTIAL_TEST_TEMPLATE(fut, fut_arg_interface, \
|
||||
ref, ref_arg_interface, \
|
||||
suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(fut##_tests, fut) \
|
||||
{ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
input_idx, ARR_DESC_t *, input_ptr, conv_##suffix##_a_inputs \
|
||||
, \
|
||||
void * input_a_ptr = input_ptr->data_ptr; \
|
||||
void * input_b_ptr = ARR_DESC_ELT( \
|
||||
ARR_DESC_t *, input_idx, \
|
||||
&(conv_##suffix##_b_inputs))->data_ptr; \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
conv_len_idx, uint32_t, conv_len_a, conv_lens_a \
|
||||
, \
|
||||
uint32_t conv_len_b = ARR_DESC_ELT( \
|
||||
uint32_t, conv_len_idx, &(conv_lens_b)); \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
first_index_idx, uint32_t, first_index, \
|
||||
first_index_arr_desc \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
num_points_idx, uint32_t, num_points, \
|
||||
num_points_arr_desc \
|
||||
, \
|
||||
if (CONV_TEST_VALID_PARTIAL_PARAMS( \
|
||||
conv_len_a, conv_len_b, \
|
||||
first_index, num_points)) \
|
||||
{ \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Input A Length: %d\n" \
|
||||
"Input B Length: %d\n" \
|
||||
"First Sample Index: %d\n" \
|
||||
"Number of Output Points: %d\n", \
|
||||
(int)conv_len_a, \
|
||||
(int)conv_len_b, \
|
||||
(int)first_index, \
|
||||
(int)num_points); \
|
||||
\
|
||||
memset(filtering_output_ref,0, \
|
||||
(2*CONV_MAX_INPUT_ELTS)*sizeof(output_type)); \
|
||||
memset(filtering_output_fut,0, \
|
||||
(2*CONV_MAX_INPUT_ELTS)*sizeof(output_type)); \
|
||||
\
|
||||
TEST_CALL_FUT_AND_REF( \
|
||||
fut, fut_arg_interface( \
|
||||
input_a_ptr, conv_len_a, \
|
||||
input_b_ptr, conv_len_b, \
|
||||
first_index, num_points), \
|
||||
ref, ref_arg_interface( \
|
||||
input_a_ptr, conv_len_a, \
|
||||
input_b_ptr, conv_len_b, \
|
||||
first_index, num_points)); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE_OFFSET( \
|
||||
first_index, \
|
||||
num_points, \
|
||||
output_type); \
|
||||
} else { \
|
||||
/* FUT should return ARM_MATH_ARGUMENT_ERROR*/ \
|
||||
/* if first_index and num_points don't make */ \
|
||||
/* sense*/ \
|
||||
\
|
||||
arm_status conv_test_retval; \
|
||||
TEST_CALL_FUT( \
|
||||
conv_test_retval = fut, \
|
||||
fut_arg_interface( \
|
||||
input_a_ptr, conv_len_a, \
|
||||
input_b_ptr, conv_len_b, \
|
||||
first_index, num_points)); \
|
||||
\
|
||||
if (conv_test_retval != ARM_MATH_ARGUMENT_ERROR) { \
|
||||
JTEST_DUMP_STR("FUT failed to raise error."); \
|
||||
/* return JTEST_TEST_FAILED; */ \
|
||||
} \
|
||||
})))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define CONV_DEFINE_TEST(fn_name, suffix, output_type, test_template) \
|
||||
test_template( \
|
||||
arm_##fn_name##_##suffix, \
|
||||
CONV_arm_##fn_name##_INPUT_INTERFACE, \
|
||||
ref_##fn_name##_##suffix, \
|
||||
CONV_ref_##fn_name##_INPUT_INTERFACE, \
|
||||
suffix, \
|
||||
output_type \
|
||||
) /* Note the lacking semicolon*/
|
||||
|
||||
/* Tests on functions without partial outputs */
|
||||
CONV_DEFINE_TEST(conv , f32, float32_t, CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv , q31, q31_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv , q15, q15_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv , q7 , q7_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_opt , q15, q15_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_opt , q7 , q7_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_fast , q31, q31_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_fast , q15, q15_t , CONV_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_fast_opt , q15, q15_t , CONV_TEST_TEMPLATE);
|
||||
|
||||
/* Tests on functions with partial outputs */
|
||||
CONV_DEFINE_TEST(conv_partial , f32, float32_t, CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial , q31, q31_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial , q15, q15_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial , q7 , q7_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial_fast , q31, q31_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial_fast , q15, q15_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial_fast_opt , q15, q15_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial_opt , q15, q15_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
CONV_DEFINE_TEST(conv_partial_opt , q7 , q7_t , CONV_PARTIAL_TEST_TEMPLATE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(conv_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_conv_f32_tests);
|
||||
JTEST_TEST_CALL(arm_conv_q31_tests);
|
||||
JTEST_TEST_CALL(arm_conv_q15_tests);
|
||||
JTEST_TEST_CALL(arm_conv_q7_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_opt_q15_tests);
|
||||
JTEST_TEST_CALL(arm_conv_opt_q7_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_fast_q31_tests);
|
||||
JTEST_TEST_CALL(arm_conv_fast_q15_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_fast_opt_q15_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_partial_f32_tests);
|
||||
JTEST_TEST_CALL(arm_conv_partial_q31_tests);
|
||||
JTEST_TEST_CALL(arm_conv_partial_q15_tests);
|
||||
JTEST_TEST_CALL(arm_conv_partial_q7_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_partial_fast_q31_tests);
|
||||
JTEST_TEST_CALL(arm_conv_partial_fast_q15_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_partial_fast_opt_q15_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_conv_partial_opt_q15_tests);
|
||||
JTEST_TEST_CALL(arm_conv_partial_opt_q7_tests);
|
||||
}
|
@ -0,0 +1,310 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Header Stuff */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define CORRELATE_MAX_INPUT_ELTS 32
|
||||
#define CORRELATE_MAX_OUTPUT_ELTS (CORRELATE_MAX_INPUT_ELTS * 2)
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* 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 CORRELATE_arm_correlate_INPUT_INTERFACE(input_a, input_a_len, input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_fut)
|
||||
|
||||
#define CORRELATE_ref_correlate_INPUT_INTERFACE(input_a, input_a_len, input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_ref)
|
||||
|
||||
#define CORRELATE_arm_correlate_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_fut, \
|
||||
(void*) filtering_scratch)
|
||||
|
||||
#define CORRELATE_arm_correlate_opt_q7_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_fut, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CORRELATE_ref_correlate_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_ref, \
|
||||
(void*) filtering_scratch)
|
||||
|
||||
#define CORRELATE_ref_correlate_opt_q7_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_ref, \
|
||||
(void*) filtering_scratch, \
|
||||
(void*) filtering_scratch2)
|
||||
|
||||
#define CORRELATE_arm_correlate_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_fut)
|
||||
|
||||
#define CORRELATE_ref_correlate_fast_INPUT_INTERFACE(input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, (void*)filtering_output_ref)
|
||||
|
||||
#define CORRELATE_arm_correlate_fast_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_fut, \
|
||||
(void*) filtering_scratch)
|
||||
|
||||
#define CORRELATE_ref_correlate_fast_opt_INPUT_INTERFACE( \
|
||||
input_a, input_a_len, \
|
||||
input_b, input_b_len) \
|
||||
PAREN(input_a, input_a_len, input_b, input_b_len, \
|
||||
(void*) filtering_output_ref, \
|
||||
(void*) filtering_scratch)
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Inputs */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/* The following symbols alias the filtering_q31_inputs array:
|
||||
*
|
||||
* - filtering_q15_inputs
|
||||
* - filtering_q7_inputs
|
||||
*
|
||||
* The aliasing conflicts with the instantiation of #ARR_DESC_t structs.
|
||||
*
|
||||
* These macro-level aliases allow the #CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS() macro
|
||||
* to correctly select the filtering_q31_input or filtering_f32_input array,
|
||||
* within a template, by type_suffix.
|
||||
*
|
||||
*/
|
||||
#define CORRELATE_f32_INPUTS filtering_f32_inputs
|
||||
#define CORRELATE_q31_INPUTS filtering_q31_inputs
|
||||
#define CORRELATE_q15_INPUTS filtering_q31_inputs
|
||||
#define CORRELATE_q7_INPUTS filtering_q31_inputs
|
||||
|
||||
/**
|
||||
* Defines #ARR_DESC_t objects that wrap existing, type-specific, common
|
||||
* inputs.
|
||||
*/
|
||||
#define CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS(type_suffix) \
|
||||
ARR_DESC_DEFINE_USING_ARR( \
|
||||
TYPE_FROM_ABBREV(type_suffix), \
|
||||
correlate_input_rand1_##type_suffix, \
|
||||
CORRELATE_##type_suffix##_INPUTS, \
|
||||
0, \
|
||||
CORRELATE_MAX_INPUT_ELTS); \
|
||||
\
|
||||
ARR_DESC_DEFINE_USING_ARR( \
|
||||
TYPE_FROM_ABBREV(type_suffix), \
|
||||
correlate_input_rand2_##type_suffix, \
|
||||
CORRELATE_##type_suffix##_INPUTS, \
|
||||
1, \
|
||||
CORRELATE_MAX_INPUT_ELTS) /* Note the lacking semicolon */
|
||||
|
||||
CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS(f32);
|
||||
CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS(q31);
|
||||
CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS(q15);
|
||||
CORRELATE_DEFINE_RAND_INPUT_ARR_DESCS(q7);
|
||||
ARR_DESC_DEFINE(float32_t, correlate_input_zeros, CORRELATE_MAX_INPUT_ELTS, CURLY(0));
|
||||
|
||||
/**
|
||||
* Define Input #ARR_DESC_t arrays by type suffix.
|
||||
*
|
||||
* Taking inputs in parallel from the 'a' and 'b' arrays yields the following
|
||||
* test cases (star is correlate):
|
||||
*
|
||||
* - zero_array * zero_array
|
||||
* - zero_array * random_array
|
||||
* - random_array * zero_array
|
||||
* - random_array * different_random_arary
|
||||
*/
|
||||
#define CORRELATE_DEFINE_ALL_INPUTS(type_suffix) \
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *, \
|
||||
correlate_##type_suffix##_a_inputs, \
|
||||
4, \
|
||||
CURLY( \
|
||||
&correlate_input_zeros, \
|
||||
&correlate_input_zeros, \
|
||||
&correlate_input_rand1_##type_suffix, \
|
||||
&correlate_input_rand1_##type_suffix \
|
||||
)); \
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *, \
|
||||
correlate_##type_suffix##_b_inputs, \
|
||||
4, \
|
||||
CURLY( \
|
||||
&correlate_input_zeros, \
|
||||
&correlate_input_rand1_##type_suffix, \
|
||||
&correlate_input_zeros, \
|
||||
&correlate_input_rand2_##type_suffix \
|
||||
)) /* Note the lacking semicolon */
|
||||
|
||||
CORRELATE_DEFINE_ALL_INPUTS(f32);
|
||||
CORRELATE_DEFINE_ALL_INPUTS(q31);
|
||||
CORRELATE_DEFINE_ALL_INPUTS(q15);
|
||||
CORRELATE_DEFINE_ALL_INPUTS(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Lengths */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* The correlate_lens_a and correlate_lens_b #ARR_DESC_t objects are accessed in parallel
|
||||
* to provide correlate-length pairs. Taken in parallel they provide the
|
||||
* following cases:
|
||||
*
|
||||
* - 1 * 1 : Shortest correlate possible.
|
||||
* - 1 * 2 : Short correlate , one side is degenerate.
|
||||
* - 17 * 1 : Medium correlate, one side is degenerate.
|
||||
* - 15 * MAX : Longest correlate.
|
||||
* MAX * MAX : Longest correlate.
|
||||
*/
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
correlate_lens_a,
|
||||
5,
|
||||
CURLY(
|
||||
1,
|
||||
1,
|
||||
17,
|
||||
15,
|
||||
CORRELATE_MAX_INPUT_ELTS
|
||||
));
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
correlate_lens_b,
|
||||
5,
|
||||
CURLY(
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
CORRELATE_MAX_INPUT_ELTS,
|
||||
CORRELATE_MAX_INPUT_ELTS
|
||||
));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Convolution Tests */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define CORRELATE_TEST_TEMPLATE(fut, fut_arg_interface, \
|
||||
ref, ref_arg_interface, \
|
||||
suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(fut##_tests, fut) \
|
||||
{ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
input_idx, ARR_DESC_t *, input_ptr, correlate_##suffix##_a_inputs \
|
||||
, \
|
||||
void * input_a_ptr = input_ptr->data_ptr; \
|
||||
void * input_b_ptr = ARR_DESC_ELT( \
|
||||
ARR_DESC_t *, input_idx, \
|
||||
&(correlate_##suffix##_b_inputs))->data_ptr; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
correlate_len_idx, uint32_t, correlate_len_a, correlate_lens_a \
|
||||
, \
|
||||
uint32_t correlate_len_b = ARR_DESC_ELT( \
|
||||
uint32_t, correlate_len_idx, &(correlate_lens_b)); \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Input A Length: %d\n" \
|
||||
"Input B Length: %d\n", \
|
||||
(int)correlate_len_a, \
|
||||
(int)correlate_len_b); \
|
||||
\
|
||||
memset(filtering_output_ref,0, \
|
||||
(2*CORRELATE_MAX_INPUT_ELTS)*sizeof(output_type)); \
|
||||
memset(filtering_output_fut,0, \
|
||||
(2*CORRELATE_MAX_INPUT_ELTS)*sizeof(output_type)); \
|
||||
\
|
||||
TEST_CALL_FUT_AND_REF( \
|
||||
fut, fut_arg_interface( \
|
||||
input_a_ptr, correlate_len_a, input_b_ptr, correlate_len_b), \
|
||||
ref, ref_arg_interface( \
|
||||
input_a_ptr, correlate_len_a, input_b_ptr, correlate_len_b)); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
correlate_len_a + correlate_len_b - 2, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define CORRELATE_DEFINE_TEST(fn_name, suffix, output_type, test_template) \
|
||||
test_template( \
|
||||
arm_##fn_name##_##suffix, \
|
||||
CORRELATE_arm_##fn_name##_INPUT_INTERFACE, \
|
||||
ref_##fn_name##_##suffix, \
|
||||
CORRELATE_ref_##fn_name##_INPUT_INTERFACE, \
|
||||
suffix, \
|
||||
output_type \
|
||||
) /* Note the lacking semicolon*/
|
||||
|
||||
/* Tests on functions without partial outputs */
|
||||
CORRELATE_DEFINE_TEST(correlate , f32, float32_t, CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate , q31, q31_t , CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate , q15, q15_t , CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate , q7 , q7_t , CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate_opt , q15, q15_t , CORRELATE_TEST_TEMPLATE);
|
||||
|
||||
CORRELATE_TEST_TEMPLATE(
|
||||
arm_correlate_opt_q7,
|
||||
CORRELATE_arm_correlate_opt_q7_INPUT_INTERFACE,
|
||||
ref_correlate_opt_q7,
|
||||
CORRELATE_ref_correlate_opt_q7_INPUT_INTERFACE,
|
||||
q7,
|
||||
q7_t
|
||||
);
|
||||
|
||||
CORRELATE_DEFINE_TEST(correlate_fast , q31, q31_t , CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate_fast , q15, q15_t , CORRELATE_TEST_TEMPLATE);
|
||||
CORRELATE_DEFINE_TEST(correlate_fast_opt , q15, q15_t , CORRELATE_TEST_TEMPLATE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(correlate_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_correlate_f32_tests);
|
||||
JTEST_TEST_CALL(arm_correlate_q31_tests);
|
||||
JTEST_TEST_CALL(arm_correlate_q15_tests);
|
||||
JTEST_TEST_CALL(arm_correlate_q7_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_correlate_opt_q15_tests);
|
||||
JTEST_TEST_CALL(arm_correlate_opt_q7_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_correlate_fast_q31_tests);
|
||||
JTEST_TEST_CALL(arm_correlate_fast_q15_tests);
|
||||
|
||||
JTEST_TEST_CALL(arm_correlate_fast_opt_q15_tests);
|
||||
}
|
@ -0,0 +1,757 @@
|
||||
#include "filtering_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
//must be max(LMS_MAX_BLOCKSIZE*2, FILTERING_MAX_BLOCKSIZE * FILTERING_MAX_L)
|
||||
float32_t filtering_output_fut[LMS_MAX_BLOCKSIZE*2] = {0};
|
||||
float32_t filtering_output_ref[LMS_MAX_BLOCKSIZE*2] = {0};
|
||||
float32_t filtering_output_f32_fut[LMS_MAX_BLOCKSIZE*2] = {0};
|
||||
float32_t filtering_output_f32_ref[LMS_MAX_BLOCKSIZE*2] = {0};
|
||||
float32_t filtering_input_lms[LMS_MAX_BLOCKSIZE*2] = {0};
|
||||
__ALIGNED(8) float32_t filtering_pState[LMS_MAX_BLOCKSIZE + FILTERING_MAX_NUMTAPS] = {0};
|
||||
float32_t filtering_scratch[FILTERING_MAX_BLOCKSIZE * 3] = {0};
|
||||
float32_t filtering_scratch2[FILTERING_MAX_BLOCKSIZE * 3] = {0};
|
||||
float32_t filtering_coeffs_lms[FILTERING_MAX_NUMTAPS];
|
||||
|
||||
const q31_t filtering_q31_inputs[FILTERING_MAX_BLOCKSIZE * FILTERING_MAX_M + FILTERING_MAX_NUMTAPS] =
|
||||
{
|
||||
0xC14A5524, 0xCCABDA17, 0xAD6F5B56, 0xFDAFCE3B, 0xA9B226EB,
|
||||
0x41F6F6A, 0xA5CE38BF, 0x3A978AFA, 0xBA44B82A, 0x855C0F8,
|
||||
0x3D060524, 0x93D5E570, 0x97D7791D, 0xFFE0C38C, 0x26749841,
|
||||
0xC0A6EE54, 0x218EC386, 0x39FF3726, 0x8DC1F7CA, 0x702F2CF5,
|
||||
0xC1142FF1, 0xEC1476AB, 0x15F640DD, 0xE62CCE49, 0x3805DE7E,
|
||||
0xF70871FE, 0xCF8BD360, 0x8D19A8A0, 0xD764F821, 0xA58558CF,
|
||||
0x8C0CE04D, 0x50A46C19, 0x66D2370D, 0x50FA359A, 0xB646AE24,
|
||||
0x6CE00F5C, 0xE6D48948, 0xB55BD831, 0x3B72950A, 0x9EB69530,
|
||||
0x73394127, 0x773FA6F4, 0x9805A980, 0x838DE587, 0x9CF597F4,
|
||||
0xA2AD1691, 0xFA81A473, 0x7CDC7D7F, 0x4A5190D0, 0xED895BB9,
|
||||
0x8FD60F35, 0x1A21D530, 0xA0EB6DDA, 0xBDE6A516, 0x2501A3E1,
|
||||
0x5ED893C8, 0xE1E175B1, 0xACBBB2F3, 0xED350907, 0xDB140D7E,
|
||||
0xEEAE272D, 0xBE229841, 0xC18BFB88, 0xA6BB9B80, 0xBCF090E4,
|
||||
0x24DB166C, 0xF9AB7E42, 0x62DF28D1, 0xC7004665, 0xE3F56FC6,
|
||||
0x419E0C75, 0x46BE9F38, 0x2432B9B2, 0x758D83E0, 0xDCE12926,
|
||||
0x3F57CB74, 0x1F4458E2, 0xF1DD639, 0x83A1FB49, 0x173AFC76,
|
||||
0x86EF7531, 0x48D32F34, 0x7D3E3063, 0x8F2FB549, 0x5C314C9,
|
||||
0x18CBEB6D, 0xA6F8B697, 0x447B9E9C, 0x2E32BA33, 0xD074D715,
|
||||
0x81ACD746, 0xE55A4E04, 0x4891860F, 0x1DA3EB4F, 0xE0E6A27F,
|
||||
0x20BFDEB4, 0xD0B3A25B, 0x40C10544, 0xC15656C, 0x15405EAE,
|
||||
0x9858E3E1, 0xA36A9C4E, 0x88BD21F9, 0xAACF7A68, 0x773665E5,
|
||||
0xCEDFDF66, 0x617A9610, 0x524FC968, 0xC2D086CD, 0x5F008079,
|
||||
0x24DCA447, 0x6A4F5599, 0xB706CD4A, 0x1DE70608, 0xA33A2EE5,
|
||||
0x137E488E, 0x98061B7B, 0x4079D69D, 0xA4A897D5, 0xC4CEC8F5,
|
||||
0xD75F7883, 0x22406802, 0xF1AD70BB, 0x9D4ADD79, 0xBCBC7CE4,
|
||||
0xB358C0D8, 0x85792E47, 0xA7ADAC05, 0x3D19EEAB, 0x331AC0AF,
|
||||
0x33035831, 0x13D93987, 0xFC542094, 0x845F317E, 0xDDC4BF8B,
|
||||
0x1379E50C, 0x5C20193F, 0xFDD58298, 0x9D482B82, 0x4A6BE062,
|
||||
0xDC8A757B, 0x272917C1, 0x90E1EFBC, 0x355AD882, 0xE6F8EA35,
|
||||
0x604555A1, 0x7DFFFBB, 0xF58AE216, 0x9A11B463, 0xD3541BAD,
|
||||
0xA1576756, 0x483BED8D, 0x1F05AFCC, 0xCEA63DFB, 0x55B84677,
|
||||
0xFB2E04F2, 0x787AF96C, 0x84A12CD3, 0x460A9BD, 0x9DB22DD8,
|
||||
0x1A8C7F28, 0x861E452E, 0x932D3F78, 0x7652D852, 0x73357BBA,
|
||||
0xEBBB0A58, 0x62536AFA, 0x3F6B65EF, 0x6DC57B58, 0x9EB798CE,
|
||||
0xE6B0A740, 0xDFF68B47, 0x3247FB8F, 0xFFF3D302, 0xA9FD3E40,
|
||||
0x475A43D1, 0x6FF9528A, 0x2018A09D, 0x47E0F9C9, 0x4CF5F6D3,
|
||||
0x2807CE34, 0xDD6FD8ED, 0x234045D1, 0x51CEB5F9, 0x25297896,
|
||||
0x6443A0FE, 0x8F4449A9, 0xD4C3E1C6, 0xF01D52F1, 0x4E09C820,
|
||||
0xF18F0810, 0xE1548689, 0xF9DE5A1F, 0x5286DC23, 0x48AC3A4B,
|
||||
0xEA0C1BE0, 0xA1B785DB, 0x7086465D, 0x1CC10929, 0x1E1D716E,
|
||||
0xED231D4C, 0x2049D108, 0xB8FF9971, 0x949CF8D4, 0x441F1E8B,
|
||||
0xC3D95372, 0x69C324B4, 0xA10BFDC9, 0xC781DE78, 0x82476137,
|
||||
0xE163DDF, 0x390DEEC2, 0xAF68CE5B, 0x8E680ABD, 0x8223A615,
|
||||
0x92593380, 0x7B1465FE, 0x865AE957, 0x930F53EB, 0xED772EF7,
|
||||
0x10E916B6, 0xE3BCFA68, 0x2ACB80BB, 0xE51C5590, 0x994714B5,
|
||||
0xF30984EE, 0x59BBE1B4, 0xB4867DBC, 0xB91C706C, 0xBC16C218,
|
||||
0xA8931CD0, 0x129A66AB, 0x13171F4D, 0x62882872, 0x4B167FD4,
|
||||
0xE6902F4C, 0xFA794932, 0xD4B152C, 0xB0856EA9, 0x39466D55,
|
||||
0x3669E451, 0x8F5B9E8C, 0x877A3C6A, 0x51B956B4, 0x367EAD2A,
|
||||
0x9D2C662A, 0x78FB6880, 0x4E6D40B6, 0x4070EFDC, 0x4DF9679C,
|
||||
0x20306EDB, 0xE381AAE7, 0xA55DA748, 0x9B8B617B, 0x3E036FAD,
|
||||
0x84E4C4A7, 0xD5A3F517, 0x669BA988, 0x98FDDE8C, 0x67BD85CE,
|
||||
0x34BBB46C, 0x76994800, 0x85B9D8B6, 0x6DFA2FEF, 0x205DB5C,
|
||||
0x9F843C4C, 0x72721B52, 0x73EF6B86, 0x5FB98B61, 0xC323DDAC,
|
||||
0x31D424B4, 0xF68C0D7E, 0x162FAF9D, 0x7B2A7A99, 0xF9392693,
|
||||
0xC42D12C0, 0x8692A73E, 0xD9A1EE80, 0xDD956856, 0x44E7BDAC,
|
||||
0x8D874532, 0x5F5C9DD0, 0x5D167858, 0x8559FEA2, 0x9D821476,
|
||||
0xD9654ED2, 0x594C0DC7, 0x1A87B506, 0x3F693200, 0x7A651AB5,
|
||||
0xA0CCBC8A, 0x9F9E662C, 0x78EF631, 0x2A09DA0, 0xB088C72F,
|
||||
0x92EE0D42, 0x360DCD5F, 0xF333FE48, 0x8D63CC06, 0x233A8ACB,
|
||||
0x706651ED, 0x7AA5C079, 0x262239D1, 0x3EBBEBB6, 0xA25A4F3D,
|
||||
0x32581A06, 0x6E6FD780, 0x5773F7C7, 0x75ED1DDC, 0x90DF2D15,
|
||||
0xBC79A9BC, 0xB7175917, 0x354E381C, 0x762AADD7, 0xF643DAC1,
|
||||
0xF3BBF49E, 0xD2FECE7E, 0x6C8140F4, 0xD7694875, 0x92D30822,
|
||||
0xC742A7CF, 0xB792ED98, 0x121CFE24, 0xA04E1EE7, 0x58CE268,
|
||||
0x215A080, 0x316CB323, 0xFAB14A31, 0xE1C13C03, 0xFD8EF4F1,
|
||||
0xF3F446D0, 0x6C6CEA0A, 0xBBFDF9FB, 0x67242969, 0xBE55A4EB,
|
||||
0x8FF5534, 0x52F0DF1C, 0x9710ADE3, 0xD40F4A21, 0x7984E8E7,
|
||||
0x419545EB, 0x993F7880, 0xAB246B20, 0x408AABC4, 0xCBF6EA49,
|
||||
0xC0894C55, 0x4CAA6398, 0xA47856E9, 0xAF2AE47D, 0x22F55D33,
|
||||
0xF0D37915, 0xD0634C72, 0xD983671, 0x2BCC5AF8, 0x9A77D48,
|
||||
0xC11B5CFA, 0xF107CD7E, 0x3A6B3593, 0xE1425F05, 0x6271812A,
|
||||
0x5B838310, 0xBD8418CA, 0x10A58792, 0x239F7137, 0xA13D5071,
|
||||
0x7F9930D4, 0xA462664F, 0x54180F8E, 0x291585BA, 0xE586B87A,
|
||||
0x144B2C12, 0x98E425C7, 0xBAA4B373, 0x18F0D03C, 0x99462AC0,
|
||||
0xD8B4D2EF, 0x72473895, 0xA6BF5435, 0xEDAD53B, 0xE0912FA6,
|
||||
0x5C33F331, 0x3D93CD7, 0x4D03D752, 0x20699929, 0xB89962F9,
|
||||
0x36E781E9, 0xF58B642C, 0x5FCA69E3, 0x5960A7F4, 0xAD5AAFD0,
|
||||
0xDF18324A, 0x3DB1E5AA, 0x76BA3876, 0x1BC29AF6, 0xBCC18841,
|
||||
0x73A60174, 0x625BFF58, 0x67C57724, 0x4458E53C, 0xE157B095,
|
||||
0x2B370837, 0x83DF6CE3, 0xDD08EEFA, 0x3F52A7C2, 0x191B4785,
|
||||
0x60843D82, 0xB0DE11F1, 0x105EA26C, 0x6E1C7AA2, 0x47AADD14,
|
||||
0xB6676D03, 0x3B8D4DF6, 0x737A694, 0x409521DC, 0x744206A,
|
||||
0xC722023F, 0x2BE4EAD5, 0x63E11D76, 0xCA4A09AB, 0x5CF2D2B9,
|
||||
0x31586916, 0xCDFD7D84, 0xB203F634, 0xAD7329D4, 0xC524582F,
|
||||
0x2E53E6C1, 0xBB0E019B, 0xB8538C6A, 0x6A2542D, 0x8A6A00E5,
|
||||
0x119725CC, 0x5406D347, 0x1B6FFAF1, 0xECCF71F1, 0x981117F2,
|
||||
0x7167CA76, 0x74F4B880, 0x77A55F47, 0x59EADB62, 0x4A331D95,
|
||||
0xBCBBA76F, 0xA45C4D50, 0xC718D5, 0x87CE05D1, 0x60D47AD5,
|
||||
0xA5CA9C40, 0xB0061766, 0xE69B39DF, 0xBD5F1320, 0x9930EAD3,
|
||||
0xA8B38325, 0x8DD090F, 0x6A6EEF37, 0x2DF16F66, 0xAB514C7E,
|
||||
0x31109C58, 0xFD48C7FC, 0x515341CA, 0x77AB8EA6, 0x41328DAF,
|
||||
0xBAF8D31E, 0xA4B31611, 0xED37F331, 0x7A832A22, 0xA22591C7,
|
||||
0x722D1F89, 0x3B19CF18, 0x261B8A4D, 0xC3F6F6DB, 0xCF8CED61,
|
||||
0x990FA250, 0xA02E72A9, 0x560DCEA2, 0xB08E67B4, 0x3674E663,
|
||||
0x97CC3852, 0xA7EB2EAC, 0xFFDE0AA8, 0xA64719A, 0x23269EDD,
|
||||
0x3C0B339E, 0x86284D40, 0x48D82ECB, 0xA4D4CCF8, 0x43631B91,
|
||||
0x4BF0C248, 0xB6497B9B, 0x6827BC58, 0xE30B7AF9, 0xA0CCBF26,
|
||||
0x6C3B7B71, 0xD744B3ED, 0xFA25D2F6, 0x4CDE642D, 0xD65B8142,
|
||||
0xA6F9207F, 0xE7A207BE, 0xDB506684, 0x44DA4780, 0x9175EA0C,
|
||||
0x156104AF, 0x4155E1B0, 0x6E3A6886, 0x9DBA1EA2, 0x5423D9C8,
|
||||
0xCC024E22, 0x758F852A, 0x1DD6395, 0x2D19CBAD, 0xE164F5A1,
|
||||
0xC2084602, 0x89C274AD, 0x13CB5562, 0xD7FE2D5B, 0xE07A4EE5,
|
||||
0x1672BA91, 0x4F624CCF, 0x2E5EA4A3, 0x28FEEFAF, 0xBDDA6EF4,
|
||||
0x32AFD40C, 0x99A5FB3B, 0xDD1D73A3, 0xA342CB3E, 0xA78445F5,
|
||||
0x53979C3B, 0x427D7943, 0x5221B58C, 0xA6CE9A5E, 0xFB50ECA4,
|
||||
0xBB86E36E, 0x60839F6D, 0xC5E1C2F3, 0xA1B7FB04, 0xFBB65E0C,
|
||||
0x78B80F5E, 0xFD8D972B, 0x3BF3BA90, 0x2D572D9, 0x2B5BC920,
|
||||
0xB6A0DE01, 0xD274D306, 0xC7C6C855, 0x9CAA669B, 0xB04AA641,
|
||||
0x4D6B1760, 0x3E17ED79, 0xD23241B0, 0xA4A6F957, 0xCBDE76AF,
|
||||
0x4E5F9493, 0x4C215DA5, 0x33A052B, 0x1A4D80C2, 0x40AEEBCA,
|
||||
0x390D106B, 0xE9E8E018, 0x5AF3D6CF, 0xE35E1D4, 0xC4FB1C6,
|
||||
0x14B6299B, 0x8D2E25F0, 0xCCBF932A, 0xC5AC18B6, 0x2227567D,
|
||||
0x86B5CE2F, 0x26344534, 0x22C515EC, 0x2442B70D, 0xEC3721C6,
|
||||
0x34EF687D, 0x9C06323A, 0xEAF3EA60, 0x60396F52, 0xEAE78AA1,
|
||||
0xC9D06CBC, 0x6F95F6C8, 0x584CC258, 0xBA9A27BB, 0x66DF8D47,
|
||||
0x9D4804EA, 0x57DD9E67, 0xF89C7895, 0xF5336111, 0x25C122C8,
|
||||
0x62742114, 0xCFBF6D26, 0xBF9F6482, 0xE6F02CD9, 0x11083202,
|
||||
0xC99E2618, 0x7EBC9351, 0x440112F1, 0xC9DFFBC1, 0x3BF4DC25,
|
||||
0xB1BA7FA0, 0x61AF9AED, 0x6B1F7D29, 0xAD865294, 0xE3E01129,
|
||||
0x7E9E77A5, 0x100435D7, 0x9FE3A71, 0x88597C81, 0x722849FA,
|
||||
0x31C5A0AF, 0xFBA178DC, 0x7F102D31, 0x5CA07864, 0x950E6F98,
|
||||
0x82C34882, 0x5D041F11, 0x8C613C57, 0xD398CFD1, 0x426F38AD,
|
||||
0x5599AB1D, 0xFAFA078D, 0xAB25B413, 0xD94B32CF, 0xB288FE38,
|
||||
0x2893BB46, 0x9A0B4168, 0xA91BCA94, 0x653A5E8D, 0x2174EBBE,
|
||||
0xDEFE6415, 0x30DA429C, 0xD0C5E40C, 0xB4719AA4, 0xD29CE7A6,
|
||||
0x905957CD, 0xCD287499, 0x83CA0AA7, 0xA8385832, 0x25A0CA02,
|
||||
0xC20D47A4, 0xB562F556, 0x4BC19E4C, 0xD9E215C7, 0x27E838B4,
|
||||
0xC58612F4, 0xA2827F6F, 0xC49DCDBA, 0x679B7362, 0x4E495845,
|
||||
0xCFD2F0D1, 0x395E76A0, 0x375A655E, 0x92E2058F, 0x73F9F0CA,
|
||||
0x61EFF3B3, 0x51FFD362, 0xE7410345, 0x7FDA8B3B, 0xA219E2E8,
|
||||
0x17ABE543, 0x26557412, 0x4B30084D, 0xA68E191D, 0xFE0D93DF,
|
||||
0x73EF127D, 0x4DECDDB1, 0x77FAF45F, 0xD6002898, 0x92DD0A40,
|
||||
0x157F6DDF, 0xC2A55F8E, 0x4359F924, 0xFB630C3F, 0x338B6B58,
|
||||
0xB2945F75, 0x4FA23A0E, 0x836EB8C0, 0xB3B18FD, 0x86114337,
|
||||
0x24668ACB, 0x99BB82F0, 0x924C8A47, 0xBA959701, 0x81155ABF,
|
||||
0x8C612D71, 0x36074CA7, 0xD1668C41, 0xE35F58C7, 0x7FC2802D,
|
||||
0x8E6A7CF3, 0x65B07D07, 0x815F6A6B, 0x791BF0DD, 0x6E47D719,
|
||||
0xC24394C7, 0xE84A6EB, 0xF194AFEE, 0x464A2F52, 0x677579FD,
|
||||
0xEBA775AE, 0x1F6EEFF, 0x9A795237, 0x78D9D45F, 0x9D0B344D,
|
||||
0xBBD34AB7, 0x2F85B12A, 0x16C5C2AD, 0x3990985D, 0x88DF3351,
|
||||
0x82811AA5, 0x6D351F41, 0x4066A69D, 0x86B660BF, 0x6EDB4768,
|
||||
0xDDD78CF0, 0xB5D74F6E, 0xE89E220C, 0x91439687, 0x947CC9C9,
|
||||
0x3857E2BD, 0x302F8AE4, 0x1DABE7F8, 0x4832D6C9, 0x37D58FCB,
|
||||
0x4EA8A711, 0xCD7BAC98, 0x19DBF8BC, 0xD8DE8DC2, 0xEAFF7E7B,
|
||||
0xB7629C93, 0x792C6E19, 0xF7009192, 0xFF88439D, 0x2E196A66,
|
||||
0xEC71B78C, 0xEAF4BB3A, 0x7C16225E, 0x668F337, 0xCBEE1608,
|
||||
0x6D5B5552, 0x345DC590, 0x681209CC, 0x7B24A819, 0xD08A1416,
|
||||
0x99888FE3, 0x9FC7288A, 0x24BD8502, 0xEA1D9678, 0x20EECA0,
|
||||
0x59BEA057, 0x5ADE91EB, 0xDEA8E49D, 0xFA200E6F, 0x9149C81D,
|
||||
0xF2281E93, 0x8A5B0451, 0x67312D58, 0xE3B849F1, 0xD2217960,
|
||||
0x7CDF59F3, 0x33C775C0, 0x9EBA8799, 0x7DF9506, 0xB4E96110,
|
||||
0xB8FCF3E3, 0xDEA059B2, 0x8229B6EA, 0x316486F6, 0x43919185,
|
||||
0x6C0D90F3, 0x1C6F3DF8, 0x38DB92A9, 0x5CD41244, 0x2C9F0A7B,
|
||||
0xDF4A315F, 0xF7CE9C66, 0x4C800860, 0x318D53E0, 0xF105C20D,
|
||||
0xD753E1F2, 0x750810BA, 0xA17ECCA5, 0x2010140, 0x4D884763,
|
||||
0xC2BB0DA7, 0xB2D5BA74, 0x141CECD4, 0x887FDFC3, 0xC64B53,
|
||||
0x2D2A85F6, 0x15532B45, 0x5D5CBCE1, 0xBEB9A16A, 0xA214611B,
|
||||
0x9FC5AC5F, 0x11AE5DD7, 0xA0B9A5A9, 0xFC648AF4, 0x740009AC,
|
||||
0xED0E0321, 0xB8E6A61, 0x8910C544, 0xC74F26C8, 0x9525CCF3,
|
||||
0xB41AEB59, 0xE61984CE, 0x598B2197, 0xA412E59D, 0xE1976DD4,
|
||||
0xB29BBE16, 0x88FD9FB0, 0xB04006F3, 0xB45E309, 0xD5CC15F1,
|
||||
0xD9DAF630, 0xDC809335, 0x803ED52, 0xB537F5A5, 0xA994F6EB,
|
||||
0xF5288568, 0xF66FD264, 0x2EA2B3A6, 0x647619F3, 0xFFB38C7A,
|
||||
0x1BC03B9, 0xB6BC3061, 0xBF30596E, 0xBE2AD27B, 0x8AC04220,
|
||||
0x641979A3, 0x9ECCBB89, 0xA144FBC1, 0x4E8FAE26, 0x8C5A9D90,
|
||||
0x299ED467, 0xD7C9C7E3, 0x1D4865ED, 0x76F31C3D, 0xCEE81CDF,
|
||||
0xB479195E, 0x6FFB3AE1, 0xDC8A398, 0x300F7364, 0xC7940AFA,
|
||||
0x3B85BE3E, 0xD98CC40D, 0xA24A3D89, 0x3A674204, 0x22888A38,
|
||||
0x2E77F2D, 0xA2841C9C, 0xCF0689C3, 0x9FE98922, 0x89335017,
|
||||
0x2D6B69A7, 0xFEDB63F9, 0x899AF4EF, 0x9F9F9B40, 0xA4BE97E8,
|
||||
0xA51DAF7A, 0x16AC50D3, 0xA8D7ED6, 0xED193443, 0x7615EF1B,
|
||||
0xB0DF6A4E, 0x64FFE794, 0xE3DB2C9A, 0x7435B022, 0x556E825C,
|
||||
0x23802AF9, 0xC25098A4, 0xE75A18BB, 0x70B2A7B9, 0x7FB81BF,
|
||||
0x63EF910, 0x6C669591, 0x6574DD2B, 0xCF6E379D, 0xD2B3AFAC,
|
||||
0x1E6A1101, 0x1DE22385, 0x2338191F, 0xC69704B6, 0xCBABC599,
|
||||
0x54EB4809, 0x7839BE6D, 0xD50017DD, 0x39B1A0E1, 0x288D52D3,
|
||||
0x2D52668C, 0x20D22A68, 0x4E1207D1, 0x3FCC0EFE, 0x47F3FE64,
|
||||
0x25177A90, 0xB4BFDD4D, 0xDA8DBDCE, 0x6F7275A8, 0x6BEAA655,
|
||||
0xAA1810FC, 0xE4DB593A, 0x8A4D4BC0, 0x2C402E93, 0xF1C0F7F9,
|
||||
0x6F0CC577, 0x70412414, 0x752F9DC1, 0xD82E38EA, 0xAC455F7B,
|
||||
0x4DCD4EDB, 0x92BC2696, 0xFB03F135, 0x4FCA1F8C, 0xBD5E75F6,
|
||||
0x502F41B0, 0x3616D3F1, 0x2E5B8E31, 0x2026EB19, 0x57E783D7,
|
||||
0x467BBE00, 0x4703ABA3, 0x1F776B9C, 0xE2570A84, 0xFEC7DB48,
|
||||
0x1BD5012, 0xFD0A2D5D, 0x7FCC29F2, 0x291304B6, 0x99D5D8ED,
|
||||
0xC7551C8, 0xFD12F38F, 0xBADE8892, 0xDF749997, 0xA5DAE2F,
|
||||
0x2B9FA269, 0x5C13CFED, 0x15E9A399, 0x54437F4E, 0xA72DB2AB,
|
||||
0x56186AA1, 0xFE4DB55C, 0xA34D7836, 0x2A879760, 0xC63FA94,
|
||||
0xAC18B207, 0x5FC78B3, 0x7F10621E, 0xA769E6B2, 0xEC9F4A11,
|
||||
0xCE3F982C, 0x62BA2EF5, 0xA5F239CD, 0x73D63FED, 0xE36E9F5E,
|
||||
0x8AC1DA0E, 0x3F3DB3EB, 0x738326EA, 0x35C366B1, 0xCD476E86,
|
||||
0x82F6B208, 0xF11A9FC1, 0x426AC396, 0x7E4D1B93, 0x75E4EDB7,
|
||||
0xAF3C44A7, 0x51A5EF5C, 0xFAD2463D, 0x8A5639CA, 0xC995AC78,
|
||||
0xCC4BE4F6, 0x3AFE7F8D, 0x66993D04, 0x4386FF37, 0xCBC1C6C2,
|
||||
0x55A8F5EC, 0xE81A9A75, 0x30A67E1B, 0x4A4A7D0C, 0x20F7F993,
|
||||
0x1891805, 0x738976AD, 0xD426E7D6, 0x3C5CEEBF, 0x4499187F,
|
||||
0xABF17C97, 0x447C317F, 0x68D8419C, 0x7AAB6456, 0x421BCF29,
|
||||
0xF6740F9C, 0x8916BB8D, 0x3D72AAB, 0x9AD54DD7, 0x7549C6EE,
|
||||
0x7317342B, 0xA18546D4, 0x1056BDA7, 0x54BBCCCE, 0x8CE63E46,
|
||||
0x5D146234, 0x33BE6C63, 0xB250C4E5, 0x89D72335, 0x87C36BA,
|
||||
0xB65530CC, 0x2DFAC48C, 0x1663D16F, 0x59B80AA, 0x950274EA,
|
||||
0x92532D4A, 0x3CEF802D, 0x492FBDA5, 0xA63A2574, 0xEF8005C2,
|
||||
0x94A18651, 0xAF627ABA, 0x6829B238, 0xA698F646, 0xD2598516,
|
||||
0x10144D36, 0xD9B1D1B9, 0xAB2ACF05, 0x5395B699, 0xA7851C75,
|
||||
0x1806C6F3, 0xAE970306, 0x3284B145, 0x98F4FE8F, 0xECDD35CC,
|
||||
0xDDC1EE0E, 0xC4848865, 0x925826BD, 0x4078BE39, 0x68A8561A,
|
||||
0x323045DC, 0xA933B37F, 0xBA2AEE2E, 0x4F24F65D, 0x349EE246,
|
||||
0xF97B9D0E, 0x46DC5759, 0x4529F425, 0x80D17B42, 0x8E16F709,
|
||||
0x1B42206A, 0x4934A526, 0x391BB6DE, 0xB52EF45C, 0x26C30290,
|
||||
0xCBA23CAA, 0xA501A8C3, 0xD922C4F8, 0xE8824E53, 0x6F4255DC,
|
||||
0x5960B544, 0x58BC69D6, 0xCA936323, 0xFDDF053C, 0xC2E002D6,
|
||||
0x7D750755, 0x8A3F9CD1, 0x35F8F6F8, 0xFB7BD154, 0x65CFF94F,
|
||||
0x390A58DD, 0xD97C4093, 0x501CA2A3, 0x8EA5DEBC, 0xCA93461F,
|
||||
0xE02D984C, 0x126F8517, 0x39FDD887, 0x46241AE9, 0x777E854D,
|
||||
0xE2B36349, 0x58E3FA9F, 0x971DEF1E, 0x8E156228, 0xC0E14E9,
|
||||
0xA9A01BE6, 0xB318C990, 0x971680D6, 0xA1F359CE, 0x487E23F4,
|
||||
0x7DE465B0, 0x4E4C905E, 0x2A652959, 0x116FF167, 0x5C74AAB9,
|
||||
0x467BBE00, 0x4703ABA3, 0x1F776B9C, 0xE2570A84, 0xFEC7DB48,
|
||||
0x1BD5012, 0xFD0A2D5D, 0x7FCC29F2, 0x291304B6, 0x99D5D8ED,
|
||||
0xC7551C8, 0xFD12F38F, 0xBADE8892, 0xDF749997, 0xA5DAE2F,
|
||||
0x2B9FA269, 0x5C13CFED, 0x15E9A399, 0x54437F4E, 0xA72DB2AB,
|
||||
0x56186AA1, 0xFE4DB55C, 0xA34D7836, 0x2A879760, 0xC63FA94,
|
||||
0xAC18B207, 0x5FC78B3, 0x7F10621E, 0xA769E6B2, 0xEC9F4A11,
|
||||
0xCE3F982C, 0x62BA2EF5, 0xA5F239CD, 0x4FEFC920, 0x28DF4EB8,
|
||||
0x29EBF45A, 0x1E350CF6
|
||||
};
|
||||
|
||||
/* The source data is random across the q31_t range. Accessing it by word should
|
||||
remain random. */
|
||||
const q15_t * filtering_q15_inputs = (q15_t *) filtering_q31_inputs;
|
||||
const q7_t * filtering_q7_inputs = (q7_t *) filtering_q31_inputs;
|
||||
|
||||
const float32_t filtering_f32_inputs[FILTERING_MAX_BLOCKSIZE * FILTERING_MAX_M + FILTERING_MAX_NUMTAPS] =
|
||||
{
|
||||
43.0264275639 , -17.0525215570 , -94.8488973910 , -8.1924989580 , 7.2830326091 , 66.8368719314 , 33.9778190671 , 117.8652289772 ,
|
||||
-129.6077797465, -14.6420815368 , 18.0239223278 , 20.6760530292 , 55.0375037651 , 1.8674609862 , -85.6534302408 , -33.5750364909 ,
|
||||
29.2110949614 , 110.4727049460 , -94.1914619387 , -1.4084169343 , 83.5181653041 , 47.3073514127 , -13.3420621181 , 30.3389699104 ,
|
||||
12.1188124277 , 100.9730921941 , -114.0146362390, -77.5823200409 , 37.2019034618 , 40.0026301128 , -58.3387276630 , -34.9472398600 ,
|
||||
-5.1169678311 , -87.7660091118 , -150.5888601131, 56.0349370503 , 50.2168884079 , -74.2313236767 , 22.3648603560 , -6.8676387051 ,
|
||||
74.8957303680 , -90.1292012823 , -55.1436241586 , -66.6732976100 , -6.7918147615 , 7.7612697081 , 35.7892605979 , -20.0470508830 ,
|
||||
41.8369017546 , -143.7378056984, -41.9127158600 , -108.3531841158, -57.1917422289 , -124.2808828105, 38.9316388820 , -77.9212517405 ,
|
||||
37.1990818377 , -28.9545952748 , -155.6371057564, 45.8088886393 , 36.2537018275 , -6.5727656016 , -104.2070491921, 45.5583813729 ,
|
||||
-19.7674717059 , -80.4802190947 , -1.4444563441 , -42.2142256438 , 36.6546339194 , -57.0866498590 , 44.4677067511 , 65.7285753407 ,
|
||||
-103.8158864647, 25.4348723711 , -153.5419639389, 39.3608409474 , 49.1658103436 , 79.5570602275 , 75.2944095996 , 58.9394700746 ,
|
||||
-53.1018534392 , 33.4172444014 , 35.6224682287 , -64.4353396418 , -125.8464291251, -47.6072111617 , -26.2177687594 , -12.0061322096 ,
|
||||
-17.7887967585 , -28.2926175090 , -62.0691715749 , 40.5098573604 , -191.1123732593, 119.6750713043 , 19.6182375803 , -26.7615252921 ,
|
||||
2.2957847015 , -108.3436451287, -50.5906164995 , -5.6360985100 , -11.6772204201 , -84.2765293757 , -60.9317810068 , 82.0446350218 ,
|
||||
-70.2048296348 , 72.8738253222 , 60.2450218115 , 114.2741231228 , 46.8180775285 , 6.9915412654 , -8.9909197429 , -78.9165936808 ,
|
||||
66.4731535459 , -68.4235455651 , -79.8254597080 , -10.6308477115 , -62.6161569330 , -55.7744410292 , -11.8408366528 , 98.1034940997 ,
|
||||
35.8213741877 , -54.4694482732 , 86.9631830044 , -53.0343838122 , -47.4898642865 , -47.2010929590 , -31.3312639685 , -23.0908245172 ,
|
||||
12.0258009869 , -5.1098204703 , -9.8420230737 , -107.3328761158, 44.6810431959 , -17.9083820345 , -60.9753512872 , -7.5915088994 ,
|
||||
17.2250813329 , 57.9176125648 , 124.3004161362 , -63.1950908493 , 120.5788885640 , -44.1734238117 , -91.7408095116 , -43.5696066595 ,
|
||||
-49.9560710099 , -167.8513443296, -70.9437505499 , -46.4109705355 , -64.2264526456 , -13.9995803916 , -100.9548186356, 9.9101010575 ,
|
||||
-50.0615130815 , -55.7590145012 , -60.3195153388 , 61.7913378549 , -102.0850899209, 53.2360193126 , -25.8997883369 , 75.1445512333 ,
|
||||
-113.8148602310, 17.8027281119 , -19.5006822722 , -44.2169628471 , 107.5017084384 , -113.7909124666, -43.9735396033 , 7.6880981388 ,
|
||||
46.7384653508 , 9.9047443751 , 81.8646964362 , 132.3812863877 , -95.6959050236 , -68.5015813484 , 65.8586404494 , 18.5039353889 ,
|
||||
-30.1786166621 , -90.3098515667 , -22.9356228552 , -20.5778272423 , -2.2127786675 , -35.4418447703 , -51.8722915974 , -107.9024439078,
|
||||
-51.5940748232 , -51.7463262677 , 74.2795485984 , 94.2205022462 , 9.7016384049 , -47.3556083155 , -36.7822314478 , -151.6455525363,
|
||||
-15.7183814485 , 78.2063383182 , 0.1516414969 , 37.9304181609 , 20.6185902740 , -22.2164106778 , 6.1160554677 , 2.4061326953 ,
|
||||
-111.6681824598, -60.0858917090 , 75.1698614693 , -76.5787410444 , 28.3391655715 , -2.4946186443 , -68.0378899682 , 104.0893199171 ,
|
||||
-51.8319647254 , 38.8521710524 , 75.9114239564 , 73.9206172905 , -103.2533029987, 6.9002718274 , -36.6346436319 , -25.1990926265 ,
|
||||
1.5852145953 , -50.6438436795 , 21.5018844428 , -151.9305562846, -51.7326681814 , 21.4475994143 , 42.2564011921 , -74.0520586926 ,
|
||||
49.7370635809 , -13.2957534126 , 36.6746826778 , -31.7005492589 , 148.4894964268 , 79.7890632353 , 16.8856024809 , 16.1690460177 ,
|
||||
39.2665169484 , 117.2461167794 , -37.4827984831 , -47.8387803604 , -95.7025286193 , 34.3058214285 , -124.9536456028, 56.1640195764 ,
|
||||
94.3636873606 , 35.3992852810 , -38.3920852159 , -100.5738062016, -29.7837022314 , 42.9133913996 , -34.2715618187 , -14.3589115627 ,
|
||||
-16.5935468750 , 20.4574192236 , -88.7897972666 , -38.6285080386 , 53.3203422726 , 98.5991486746 , 122.7305462474 , 67.7902817187 ,
|
||||
5.1764117389 , 5.0632821624 , 21.9288789574 , -78.3140512638 , -21.2069682335 , 23.6342010925 , 34.4445769455 , 59.1346766615 ,
|
||||
28.9978778000 , 39.8121180845 , -17.1650033520 , -56.9174900874 , 17.8157086148 , -112.8801457350, -122.4019040408, 140.8669393157 ,
|
||||
-65.4664329639 , 40.6952775518 , 32.7260891658 , -43.2565155866 , 19.3945751928 , -20.1815002000 , -67.6601711640 , -18.1921178207 ,
|
||||
-35.6802153684 , 49.9550290306 , 131.4925251016 , -31.2940938167 , -5.2848453344 , -109.5580577933, 20.2437599390 , -8.8782958734 ,
|
||||
54.1836717264 , 7.2555852190 , -3.5698316137 , -51.9236786262 , 6.7861547980 , -104.4814551670, 45.8458629668 , 70.0890876844 ,
|
||||
38.3572837740 , 61.8024165129 , 68.0176962024 , -12.8193934080 , -21.4661610917 , -0.9377108815 , -74.2100679061 , 71.0490808147 ,
|
||||
91.9813889497 , -14.5797640164 , 3.5036749129 , -138.3605478356, -48.1501349794 , -16.0636922482 , -12.1334197606 , 15.0562207637 ,
|
||||
-34.0878176054 , 55.1075126157 , 97.3829871877 , 0.2053358099 , -94.8713267382 , 51.5460954054 , 21.2966946363 , 58.1331025047 ,
|
||||
-23.4599044132 , -19.3315856528 , -8.4497193577 , -1.9594679356 , -33.1906549336 , -144.6825417978, -57.1218958072 , 35.7353406097 ,
|
||||
61.4666549819 , 14.6536253128 , 82.1632196866 , -44.6230161723 , -91.1022589278 , -18.5737673927 , -136.8975612334, 56.9606788003 ,
|
||||
70.7059960183 , -68.2829345081 , -10.2629800455 , -53.6385325047 , -68.7928766204 , 88.2444688302 , 83.1412324801 , -102.9206928160,
|
||||
-68.2329763159 , -69.7552955469 , 108.2132269009 , -28.2582329307 , 5.6685898328 , -36.0392956840 , 43.3269513128 , -8.6436416796 ,
|
||||
-16.5054886972 , 11.5008791788 , 39.6923606683 , -28.9039554061 , 13.5938214364 , -23.6296332202 , 49.1171161163 , 53.1636857935 ,
|
||||
-62.9672053166 , -54.2594757384 , 48.3838956696 , 8.0469071555 , -33.6472086213 , -120.5381752144, 55.0880453111 , 17.8990740563 ,
|
||||
144.9402232336 , 101.7886229203 , -73.3666393712 , -16.4721379138 , -12.7447935685 , 101.8245160983 , -49.7026860415 , -15.1227790364 ,
|
||||
65.7430288442 , -131.8695390036, 10.2750933946 , 90.9752774838 , -26.5859990591 , -95.6962772568 , 76.2174589344 , 24.8796848060 ,
|
||||
-38.8938223046 , 54.1687774852 , -37.3585968996 , -34.6848570502 , 33.0151011570 , -55.8345877671 , -3.9009101671 , -31.5024971691 ,
|
||||
-9.6863895491 , 91.8719195957 , -58.9993249744 , -25.6887030614 , -8.0829472205 , 4.6386491741 , -71.4019697167 , -21.3734669095 ,
|
||||
86.2079144404 , 79.6823974266 , -0.0910915997 , 44.8067718095 , 58.7204020766 , 72.6856808976 , -50.3373732478 , -116.1175365534,
|
||||
-15.0884909384 , 5.4593772059 , -63.6553527905 , 37.3460388205 , -32.2399421679 , 95.7569350513 , -7.3700141964 , -56.0370832967 ,
|
||||
-41.7377150439 , -42.0042856519 , 12.5134312941 , 93.7845584531 , -32.4801087157 , -33.3976050318 , -24.2252126001 , -46.3199064467 ,
|
||||
-20.3704610276 , 15.8571376404 , 88.9127217235 , -33.1132582267 , -1.0005675836 , -28.1780471904 , 150.9349379135 , 38.0600520828 ,
|
||||
36.4338677563 , -3.3709201641 , 29.7709773016 , 16.5064119077 , 21.3147729463 , 110.6714300904 , 18.8406036507 , 14.8963298097 ,
|
||||
50.9975960392 , 16.3991140350 , -194.0805845907, -41.6723945839 , -74.8991127408 , -6.4587655805 , -0.6883628218 , -49.8709647175 ,
|
||||
194.2265120473 , 64.3043624521 , 16.0040882780 , 68.4032551772 , -43.4050313128 , 84.6826289824 , -28.1357565943 , 134.6895584120 ,
|
||||
-7.9746152680 , -95.6692886462 , -48.9444370342 , 79.4479343188 , -50.5345228122 , 52.4800633307 , -14.7735051703 , -20.1510237050 ,
|
||||
22.5049816980 , 64.4191999102 , 24.8385648232 , 99.4265041360 , 62.0189508473 , -28.3892600378 , -109.8842008564, -79.0407483407 ,
|
||||
18.3408112020 , 49.1650536089 , 31.5419844924 , -36.1160722679 , -132.9148081329, 10.4053531567 , -129.2463715470, -43.4602207151 ,
|
||||
-24.2420653292 , 91.5388317556 , 21.4762248190 , -44.3810909139 , 18.4098011282 , -45.8691164539 , -20.9831197962 , 16.2076792914 ,
|
||||
66.0224147666 , -13.6794615513 , 101.2163279622 , -62.4462618603 , 22.2040981785 , -52.3208382802 , -24.7909079016 , 58.5150375093 ,
|
||||
18.8569705105 , -55.6083430939 , 131.0273367422 , -34.5209015065 , 121.4357296573 , -77.2590299593 , -51.5929566898 , 5.0247131098 ,
|
||||
-23.8451707592 , -4.5912313547 , 31.1387246821 , 61.7019310824 , 49.1912429744 , -50.5836913031 , -74.8182600630 , -21.6209317022 ,
|
||||
20.9409464654 , -72.7870824583 , -28.3530746820 , -45.0794425434 , -13.4910629905 , -62.0158772255 , -34.1421181246 , 44.2844972784 ,
|
||||
8.4213193211 , 79.9349022793 , 60.0160502260 , 32.2272994080 , -72.2893887746 , 17.3063698247 , -134.6335742431, 64.6499736261 ,
|
||||
7.1411921919 , -37.5517577873 , 6.2405670930 , 117.1920927305 , 128.7420689815 , -3.1556854963 , -13.4100422909 , -11.9336372907 ,
|
||||
-8.6022400553 , -102.0033506666, -78.4696575074 , 15.0765861403 , -111.5219718576, -13.4162786508 , 38.2437013694 , 61.1637732561 ,
|
||||
-34.4804160003 , 107.4438003830 , -79.4193067813 , -81.1842853968 , -26.2622970331 , 132.3205425408 , -119.1464268477, 67.3048866598 ,
|
||||
103.3266736715 , -58.1865815617 , 27.6231908601 , -11.2004371750 , 26.0340617206 , 12.5696123916 , 0.6442714420 , -30.7393043544 ,
|
||||
1.5314955897 , 49.9110088250 , -106.1358721920, 51.1608329944 , -32.8684239794 , -27.7215905745 , -11.6450303367 , -36.7731678028 ,
|
||||
59.9383486599 , -4.6301990580 , 5.0361682939 , -10.5669407980 , 124.0908762205 , 35.8305364082 , -123.6216777114, -74.2569079167 ,
|
||||
-56.7651776816 , 16.0736385582 , 23.5030632215 , -110.6764295938, 44.3086821806 , 9.4452708243 , 5.3300080251 , 39.0483916714 ,
|
||||
151.4550562868 , 62.8957092621 , -116.8103461233, 5.1129927759 , -33.2252515135 , -9.4522506046 , 22.7026048372 , -15.5264414569 ,
|
||||
71.2087620034 , 19.1191568332 , 50.3019546809 , -5.6096922409 , 22.9344126462 , -7.7591876203 , 31.8949515564 , -58.4253952381 ,
|
||||
66.4341297173 , -19.0583083044 , 96.7695087855 , 20.4934280047 , 4.9544603116 , -20.8288135920 , -173.2659655408, -62.4883621640 ,
|
||||
-48.5528422703 , 12.1437504278 , 60.2482234666 , -19.6072312919 , -34.6320214291 , 129.0089698963 , -50.9042160618 , 98.3952661477 ,
|
||||
-4.7051792479 , -13.1768910826 , 69.5138802139 , 58.5748201565 , -45.9385652563 , 151.7952104306 , 34.2541941013 , -58.0417838381 ,
|
||||
28.1480473670 , 46.4006562684 , 97.7001828545 , 4.0855607626 , -32.6097018162 , 16.8913949959 , 105.7266202978 , -89.3978374651 ,
|
||||
-60.9338593128 , -41.2220734230 , 49.9393070783 , 95.0974764854 , 49.2498366456 , 58.6214364590 , 34.1113830569 , 45.6634098874 ,
|
||||
-22.5356086770 , -97.1978653617 , 86.5565049535 , 70.6118545777 , -30.6978082909 , 118.7238621666 , 14.5922386932 , 11.3449652072 ,
|
||||
65.6007783405 , 82.6369678204 , -52.0390492248 , -47.0160551227 , -95.5142448634 , 99.7162626888 , -36.5523815090 , -42.8042935534 ,
|
||||
68.3566199798 , -13.8451547552 , -71.1629911780 , 36.2989433752 , -32.4867163365 , 112.4079947071 , -75.6295117422 , 47.5276421639 ,
|
||||
51.8078250755 , -26.8715188457 , -9.6291144797 , 40.1999849640 , -38.4634033246 , 40.9764960915 , -26.1715730268 , 36.5996396515 ,
|
||||
-26.9924731886 , 53.7879986570 , -83.1658398348 , 23.6381378489 , 43.8794937753 , -55.4133836419 , 90.0266130838 , 14.1036181982 ,
|
||||
-18.1225736715 , 85.1363181151 , -62.5970846379 , -18.5291947838 , -25.7341986703 , -49.7061342931 , -59.0442763971 , 50.8960636803 ,
|
||||
-87.6471123430 , -36.7217762531 , 22.5952364054 , 11.1107885650 , -0.5377327229 , 160.8145792630 , 73.3103441505 , 10.1656872354 ,
|
||||
-50.4554350397 , -57.3478171016 , -15.4201715357 , -26.9135446491 , -4.9891264771 , -37.0226770057 , -80.9919535641 , 50.4418660876 ,
|
||||
-25.8517575250 , -69.9538258421 , -17.5730160671 , 15.9405836751 , 113.9545230349 , -46.1040379057 , -94.2458635014 , -69.0338522452 ,
|
||||
43.5813790265 , 107.1836101171 , -55.1012654323 , -77.1529555887 , -33.1530320656 , -94.5582659641 , -53.6837586872 , 27.0680381378 ,
|
||||
93.9385415207 , -61.0955216188 , 18.0530957225 , 7.9150142320 , -12.1218191587 , 34.0173961457 , 40.0084937565 , 9.8119275580 ,
|
||||
44.2065861274 , -1.8718514394 , 67.4740024215 , 46.7391150131 , 207.2404815875 , 45.1635364462 , 43.3580102761 , -44.0244218674 ,
|
||||
83.2387206007 , -8.6441851856 , 12.3993902588 , -22.5091685270 , -19.8332981376 , 97.9196509289 , -76.6720306234 , 28.9740705859 ,
|
||||
121.9415248016 , 9.6656982611 , -51.0996453694 , 37.3704374740 , 74.7589840907 , -113.4066752631, 120.0029566342 , -105.3786221360,
|
||||
81.8152755619 , -13.4979932982 , -21.4680758393 , -85.1088235539 , -65.3610798409 , -35.0444139470 , -48.0220794487 , -41.6210317362 ,
|
||||
33.1212995259 , -82.1480936443 , -10.5479715135 , 76.4601917004 , 42.1983651157 , 92.6104239912 , -42.3536237955 , -24.5644182272 ,
|
||||
30.4446637772 , -90.2899420489 , 63.6723540422 , 103.0895811428 , 64.1706769263 , -10.7069812309 , 21.8927240409 , 6.3571071738 ,
|
||||
57.1457649358 , -52.9866276448 , 66.0981829072 , -29.5372056881 , -79.2252039810 , -136.2440652798, -57.0106422562 , 86.8203548141 ,
|
||||
66.4244149837 , 53.3230426111 , -66.1283059222 , -131.0402660353, 8.0548411081 , 122.9088988100 , 1.2626894208 , -60.5059112373 ,
|
||||
-68.8707203082 , -6.4747987200 , 85.8411327244 , 99.9624156733 , 90.4197864338 , -35.9630441182 , -22.9158275507 , -17.3660128776 ,
|
||||
16.7845345761 , 34.7219749782 , -39.3513765878 , 1.0460702756 , -60.9494500182 , 20.0900333387 , -85.9636743832 , 88.4400782168 ,
|
||||
15.0729628728 , 61.5499846243 , 11.8579871757 , 107.8617581581 , -42.9393027864 , -62.8422307621 , -19.0589600542 , 4.0750325807 ,
|
||||
-36.0651825425 , 55.7638724501 , -10.4691736080 , -55.5672537178 , -61.2061519915 , -21.1885348576 , -131.2535612498, 24.7463552676 ,
|
||||
22.9426321237 , 14.3038202264 , -138.0926317438, -59.0892900856 , -162.5416439986, 7.1307658250 , -141.1236672256, -4.7173618068 ,
|
||||
-16.7741532807 , -68.2615451173 , -2.6608701102 , 84.1978109826 , -11.3446202072 , 59.9630033088 , -1.8994925010 , -37.9301641959 ,
|
||||
-119.4435600954, -11.4587491646 , 12.2423215240 , -7.3169898616 , -67.0373621128 , 36.0198843055 , 53.9791315249 , -134.5885680695,
|
||||
-83.8330811965 , -16.6714816463 , -8.8498552035 , -24.0513088196 , -22.9444328877 , -37.7961441531 , 25.1975736186 , -136.1611637464,
|
||||
-5.0843464033 , -10.3939554694 , 20.7422826935 , 75.6854136623 , 46.4179626736 , -57.0052830175 , 7.3457235521 , -51.5504447254 ,
|
||||
-158.4375751701, -200.2426967181, -48.1234996261 , 1.6623945527 , 21.1746524375 , 99.4092980367 , -2.3206772903 , 45.7989166757 ,
|
||||
2.0181548348 , -88.0556010969 , -59.1527212096 , 47.3607925077 , -10.4181140309 , 56.3558125650 , -8.9799125560 , -30.0376711812 ,
|
||||
-36.7132904688 , 35.7785050392 , -13.0763909369 , -2.1855594714 , 18.1550954005 , -28.6711803575 , -55.4495172398 , -2.8812973198 ,
|
||||
-59.9575059158 , 40.0588875786 , 57.4713686602 , -3.2835144853 , -36.7193552111 , -64.9415131516 , -166.9555466445, -23.5556853844 ,
|
||||
-54.9408569587 , -35.2310451959 , 21.3345143458 , 65.7590671151 , 51.2214538168 , 46.1271939944 , -42.2235267919 , 127.2329928299 ,
|
||||
105.2391778600 , 17.6726845966 , -129.9021148044, 8.7065613044 , -94.0987112511 , -3.5375742950 , -23.1385452379 , 60.6219530633 ,
|
||||
92.5445564235 , 48.5111974469 , -52.5699309159 , -60.0634811685 , 25.9034368684 , 140.0249495491 , 1.5918852392 , 38.0266038291 ,
|
||||
17.5588710703 , 3.4294066089 , -27.6748782173 , 59.6182974489 , -35.2924781853 , -38.6198576115 , -13.6119803198 , 7.8375587489 ,
|
||||
22.7250686519 , -28.3524510951 , -34.4269062817 , 22.6464817325 , -61.6528147860 , -5.9782002429 , 61.4730771294 , 43.5582379527 ,
|
||||
55.6862408270 , 87.8745651631 , 46.3401042715 , -19.8780979663 , 74.1272633369 , 29.8590452377 , -12.8665765140 , 34.2931401219 ,
|
||||
53.9279617551 , -16.9017895140 , -70.1527553166 , -79.6367897992 , 109.3728271017 , -129.2214826835, -53.4644539730 , -51.5654458993 ,
|
||||
17.6062148433 , 3.5090251835 , 74.2615941204 , -109.3431097845, 40.1403465151 , 28.8714561280 , 94.0868659302 , -19.0047033845 ,
|
||||
-60.0967410050 , -19.0998457619 , -67.2027075128 , 72.0711434846 , -17.8737851232 , 123.7050551274 , 132.6331504104 , 25.5018761009 ,
|
||||
-36.7817189239 , -29.1580893235 , -6.5848563828 , 90.2868948516 , -35.7017258498 , -68.5675432955 , -52.4888589786 , 47.1377730021 ,
|
||||
-7.4546621940 , -52.0657517138 , -49.0404829633 , -114.6910280126, -117.6819819437, -32.7856729408 , 31.8232065591 , 12.1192973039 ,
|
||||
35.2678513420 , -1.0336778293 , 30.7021249679 , 127.0442906046 , -84.8457819393 , 28.9862843096 , -47.3524701726 , -126.1094998460,
|
||||
-2.9700276582 , -2.4956545870 , -53.8624121141 , -85.2114117637 , 76.9057985618 , 137.1205201755 , -19.0830817212 , 14.3407526579 ,
|
||||
-56.5921994449 , -25.6084873186 , -44.9470801106 , -133.3139496090, 0.3487447576 , 33.4499716730 , 34.7126257844 , -9.3307383323 ,
|
||||
27.2996276947 , 10.8765676134 , -91.1032360444 , -90.9584216222 , 1.6981490570 , 96.8557438791 , 56.7726390913 , -44.3246449237 ,
|
||||
52.3260643361 , 21.5551140465 , 27.4535327381 , 2.0072717479 , 7.4823125629 , 77.1185863870 , 16.1372262663 , -10.7206012957 ,
|
||||
66.8830091413 , 49.3523828287 , 54.0855375598 , 30.8570349345 , -10.9255375390 , 62.3910624674 , 30.9238561381 , 0.3352881853 ,
|
||||
72.1022806197 , -28.8319885008 , 23.3335288806 , 46.8999035980 , -67.0984424822 , -164.7917209112, 42.5767681360 , -92.4668227688 ,
|
||||
43.8491734282 , -17.1126540408 , 37.4819594334 , 69.0774409673 , -39.3530526854 , -14.0693747124 , -60.2520781215 , -80.3860105519 ,
|
||||
32.6689956840 , 15.3393042576 , -18.5529761307 , 97.3942151573 , -4.4462855745 , 13.7614349817 , 158.3358780719 , -44.7258299667 ,
|
||||
-17.7741912819 , 116.5136962268 , -33.6261057820 , 22.8344441288 , -155.1423976144, 5.7070117893 , -22.7906543902 , -45.0633909283 ,
|
||||
-13.9329987929 , -66.0848932507 , 1.1383038109 , 123.8386958483 , 67.6662401589 , 45.9152963554 , -27.4397697462 , 97.9596747354 ,
|
||||
-6.3544655181 , 29.0832146722 , 96.3468162499 , 32.4535976137 , -91.0650399301 , 2.7293262791 , 70.7853483111 , -92.3655274571 ,
|
||||
69.0359217256 , 83.1530567979 , 35.8375091111 , 7.3393552348 , -95.1770165365 , 76.4905790891 , 55.6253140577 , -29.5315327050 ,
|
||||
-16.5935468750 , 20.4574192236 , -88.7897972666 , -38.6285080386 , 53.3203422726 , 98.5991486746 , 122.7305462474 , 67.7902817187 ,
|
||||
5.1764117389 , 5.0632821624 , 21.9288789574 , -78.3140512638 , -21.2069682335 , 23.6342010925 , 34.4445769455 , 59.1346766615 ,
|
||||
28.9978778000 , 39.8121180845 , -17.1650033520 , -56.9174900874 , 17.8157086148 , -112.8801457350, -122.4019040408, 140.8669393157 ,
|
||||
-65.4664329639 , 40.6952775518 , 32.7260891658 , -43.2565155866 , 19.3945751928 , -20.1815002000 , -67.6601711640 , -18.1921178207 ,
|
||||
-35.6802153684 , -19.6571455162
|
||||
};
|
||||
|
||||
const float64_t filtering_f64_inputs[FILTERING_MAX_BLOCKSIZE * FILTERING_MAX_M + FILTERING_MAX_NUMTAPS] =
|
||||
{
|
||||
43.0264275639 , -17.0525215570 , -94.8488973910 , -8.1924989580 , 7.2830326091 , 66.8368719314 , 33.9778190671 , 117.8652289772 ,
|
||||
-129.6077797465, -14.6420815368 , 18.0239223278 , 20.6760530292 , 55.0375037651 , 1.8674609862 , -85.6534302408 , -33.5750364909 ,
|
||||
29.2110949614 , 110.4727049460 , -94.1914619387 , -1.4084169343 , 83.5181653041 , 47.3073514127 , -13.3420621181 , 30.3389699104 ,
|
||||
12.1188124277 , 100.9730921941 , -114.0146362390, -77.5823200409 , 37.2019034618 , 40.0026301128 , -58.3387276630 , -34.9472398600 ,
|
||||
-5.1169678311 , -87.7660091118 , -150.5888601131, 56.0349370503 , 50.2168884079 , -74.2313236767 , 22.3648603560 , -6.8676387051 ,
|
||||
74.8957303680 , -90.1292012823 , -55.1436241586 , -66.6732976100 , -6.7918147615 , 7.7612697081 , 35.7892605979 , -20.0470508830 ,
|
||||
41.8369017546 , -143.7378056984, -41.9127158600 , -108.3531841158, -57.1917422289 , -124.2808828105, 38.9316388820 , -77.9212517405 ,
|
||||
37.1990818377 , -28.9545952748 , -155.6371057564, 45.8088886393 , 36.2537018275 , -6.5727656016 , -104.2070491921, 45.5583813729 ,
|
||||
-19.7674717059 , -80.4802190947 , -1.4444563441 , -42.2142256438 , 36.6546339194 , -57.0866498590 , 44.4677067511 , 65.7285753407 ,
|
||||
-103.8158864647, 25.4348723711 , -153.5419639389, 39.3608409474 , 49.1658103436 , 79.5570602275 , 75.2944095996 , 58.9394700746 ,
|
||||
-53.1018534392 , 33.4172444014 , 35.6224682287 , -64.4353396418 , -125.8464291251, -47.6072111617 , -26.2177687594 , -12.0061322096 ,
|
||||
-17.7887967585 , -28.2926175090 , -62.0691715749 , 40.5098573604 , -191.1123732593, 119.6750713043 , 19.6182375803 , -26.7615252921 ,
|
||||
2.2957847015 , -108.3436451287, -50.5906164995 , -5.6360985100 , -11.6772204201 , -84.2765293757 , -60.9317810068 , 82.0446350218 ,
|
||||
-70.2048296348 , 72.8738253222 , 60.2450218115 , 114.2741231228 , 46.8180775285 , 6.9915412654 , -8.9909197429 , -78.9165936808 ,
|
||||
66.4731535459 , -68.4235455651 , -79.8254597080 , -10.6308477115 , -62.6161569330 , -55.7744410292 , -11.8408366528 , 98.1034940997 ,
|
||||
35.8213741877 , -54.4694482732 , 86.9631830044 , -53.0343838122 , -47.4898642865 , -47.2010929590 , -31.3312639685 , -23.0908245172 ,
|
||||
12.0258009869 , -5.1098204703 , -9.8420230737 , -107.3328761158, 44.6810431959 , -17.9083820345 , -60.9753512872 , -7.5915088994 ,
|
||||
17.2250813329 , 57.9176125648 , 124.3004161362 , -63.1950908493 , 120.5788885640 , -44.1734238117 , -91.7408095116 , -43.5696066595 ,
|
||||
-49.9560710099 , -167.8513443296, -70.9437505499 , -46.4109705355 , -64.2264526456 , -13.9995803916 , -100.9548186356, 9.9101010575 ,
|
||||
-50.0615130815 , -55.7590145012 , -60.3195153388 , 61.7913378549 , -102.0850899209, 53.2360193126 , -25.8997883369 , 75.1445512333 ,
|
||||
-113.8148602310, 17.8027281119 , -19.5006822722 , -44.2169628471 , 107.5017084384 , -113.7909124666, -43.9735396033 , 7.6880981388 ,
|
||||
46.7384653508 , 9.9047443751 , 81.8646964362 , 132.3812863877 , -95.6959050236 , -68.5015813484 , 65.8586404494 , 18.5039353889 ,
|
||||
-30.1786166621 , -90.3098515667 , -22.9356228552 , -20.5778272423 , -2.2127786675 , -35.4418447703 , -51.8722915974 , -107.9024439078,
|
||||
-51.5940748232 , -51.7463262677 , 74.2795485984 , 94.2205022462 , 9.7016384049 , -47.3556083155 , -36.7822314478 , -151.6455525363,
|
||||
-15.7183814485 , 78.2063383182 , 0.1516414969 , 37.9304181609 , 20.6185902740 , -22.2164106778 , 6.1160554677 , 2.4061326953 ,
|
||||
-111.6681824598, -60.0858917090 , 75.1698614693 , -76.5787410444 , 28.3391655715 , -2.4946186443 , -68.0378899682 , 104.0893199171 ,
|
||||
-51.8319647254 , 38.8521710524 , 75.9114239564 , 73.9206172905 , -103.2533029987, 6.9002718274 , -36.6346436319 , -25.1990926265 ,
|
||||
1.5852145953 , -50.6438436795 , 21.5018844428 , -151.9305562846, -51.7326681814 , 21.4475994143 , 42.2564011921 , -74.0520586926 ,
|
||||
49.7370635809 , -13.2957534126 , 36.6746826778 , -31.7005492589 , 148.4894964268 , 79.7890632353 , 16.8856024809 , 16.1690460177 ,
|
||||
39.2665169484 , 117.2461167794 , -37.4827984831 , -47.8387803604 , -95.7025286193 , 34.3058214285 , -124.9536456028, 56.1640195764 ,
|
||||
94.3636873606 , 35.3992852810 , -38.3920852159 , -100.5738062016, -29.7837022314 , 42.9133913996 , -34.2715618187 , -14.3589115627 ,
|
||||
-16.5935468750 , 20.4574192236 , -88.7897972666 , -38.6285080386 , 53.3203422726 , 98.5991486746 , 122.7305462474 , 67.7902817187 ,
|
||||
5.1764117389 , 5.0632821624 , 21.9288789574 , -78.3140512638 , -21.2069682335 , 23.6342010925 , 34.4445769455 , 59.1346766615 ,
|
||||
28.9978778000 , 39.8121180845 , -17.1650033520 , -56.9174900874 , 17.8157086148 , -112.8801457350, -122.4019040408, 140.8669393157 ,
|
||||
-65.4664329639 , 40.6952775518 , 32.7260891658 , -43.2565155866 , 19.3945751928 , -20.1815002000 , -67.6601711640 , -18.1921178207 ,
|
||||
-35.6802153684 , 49.9550290306 , 131.4925251016 , -31.2940938167 , -5.2848453344 , -109.5580577933, 20.2437599390 , -8.8782958734 ,
|
||||
54.1836717264 , 7.2555852190 , -3.5698316137 , -51.9236786262 , 6.7861547980 , -104.4814551670, 45.8458629668 , 70.0890876844 ,
|
||||
38.3572837740 , 61.8024165129 , 68.0176962024 , -12.8193934080 , -21.4661610917 , -0.9377108815 , -74.2100679061 , 71.0490808147 ,
|
||||
91.9813889497 , -14.5797640164 , 3.5036749129 , -138.3605478356, -48.1501349794 , -16.0636922482 , -12.1334197606 , 15.0562207637 ,
|
||||
-34.0878176054 , 55.1075126157 , 97.3829871877 , 0.2053358099 , -94.8713267382 , 51.5460954054 , 21.2966946363 , 58.1331025047 ,
|
||||
-23.4599044132 , -19.3315856528 , -8.4497193577 , -1.9594679356 , -33.1906549336 , -144.6825417978, -57.1218958072 , 35.7353406097 ,
|
||||
61.4666549819 , 14.6536253128 , 82.1632196866 , -44.6230161723 , -91.1022589278 , -18.5737673927 , -136.8975612334, 56.9606788003 ,
|
||||
70.7059960183 , -68.2829345081 , -10.2629800455 , -53.6385325047 , -68.7928766204 , 88.2444688302 , 83.1412324801 , -102.9206928160,
|
||||
-68.2329763159 , -69.7552955469 , 108.2132269009 , -28.2582329307 , 5.6685898328 , -36.0392956840 , 43.3269513128 , -8.6436416796 ,
|
||||
-16.5054886972 , 11.5008791788 , 39.6923606683 , -28.9039554061 , 13.5938214364 , -23.6296332202 , 49.1171161163 , 53.1636857935 ,
|
||||
-62.9672053166 , -54.2594757384 , 48.3838956696 , 8.0469071555 , -33.6472086213 , -120.5381752144, 55.0880453111 , 17.8990740563 ,
|
||||
144.9402232336 , 101.7886229203 , -73.3666393712 , -16.4721379138 , -12.7447935685 , 101.8245160983 , -49.7026860415 , -15.1227790364 ,
|
||||
65.7430288442 , -131.8695390036, 10.2750933946 , 90.9752774838 , -26.5859990591 , -95.6962772568 , 76.2174589344 , 24.8796848060 ,
|
||||
-38.8938223046 , 54.1687774852 , -37.3585968996 , -34.6848570502 , 33.0151011570 , -55.8345877671 , -3.9009101671 , -31.5024971691 ,
|
||||
-9.6863895491 , 91.8719195957 , -58.9993249744 , -25.6887030614 , -8.0829472205 , 4.6386491741 , -71.4019697167 , -21.3734669095 ,
|
||||
86.2079144404 , 79.6823974266 , -0.0910915997 , 44.8067718095 , 58.7204020766 , 72.6856808976 , -50.3373732478 , -116.1175365534,
|
||||
-15.0884909384 , 5.4593772059 , -63.6553527905 , 37.3460388205 , -32.2399421679 , 95.7569350513 , -7.3700141964 , -56.0370832967 ,
|
||||
-41.7377150439 , -42.0042856519 , 12.5134312941 , 93.7845584531 , -32.4801087157 , -33.3976050318 , -24.2252126001 , -46.3199064467 ,
|
||||
-20.3704610276 , 15.8571376404 , 88.9127217235 , -33.1132582267 , -1.0005675836 , -28.1780471904 , 150.9349379135 , 38.0600520828 ,
|
||||
36.4338677563 , -3.3709201641 , 29.7709773016 , 16.5064119077 , 21.3147729463 , 110.6714300904 , 18.8406036507 , 14.8963298097 ,
|
||||
50.9975960392 , 16.3991140350 , -194.0805845907, -41.6723945839 , -74.8991127408 , -6.4587655805 , -0.6883628218 , -49.8709647175 ,
|
||||
194.2265120473 , 64.3043624521 , 16.0040882780 , 68.4032551772 , -43.4050313128 , 84.6826289824 , -28.1357565943 , 134.6895584120 ,
|
||||
-7.9746152680 , -95.6692886462 , -48.9444370342 , 79.4479343188 , -50.5345228122 , 52.4800633307 , -14.7735051703 , -20.1510237050 ,
|
||||
22.5049816980 , 64.4191999102 , 24.8385648232 , 99.4265041360 , 62.0189508473 , -28.3892600378 , -109.8842008564, -79.0407483407 ,
|
||||
18.3408112020 , 49.1650536089 , 31.5419844924 , -36.1160722679 , -132.9148081329, 10.4053531567 , -129.2463715470, -43.4602207151 ,
|
||||
-24.2420653292 , 91.5388317556 , 21.4762248190 , -44.3810909139 , 18.4098011282 , -45.8691164539 , -20.9831197962 , 16.2076792914 ,
|
||||
66.0224147666 , -13.6794615513 , 101.2163279622 , -62.4462618603 , 22.2040981785 , -52.3208382802 , -24.7909079016 , 58.5150375093 ,
|
||||
18.8569705105 , -55.6083430939 , 131.0273367422 , -34.5209015065 , 121.4357296573 , -77.2590299593 , -51.5929566898 , 5.0247131098 ,
|
||||
-23.8451707592 , -4.5912313547 , 31.1387246821 , 61.7019310824 , 49.1912429744 , -50.5836913031 , -74.8182600630 , -21.6209317022 ,
|
||||
20.9409464654 , -72.7870824583 , -28.3530746820 , -45.0794425434 , -13.4910629905 , -62.0158772255 , -34.1421181246 , 44.2844972784 ,
|
||||
8.4213193211 , 79.9349022793 , 60.0160502260 , 32.2272994080 , -72.2893887746 , 17.3063698247 , -134.6335742431, 64.6499736261 ,
|
||||
7.1411921919 , -37.5517577873 , 6.2405670930 , 117.1920927305 , 128.7420689815 , -3.1556854963 , -13.4100422909 , -11.9336372907 ,
|
||||
-8.6022400553 , -102.0033506666, -78.4696575074 , 15.0765861403 , -111.5219718576, -13.4162786508 , 38.2437013694 , 61.1637732561 ,
|
||||
-34.4804160003 , 107.4438003830 , -79.4193067813 , -81.1842853968 , -26.2622970331 , 132.3205425408 , -119.1464268477, 67.3048866598 ,
|
||||
103.3266736715 , -58.1865815617 , 27.6231908601 , -11.2004371750 , 26.0340617206 , 12.5696123916 , 0.6442714420 , -30.7393043544 ,
|
||||
1.5314955897 , 49.9110088250 , -106.1358721920, 51.1608329944 , -32.8684239794 , -27.7215905745 , -11.6450303367 , -36.7731678028 ,
|
||||
59.9383486599 , -4.6301990580 , 5.0361682939 , -10.5669407980 , 124.0908762205 , 35.8305364082 , -123.6216777114, -74.2569079167 ,
|
||||
-56.7651776816 , 16.0736385582 , 23.5030632215 , -110.6764295938, 44.3086821806 , 9.4452708243 , 5.3300080251 , 39.0483916714 ,
|
||||
151.4550562868 , 62.8957092621 , -116.8103461233, 5.1129927759 , -33.2252515135 , -9.4522506046 , 22.7026048372 , -15.5264414569 ,
|
||||
71.2087620034 , 19.1191568332 , 50.3019546809 , -5.6096922409 , 22.9344126462 , -7.7591876203 , 31.8949515564 , -58.4253952381 ,
|
||||
66.4341297173 , -19.0583083044 , 96.7695087855 , 20.4934280047 , 4.9544603116 , -20.8288135920 , -173.2659655408, -62.4883621640 ,
|
||||
-48.5528422703 , 12.1437504278 , 60.2482234666 , -19.6072312919 , -34.6320214291 , 129.0089698963 , -50.9042160618 , 98.3952661477 ,
|
||||
-4.7051792479 , -13.1768910826 , 69.5138802139 , 58.5748201565 , -45.9385652563 , 151.7952104306 , 34.2541941013 , -58.0417838381 ,
|
||||
28.1480473670 , 46.4006562684 , 97.7001828545 , 4.0855607626 , -32.6097018162 , 16.8913949959 , 105.7266202978 , -89.3978374651 ,
|
||||
-60.9338593128 , -41.2220734230 , 49.9393070783 , 95.0974764854 , 49.2498366456 , 58.6214364590 , 34.1113830569 , 45.6634098874 ,
|
||||
-22.5356086770 , -97.1978653617 , 86.5565049535 , 70.6118545777 , -30.6978082909 , 118.7238621666 , 14.5922386932 , 11.3449652072 ,
|
||||
65.6007783405 , 82.6369678204 , -52.0390492248 , -47.0160551227 , -95.5142448634 , 99.7162626888 , -36.5523815090 , -42.8042935534 ,
|
||||
68.3566199798 , -13.8451547552 , -71.1629911780 , 36.2989433752 , -32.4867163365 , 112.4079947071 , -75.6295117422 , 47.5276421639 ,
|
||||
51.8078250755 , -26.8715188457 , -9.6291144797 , 40.1999849640 , -38.4634033246 , 40.9764960915 , -26.1715730268 , 36.5996396515 ,
|
||||
-26.9924731886 , 53.7879986570 , -83.1658398348 , 23.6381378489 , 43.8794937753 , -55.4133836419 , 90.0266130838 , 14.1036181982 ,
|
||||
-18.1225736715 , 85.1363181151 , -62.5970846379 , -18.5291947838 , -25.7341986703 , -49.7061342931 , -59.0442763971 , 50.8960636803 ,
|
||||
-87.6471123430 , -36.7217762531 , 22.5952364054 , 11.1107885650 , -0.5377327229 , 160.8145792630 , 73.3103441505 , 10.1656872354 ,
|
||||
-50.4554350397 , -57.3478171016 , -15.4201715357 , -26.9135446491 , -4.9891264771 , -37.0226770057 , -80.9919535641 , 50.4418660876 ,
|
||||
-25.8517575250 , -69.9538258421 , -17.5730160671 , 15.9405836751 , 113.9545230349 , -46.1040379057 , -94.2458635014 , -69.0338522452 ,
|
||||
43.5813790265 , 107.1836101171 , -55.1012654323 , -77.1529555887 , -33.1530320656 , -94.5582659641 , -53.6837586872 , 27.0680381378 ,
|
||||
93.9385415207 , -61.0955216188 , 18.0530957225 , 7.9150142320 , -12.1218191587 , 34.0173961457 , 40.0084937565 , 9.8119275580 ,
|
||||
44.2065861274 , -1.8718514394 , 67.4740024215 , 46.7391150131 , 207.2404815875 , 45.1635364462 , 43.3580102761 , -44.0244218674 ,
|
||||
83.2387206007 , -8.6441851856 , 12.3993902588 , -22.5091685270 , -19.8332981376 , 97.9196509289 , -76.6720306234 , 28.9740705859 ,
|
||||
121.9415248016 , 9.6656982611 , -51.0996453694 , 37.3704374740 , 74.7589840907 , -113.4066752631, 120.0029566342 , -105.3786221360,
|
||||
81.8152755619 , -13.4979932982 , -21.4680758393 , -85.1088235539 , -65.3610798409 , -35.0444139470 , -48.0220794487 , -41.6210317362 ,
|
||||
33.1212995259 , -82.1480936443 , -10.5479715135 , 76.4601917004 , 42.1983651157 , 92.6104239912 , -42.3536237955 , -24.5644182272 ,
|
||||
30.4446637772 , -90.2899420489 , 63.6723540422 , 103.0895811428 , 64.1706769263 , -10.7069812309 , 21.8927240409 , 6.3571071738 ,
|
||||
57.1457649358 , -52.9866276448 , 66.0981829072 , -29.5372056881 , -79.2252039810 , -136.2440652798, -57.0106422562 , 86.8203548141 ,
|
||||
66.4244149837 , 53.3230426111 , -66.1283059222 , -131.0402660353, 8.0548411081 , 122.9088988100 , 1.2626894208 , -60.5059112373 ,
|
||||
-68.8707203082 , -6.4747987200 , 85.8411327244 , 99.9624156733 , 90.4197864338 , -35.9630441182 , -22.9158275507 , -17.3660128776 ,
|
||||
16.7845345761 , 34.7219749782 , -39.3513765878 , 1.0460702756 , -60.9494500182 , 20.0900333387 , -85.9636743832 , 88.4400782168 ,
|
||||
15.0729628728 , 61.5499846243 , 11.8579871757 , 107.8617581581 , -42.9393027864 , -62.8422307621 , -19.0589600542 , 4.0750325807 ,
|
||||
-36.0651825425 , 55.7638724501 , -10.4691736080 , -55.5672537178 , -61.2061519915 , -21.1885348576 , -131.2535612498, 24.7463552676 ,
|
||||
22.9426321237 , 14.3038202264 , -138.0926317438, -59.0892900856 , -162.5416439986, 7.1307658250 , -141.1236672256, -4.7173618068 ,
|
||||
-16.7741532807 , -68.2615451173 , -2.6608701102 , 84.1978109826 , -11.3446202072 , 59.9630033088 , -1.8994925010 , -37.9301641959 ,
|
||||
-119.4435600954, -11.4587491646 , 12.2423215240 , -7.3169898616 , -67.0373621128 , 36.0198843055 , 53.9791315249 , -134.5885680695,
|
||||
-83.8330811965 , -16.6714816463 , -8.8498552035 , -24.0513088196 , -22.9444328877 , -37.7961441531 , 25.1975736186 , -136.1611637464,
|
||||
-5.0843464033 , -10.3939554694 , 20.7422826935 , 75.6854136623 , 46.4179626736 , -57.0052830175 , 7.3457235521 , -51.5504447254 ,
|
||||
-158.4375751701, -200.2426967181, -48.1234996261 , 1.6623945527 , 21.1746524375 , 99.4092980367 , -2.3206772903 , 45.7989166757 ,
|
||||
2.0181548348 , -88.0556010969 , -59.1527212096 , 47.3607925077 , -10.4181140309 , 56.3558125650 , -8.9799125560 , -30.0376711812 ,
|
||||
-36.7132904688 , 35.7785050392 , -13.0763909369 , -2.1855594714 , 18.1550954005 , -28.6711803575 , -55.4495172398 , -2.8812973198 ,
|
||||
-59.9575059158 , 40.0588875786 , 57.4713686602 , -3.2835144853 , -36.7193552111 , -64.9415131516 , -166.9555466445, -23.5556853844 ,
|
||||
-54.9408569587 , -35.2310451959 , 21.3345143458 , 65.7590671151 , 51.2214538168 , 46.1271939944 , -42.2235267919 , 127.2329928299 ,
|
||||
105.2391778600 , 17.6726845966 , -129.9021148044, 8.7065613044 , -94.0987112511 , -3.5375742950 , -23.1385452379 , 60.6219530633 ,
|
||||
92.5445564235 , 48.5111974469 , -52.5699309159 , -60.0634811685 , 25.9034368684 , 140.0249495491 , 1.5918852392 , 38.0266038291 ,
|
||||
17.5588710703 , 3.4294066089 , -27.6748782173 , 59.6182974489 , -35.2924781853 , -38.6198576115 , -13.6119803198 , 7.8375587489 ,
|
||||
22.7250686519 , -28.3524510951 , -34.4269062817 , 22.6464817325 , -61.6528147860 , -5.9782002429 , 61.4730771294 , 43.5582379527 ,
|
||||
55.6862408270 , 87.8745651631 , 46.3401042715 , -19.8780979663 , 74.1272633369 , 29.8590452377 , -12.8665765140 , 34.2931401219 ,
|
||||
53.9279617551 , -16.9017895140 , -70.1527553166 , -79.6367897992 , 109.3728271017 , -129.2214826835, -53.4644539730 , -51.5654458993 ,
|
||||
17.6062148433 , 3.5090251835 , 74.2615941204 , -109.3431097845, 40.1403465151 , 28.8714561280 , 94.0868659302 , -19.0047033845 ,
|
||||
-60.0967410050 , -19.0998457619 , -67.2027075128 , 72.0711434846 , -17.8737851232 , 123.7050551274 , 132.6331504104 , 25.5018761009 ,
|
||||
-36.7817189239 , -29.1580893235 , -6.5848563828 , 90.2868948516 , -35.7017258498 , -68.5675432955 , -52.4888589786 , 47.1377730021 ,
|
||||
-7.4546621940 , -52.0657517138 , -49.0404829633 , -114.6910280126, -117.6819819437, -32.7856729408 , 31.8232065591 , 12.1192973039 ,
|
||||
35.2678513420 , -1.0336778293 , 30.7021249679 , 127.0442906046 , -84.8457819393 , 28.9862843096 , -47.3524701726 , -126.1094998460,
|
||||
-2.9700276582 , -2.4956545870 , -53.8624121141 , -85.2114117637 , 76.9057985618 , 137.1205201755 , -19.0830817212 , 14.3407526579 ,
|
||||
-56.5921994449 , -25.6084873186 , -44.9470801106 , -133.3139496090, 0.3487447576 , 33.4499716730 , 34.7126257844 , -9.3307383323 ,
|
||||
27.2996276947 , 10.8765676134 , -91.1032360444 , -90.9584216222 , 1.6981490570 , 96.8557438791 , 56.7726390913 , -44.3246449237 ,
|
||||
52.3260643361 , 21.5551140465 , 27.4535327381 , 2.0072717479 , 7.4823125629 , 77.1185863870 , 16.1372262663 , -10.7206012957 ,
|
||||
66.8830091413 , 49.3523828287 , 54.0855375598 , 30.8570349345 , -10.9255375390 , 62.3910624674 , 30.9238561381 , 0.3352881853 ,
|
||||
72.1022806197 , -28.8319885008 , 23.3335288806 , 46.8999035980 , -67.0984424822 , -164.7917209112, 42.5767681360 , -92.4668227688 ,
|
||||
43.8491734282 , -17.1126540408 , 37.4819594334 , 69.0774409673 , -39.3530526854 , -14.0693747124 , -60.2520781215 , -80.3860105519 ,
|
||||
32.6689956840 , 15.3393042576 , -18.5529761307 , 97.3942151573 , -4.4462855745 , 13.7614349817 , 158.3358780719 , -44.7258299667 ,
|
||||
-17.7741912819 , 116.5136962268 , -33.6261057820 , 22.8344441288 , -155.1423976144, 5.7070117893 , -22.7906543902 , -45.0633909283 ,
|
||||
-13.9329987929 , -66.0848932507 , 1.1383038109 , 123.8386958483 , 67.6662401589 , 45.9152963554 , -27.4397697462 , 97.9596747354 ,
|
||||
-6.3544655181 , 29.0832146722 , 96.3468162499 , 32.4535976137 , -91.0650399301 , 2.7293262791 , 70.7853483111 , -92.3655274571 ,
|
||||
69.0359217256 , 83.1530567979 , 35.8375091111 , 7.3393552348 , -95.1770165365 , 76.4905790891 , 55.6253140577 , -29.5315327050 ,
|
||||
-16.5935468750 , 20.4574192236 , -88.7897972666 , -38.6285080386 , 53.3203422726 , 98.5991486746 , 122.7305462474 , 67.7902817187 ,
|
||||
5.1764117389 , 5.0632821624 , 21.9288789574 , -78.3140512638 , -21.2069682335 , 23.6342010925 , 34.4445769455 , 59.1346766615 ,
|
||||
28.9978778000 , 39.8121180845 , -17.1650033520 , -56.9174900874 , 17.8157086148 , -112.8801457350, -122.4019040408, 140.8669393157 ,
|
||||
-65.4664329639 , 40.6952775518 , 32.7260891658 , -43.2565155866 , 19.3945751928 , -20.1815002000 , -67.6601711640 , -18.1921178207 ,
|
||||
-35.6802153684 , -19.6571455162
|
||||
};
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Blocksizes */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
filtering_blocksizes,
|
||||
5,
|
||||
CURLY(
|
||||
1, 7, 14, 32, FILTERING_MAX_BLOCKSIZE));
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
lms_blocksizes,
|
||||
3,
|
||||
CURLY(
|
||||
128, 256, LMS_MAX_BLOCKSIZE));
|
||||
|
||||
ARR_DESC_DEFINE(uint16_t,
|
||||
filtering_numtaps,
|
||||
5,
|
||||
CURLY(
|
||||
4, 6, 14, 32, FILTERING_MAX_NUMTAPS));
|
||||
|
||||
ARR_DESC_DEFINE(uint16_t,
|
||||
filtering_numtaps2,
|
||||
5,
|
||||
CURLY(
|
||||
6, 12, 18, 24, 30));
|
||||
|
||||
ARR_DESC_DEFINE(uint16_t,
|
||||
filtering_numstages,
|
||||
3,
|
||||
CURLY(
|
||||
1, 7, FILTERING_MAX_NUMSTAGES));
|
||||
|
||||
ARR_DESC_DEFINE(uint8_t,
|
||||
filtering_postshifts,
|
||||
3,
|
||||
CURLY(
|
||||
0, 1, FILTERING_MAX_POSTSHIFT));
|
||||
|
||||
ARR_DESC_DEFINE(uint8_t,
|
||||
filtering_Ls,
|
||||
3,
|
||||
CURLY(
|
||||
1, 2, FILTERING_MAX_L));
|
||||
|
||||
ARR_DESC_DEFINE(uint8_t,
|
||||
filtering_Ms,
|
||||
6,
|
||||
CURLY(
|
||||
1, 2, 4, 7, 11, FILTERING_MAX_M));
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Coefficient Lists */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
// There must be at least max( FILTERING_MAX_NUMTAPS + 2 , FILTERING_MAX_NUMSTAGES * 6 + 2) coefficients
|
||||
const float32_t filtering_coeffs_f32[FILTERING_MAX_NUMSTAGES * 6 + 2] =
|
||||
{
|
||||
-13.0572f, 0.0f , -97.4724f, 8.4111f , -7.2193f , -53.7577f, 22.2630f ,
|
||||
-1.0509f , -25.9198f, 26.5207f , -12.6697f, -78.7453f, -0.6540f , 0.3119f ,
|
||||
13.4595f , -6.7225f , -4.1313f , -38.5974f, 3.2700f , -51.6191f, -22.4314f,
|
||||
0.2481f , 32.9779f , -37.6421f, 5.4469f , -7.0023f , 24.3657f , 9.9140f ,
|
||||
0.2870f , -13.0499f, 29.3333f , -53.1396f, -2.7555f , 0.5377f , 35.3491f ,
|
||||
-3.7134f , 0.8548f , 4.7469f , -10.5865f, -2.7285f , -1.5912f , -13.3502f,
|
||||
6.8532f , -8.2304f , -8.1193f , 3.8257f , -2.1703f , 13.5727f , 14.2736f ,
|
||||
-0.9855f , -8.9334f , -13.8883f, 11.8430f , -2.2024f , 0.9795f , 15.6191f ,
|
||||
5.2121f , 10.8102f , -9.4171f , 6.0411f , -0.9131f , 10.6992f , -3.2634f ,
|
||||
7.5849f , -4.9305f , -6.0549f , -7.9409f , 1.5827f , 13.3177f , 8.6727f ,
|
||||
-13.2268f , 11.1239f , 0.2481f , 32.9779f , -37.6421f, 5.4469f , -13.8883f,
|
||||
11.8430f , -2.2024f , 0.9795f , 15.6191f , 0.2481f , 32.9779f , -37.6421f,
|
||||
3.2700f , -51.6191f
|
||||
};
|
||||
const float64_t filtering_coeffs_f64[FILTERING_MAX_NUMSTAGES * 6 + 2] =
|
||||
{
|
||||
-13.0572f, 0.0f , -97.4724f, 8.4111f , -7.2193f , -53.7577f, 22.2630f ,
|
||||
-1.0509f , -25.9198f, 26.5207f , -12.6697f, -78.7453f, -0.6540f , 0.3119f ,
|
||||
13.4595f , -6.7225f , -4.1313f , -38.5974f, 3.2700f , -51.6191f, -22.4314f,
|
||||
0.2481f , 32.9779f , -37.6421f, 5.4469f , -7.0023f , 24.3657f , 9.9140f ,
|
||||
0.2870f , -13.0499f, 29.3333f , -53.1396f, -2.7555f , 0.5377f , 35.3491f ,
|
||||
-3.7134f , 0.8548f , 4.7469f , -10.5865f, -2.7285f , -1.5912f , -13.3502f,
|
||||
6.8532f , -8.2304f , -8.1193f , 3.8257f , -2.1703f , 13.5727f , 14.2736f ,
|
||||
-0.9855f , -8.9334f , -13.8883f, 11.8430f , -2.2024f , 0.9795f , 15.6191f ,
|
||||
5.2121f , 10.8102f , -9.4171f , 6.0411f , -0.9131f , 10.6992f , -3.2634f ,
|
||||
7.5849f , -4.9305f , -6.0549f , -7.9409f , 1.5827f , 13.3177f , 8.6727f ,
|
||||
-13.2268f , 11.1239f , 0.2481f , 32.9779f , -37.6421f, 5.4469f , -13.8883f,
|
||||
11.8430f , -2.2024f , 0.9795f , 15.6191f , 0.2481f , 32.9779f , -37.6421f,
|
||||
3.2700f , -51.6191f
|
||||
};
|
||||
|
||||
const float32_t filtering_coeffs_b_f32[FILTERING_MAX_NUMSTAGES * 6 + 2] =
|
||||
{
|
||||
-0.0572f, 0.0f , -0.4724f, 0.4111f , -0.9999f, -0.7577f, 0.2630f ,
|
||||
-0.0509f, -1.0000f, 0.5207f , -0.6697f, -0.7453f, -0.6540f, 0.3119f ,
|
||||
0.4595f , -0.7225f, -0.1313f, -0.5974f, 0.2700f , -0.6191f, -0.4314f,
|
||||
0.2481f , 0.9779f , -0.6421f, 0.4469f , -0.0023f, 0.3657f , 0.9140f ,
|
||||
0.2870f , -0.0499f, 0.3333f , -0.1396f, -0.7555f, 0.5377f , 0.3491f ,
|
||||
0.2369f , -0.5310f, -0.5904f, 0.6263f , 0.0205f , 0.1088f , -0.2926f,
|
||||
-0.4187f, -0.5094f, 0.4479f , -0.3594f, -0.3102f, 0.6748f , 0.7620f ,
|
||||
0.0033f , -0.9195f, 0.3192f , -0.1705f, 0.5524f , -0.5025f, 0.4898f ,
|
||||
-0.0119f, -0.3982f, -0.7818f, -0.9186f, -0.0944f, 0.7228f , 0.7014f ,
|
||||
0.4850f , -0.6814f, 0.4914f , -0.6286f, 0.5130f , -0.8585f, 0.3000f ,
|
||||
0.6068f , 0.4978f , -0.7225f, -0.1313f, -0.5974f, 0.2700f , -0.6191f,
|
||||
0.2481f , 0.9779f , -0.6421f, 0.4469f , -0.0023f, 0.3657f , 0.9140f ,
|
||||
0.2369f , -0.5310f
|
||||
};
|
||||
|
||||
const float64_t filtering_coeffs_b_f64[FILTERING_MAX_NUMSTAGES * 6 + 2] =
|
||||
{
|
||||
-0.0572f, 0.0f , -0.4724f, 0.4111f , -0.9999f, -0.7577f, 0.2630f ,
|
||||
-0.0509f, -1.0000f, 0.5207f , -0.6697f, -0.7453f, -0.6540f, 0.3119f ,
|
||||
0.4595f , -0.7225f, -0.1313f, -0.5974f, 0.2700f , -0.6191f, -0.4314f,
|
||||
0.2481f , 0.9779f , -0.6421f, 0.4469f , -0.0023f, 0.3657f , 0.9140f ,
|
||||
0.2870f , -0.0499f, 0.3333f , -0.1396f, -0.7555f, 0.5377f , 0.3491f ,
|
||||
0.2369f , -0.5310f, -0.5904f, 0.6263f , 0.0205f , 0.1088f , -0.2926f,
|
||||
-0.4187f, -0.5094f, 0.4479f , -0.3594f, -0.3102f, 0.6748f , 0.7620f ,
|
||||
0.0033f , -0.9195f, 0.3192f , -0.1705f, 0.5524f , -0.5025f, 0.4898f ,
|
||||
-0.0119f, -0.3982f, -0.7818f, -0.9186f, -0.0944f, 0.7228f , 0.7014f ,
|
||||
0.4850f , -0.6814f, 0.4914f , -0.6286f, 0.5130f , -0.8585f, 0.3000f ,
|
||||
0.6068f , 0.4978f , -0.7225f, -0.1313f, -0.5974f, 0.2700f , -0.6191f,
|
||||
0.2481f , 0.9779f , -0.6421f, 0.4469f , -0.0023f, 0.3657f , 0.9140f ,
|
||||
0.2369f , -0.5310f
|
||||
};
|
||||
|
||||
const float32_t *filtering_coeffs_c_f32 = filtering_coeffs_b_f32 + 1;
|
||||
|
||||
const q31_t filtering_coeffs_q31[FILTERING_MAX_NUMSTAGES * 6 + 2] =
|
||||
{
|
||||
0xEEDA759C, 0x00000000, 0x80000000, 0x0B0BA027, 0xF6850544, 0xB967E3EC,
|
||||
0x1D3C4F64, 0xFFFFFFFF, 0xDDF65B14, 0x22D3A62D, 0xEF5CBB89, 0x98979EE0,
|
||||
0xFF242597, 0x0068D9E9, 0x11ACC4F3, 0xF72C0F21, 0xFA9326BC, 0xCD506BD5,
|
||||
0x044B50CD, 0xBC36D4BC, 0xE28B1589, 0x0053690B, 0x2B4E6639, 0xCE919690,
|
||||
0x0727234D, 0xF6CDFB14, 0x1FFF2FCF, 0x0D04DC35, 0x00607E4D, 0xEEDCF04A,
|
||||
0x268530EF, 0xBA37B050, 0x7FFFFFFF, 0xEF5CBB89, 0x00000000, 0x2B4E6639,
|
||||
0xFF242597, 0x0068D9E9, 0x11ACC4F3, 0xF72C0F21, 0xFA9326BC, 0xCD506BD5,
|
||||
0x1D3C4F64, 0xFFFFFFFF, 0xDDF65B14, 0x22D3A62D, 0xEF5CBB89, 0x98979EE0,
|
||||
0x044B50CD, 0xBC36D4BC, 0xE28B1589, 0x0053690B, 0x2B4E6639, 0xCE919690,
|
||||
0x0727234D, 0xF6CDFB14, 0x1FFF2FCF, 0x0D04DC35, 0x00607E4D, 0xEEDCF04A,
|
||||
0xE28B1589, 0x0053690B, 0x044B50CD, 0xBC36D4BC, 0xE28B1589, 0xB967E3EC,
|
||||
0x044B50CD, 0xBC36D4BC, 0xE28B1589, 0x0053690B, 0x2B4E6639, 0xCE919690,
|
||||
0x1FFF2FCF, 0x0D04DC35, 0x00607E4D, 0xEEDCF04A, 0xFFFFFFFF, 0xDDF65B14,
|
||||
0xFF242597, 0x0068D9E9, 0x11ACC4F3, 0xF72C0F21, 0xFA9326BC, 0xCD506BD5,
|
||||
0x2B4E6639, 0xCE919690
|
||||
};
|
||||
|
||||
const q31_t *filtering_coeffs_b_q31 = filtering_coeffs_q31 + 1;
|
||||
const q31_t *filtering_coeffs_c_q31 = filtering_coeffs_q31 + 2;
|
||||
|
||||
//fourth coefficient MUST be zero for arm_biquad_cascade_df1_fast_q15 to work
|
||||
//every 6th coefficient after that must also be zero
|
||||
const q15_t filtering_coeffs_q15[FILTERING_MAX_NUMSTAGES * 6 + 4] =
|
||||
{
|
||||
0xBA37, 0xEEDA, 0x8000, 0x0000, 0x0B0B, 0xF685, 0xB967,
|
||||
0x1D3C, 0xFFFF, 0x0000, 0x22D3, 0xEF5C, 0x9897,
|
||||
0xFF24, 0x0068, 0x0000, 0xF72C, 0xFA93, 0xCD50,
|
||||
0x044B, 0xBC36, 0x0000, 0x0053, 0x2B4E, 0xCE91,
|
||||
0x0727, 0xF6CD, 0x0000, 0x0D04, 0x0060, 0xEEDC,
|
||||
0x2685, 0xBA37, 0x0000, 0xDDF6, 0x0000, 0x2B4E,
|
||||
0xFF24, 0x0068, 0x0000, 0xF72C, 0xFA93, 0xCD50,
|
||||
0x1D3C, 0xFFFF, 0x0000, 0x22D3, 0xEF5C, 0x9897,
|
||||
0x044B, 0xBC36, 0x0000, 0x0053, 0x2B4E, 0xCE91,
|
||||
0x0727, 0xF6CD, 0x0000, 0x0D04, 0x0060, 0xEEDC,
|
||||
0xE28B, 0x0053, 0x0000, 0xBC36, 0xE28B, 0xB967,
|
||||
0x044B, 0xBC36, 0x0000, 0x0053, 0x2B4E, 0xCE91,
|
||||
0x044B, 0xBC36, 0x0000, 0x0053, 0x2B4E, 0xCE91,
|
||||
0x0727, 0xF6CD, 0x0000, 0x0D04, 0x0060, 0xEEDC,
|
||||
0xE28B, 0x11AC, 0x0000,
|
||||
};
|
||||
|
||||
const q15_t *filtering_coeffs_b_q15 = filtering_coeffs_q15 + 2;
|
||||
const q15_t *filtering_coeffs_c_q15 = filtering_coeffs_q15 + 4;
|
||||
|
||||
const q7_t filtering_coeffs_q7[FILTERING_MAX_NUMSTAGES * 6 + 8] =
|
||||
{
|
||||
0xEE, 0x00, 0x80, 0x0B, 0xF6, 0xB9,
|
||||
0x1D, 0xFF, 0xDD, 0x22, 0xEF, 0x98,
|
||||
0xFF, 0x00, 0x11, 0xF7, 0xFA, 0xCD,
|
||||
0x04, 0xBC, 0xE2, 0x00, 0x2B, 0xCE,
|
||||
0x07, 0xF6, 0x1F, 0x0D, 0x00, 0xEE,
|
||||
0x26, 0xBA, 0x7F, 0x00, 0x80, 0x2B,
|
||||
0xFF, 0x00, 0x11, 0xF7, 0xFA, 0xCD,
|
||||
0x1D, 0xFF, 0xDD, 0x22, 0xEF, 0x98,
|
||||
0x04, 0xBC, 0xE2, 0x00, 0x2B, 0xCE,
|
||||
0x07, 0xF6, 0x1F, 0x0D, 0x00, 0xEE,
|
||||
0xE2, 0x00, 0x04, 0xBC, 0xE2, 0xB9,
|
||||
0x04, 0xBC, 0xE2, 0x00, 0x2B, 0xCE,
|
||||
0x07, 0xF6, 0x1F, 0x0D, 0x00, 0xEE,
|
||||
0x26, 0xBA, 0x7F, 0x00, 0x80, 0x2B,
|
||||
0x07, 0xF6, 0x1F, 0x0D, 0x00, 0xEE,
|
||||
0xFA, 0xCD
|
||||
};
|
||||
|
||||
const q7_t *filtering_coeffs_b_q7 = filtering_coeffs_q7 + 4;
|
||||
const q7_t *filtering_coeffs_c_q7 = filtering_coeffs_q7 + 8;
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Tap Delay Lists */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
//const int32_t filtering_tap_delay[FILTERING_MAX_NUMTAPS] = {
|
||||
// 0xEE, 0x00, 0x10, 0x0B, 0xF6, 0xD9,
|
||||
// 0x1D, 0xFF, 0xDD, 0x1A, 0xEF, 0xE8,
|
||||
// 0xFF, 0x00, 0x11, 0xF7, 0xFA, 0xDD,
|
||||
// 0x04, 0xEC, 0xE2, 0x00, 0x2B, 0xFE,
|
||||
// 0x07, 0xF6, 0x1F, 0x0D, 0x00, 0xEE,
|
||||
// 0x20, 0xDF, 0x21
|
||||
//};
|
||||
|
||||
const int32_t filtering_tap_delay[FILTERING_MAX_NUMTAPS] = {
|
||||
0x00, 0x01, 0x10, 0x0B, 0x03, 0x05,
|
||||
0x1D, 0x21, 0x11, 0x1A, 0x1F, 0x07,
|
||||
0x20, 0x01, 0x10, 0x0B, 0x03, 0x05,
|
||||
0x1D, 0x21, 0x11, 0x1A, 0x1F, 0x07,
|
||||
0x00, 0x01, 0x10, 0x0B, 0x03, 0x05,
|
||||
0x1D, 0x21, 0x11
|
||||
};
|
||||
|
@ -0,0 +1,17 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(filtering_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_GROUP_CALL(biquad_tests);
|
||||
JTEST_GROUP_CALL(conv_tests);
|
||||
JTEST_GROUP_CALL(correlate_tests);
|
||||
JTEST_GROUP_CALL(fir_tests);
|
||||
JTEST_GROUP_CALL(iir_tests);
|
||||
JTEST_GROUP_CALL(lms_tests);
|
||||
|
||||
return;
|
||||
}
|
@ -0,0 +1,402 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define FIR_DEFINE_TEST(suffix, config_suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir##config_suffix##_##suffix##_test, \
|
||||
arm_fir##config_suffix##_##suffix) \
|
||||
{ \
|
||||
arm_fir_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_init_##suffix( \
|
||||
&fir_inst_fut, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir##config_suffix##_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_init_##suffix( \
|
||||
&fir_inst_ref, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_fir##config_suffix##_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define FIR_INTERPOLATE_DEFINE_TEST(suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir_interpolate_##suffix##_test, \
|
||||
arm_fir_interpolate_##suffix) \
|
||||
{ \
|
||||
arm_fir_interpolate_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_interpolate_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps2 \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
L_idx, uint8_t, L, filtering_Ls \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n" \
|
||||
"Upsample factor: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps, \
|
||||
(int)L); \
|
||||
\
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_interpolate_init_##suffix( \
|
||||
&fir_inst_fut, L, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir_interpolate_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_interpolate_init_##suffix( \
|
||||
&fir_inst_ref, L, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_fir_interpolate_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize * (uint32_t)L, \
|
||||
output_type)))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define FIR_DECIMATE_DEFINE_TEST(suffix, config_suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir_decimate##config_suffix##_##suffix##_test, \
|
||||
arm_fir_decimate##config_suffix##_##suffix) \
|
||||
{ \
|
||||
arm_fir_decimate_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_decimate_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
M_idx, uint8_t, M, filtering_Ms \
|
||||
, \
|
||||
if (blockSize % M == 0) \
|
||||
{ \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n" \
|
||||
"Decimation Factor: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps, \
|
||||
(int)M); \
|
||||
\
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_decimate_init_##suffix( \
|
||||
&fir_inst_fut, numTaps, M, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir_decimate##config_suffix##_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_decimate_init_##suffix( \
|
||||
&fir_inst_ref, numTaps, M, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_fir_decimate##config_suffix##_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize / M, \
|
||||
output_type); \
|
||||
}))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define FIR_LATTICE_DEFINE_TEST(suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir_lattice_##suffix##_test, \
|
||||
arm_fir_lattice_##suffix) \
|
||||
{ \
|
||||
arm_fir_lattice_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_lattice_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Stages: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numStages); \
|
||||
\
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_lattice_init_##suffix( \
|
||||
&fir_inst_fut, numStages, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir_lattice_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_lattice_init_##suffix( \
|
||||
&fir_inst_ref, numStages, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState); \
|
||||
\
|
||||
ref_fir_lattice_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
|
||||
#define FIR_SPARSE_DEFINE_TEST(suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir_sparse_##suffix##_test, \
|
||||
arm_fir_sparse_##suffix) \
|
||||
{ \
|
||||
arm_fir_sparse_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_sparse_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n" \
|
||||
"Tap Delay: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps, \
|
||||
(int)FILTERING_MAX_TAP_DELAY); \
|
||||
\
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_sparse_init_##suffix( \
|
||||
&fir_inst_fut, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, \
|
||||
(int32_t*)filtering_tap_delay, \
|
||||
FILTERING_MAX_TAP_DELAY, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir_sparse_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
(void *) filtering_scratch, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_sparse_init_##suffix( \
|
||||
&fir_inst_ref, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, \
|
||||
(int32_t*)filtering_tap_delay, \
|
||||
FILTERING_MAX_TAP_DELAY, blockSize); \
|
||||
\
|
||||
ref_fir_sparse_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
(void *) filtering_scratch, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define FIR_SPARSE2_DEFINE_TEST(suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_fir_sparse_##suffix##_test, \
|
||||
arm_fir_sparse_##suffix) \
|
||||
{ \
|
||||
arm_fir_sparse_instance_##suffix fir_inst_fut = { 0 }; \
|
||||
arm_fir_sparse_instance_##suffix fir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n" \
|
||||
"Tap Delay: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps, \
|
||||
(int)FILTERING_MAX_TAP_DELAY); \
|
||||
\
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_sparse_init_##suffix( \
|
||||
&fir_inst_fut, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, \
|
||||
(int32_t*)filtering_tap_delay, \
|
||||
FILTERING_MAX_TAP_DELAY, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_fir_sparse_##suffix( \
|
||||
&fir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
(void *) filtering_scratch, \
|
||||
(void *) filtering_scratch2, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_fir_sparse_init_##suffix( \
|
||||
&fir_inst_ref, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, \
|
||||
(int32_t*)filtering_tap_delay, \
|
||||
FILTERING_MAX_TAP_DELAY, blockSize); \
|
||||
\
|
||||
ref_fir_sparse_##suffix( \
|
||||
&fir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
(void *) filtering_scratch, \
|
||||
(void *) filtering_scratch2, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
FIR_DEFINE_TEST(f32,,float32_t);
|
||||
FIR_DEFINE_TEST(q31,,q31_t);
|
||||
FIR_DEFINE_TEST(q15,,q15_t);
|
||||
FIR_DEFINE_TEST(q31,_fast,q31_t);
|
||||
FIR_DEFINE_TEST(q15,_fast,q15_t);
|
||||
FIR_DEFINE_TEST(q7,,q7_t);
|
||||
|
||||
FIR_LATTICE_DEFINE_TEST(f32,float32_t);
|
||||
FIR_LATTICE_DEFINE_TEST(q31,q31_t);
|
||||
FIR_LATTICE_DEFINE_TEST(q15,q15_t);
|
||||
|
||||
FIR_INTERPOLATE_DEFINE_TEST(f32,float32_t);
|
||||
FIR_INTERPOLATE_DEFINE_TEST(q31,q31_t);
|
||||
FIR_INTERPOLATE_DEFINE_TEST(q15,q15_t);
|
||||
|
||||
FIR_DECIMATE_DEFINE_TEST(f32,,float32_t);
|
||||
FIR_DECIMATE_DEFINE_TEST(q31,,q31_t);
|
||||
FIR_DECIMATE_DEFINE_TEST(q15,,q15_t);
|
||||
FIR_DECIMATE_DEFINE_TEST(q31,_fast,q31_t);
|
||||
FIR_DECIMATE_DEFINE_TEST(q15,_fast,q15_t);
|
||||
|
||||
FIR_SPARSE_DEFINE_TEST(f32,float32_t);
|
||||
FIR_SPARSE_DEFINE_TEST(q31,q31_t);
|
||||
FIR_SPARSE2_DEFINE_TEST(q15,q15_t);
|
||||
FIR_SPARSE2_DEFINE_TEST(q7,q7_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(fir_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_fir_f32_test);
|
||||
JTEST_TEST_CALL(arm_fir_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_q15_test);
|
||||
JTEST_TEST_CALL(arm_fir_q7_test);
|
||||
JTEST_TEST_CALL(arm_fir_fast_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_fast_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_fir_lattice_f32_test);
|
||||
JTEST_TEST_CALL(arm_fir_lattice_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_lattice_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_fir_interpolate_f32_test);
|
||||
JTEST_TEST_CALL(arm_fir_interpolate_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_interpolate_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_fir_decimate_f32_test);
|
||||
JTEST_TEST_CALL(arm_fir_decimate_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_decimate_q15_test);
|
||||
JTEST_TEST_CALL(arm_fir_decimate_fast_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_decimate_fast_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_fir_sparse_f32_test);
|
||||
JTEST_TEST_CALL(arm_fir_sparse_q31_test);
|
||||
JTEST_TEST_CALL(arm_fir_sparse_q15_test);
|
||||
JTEST_TEST_CALL(arm_fir_sparse_q7_test);
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define IIR_DEFINE_TEST(suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_iir_lattice_##suffix##_test, \
|
||||
arm_iir_lattice_##suffix) \
|
||||
{ \
|
||||
arm_iir_lattice_instance_##suffix iir_inst_fut = { 0 }; \
|
||||
arm_iir_lattice_instance_##suffix iir_inst_ref = { 0 }; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, filtering_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numstages_idx, uint16_t, numStages, filtering_numstages \
|
||||
, \
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Stages: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numStages); \
|
||||
\
|
||||
/* Initialize the IIR Instances */ \
|
||||
arm_iir_lattice_init_##suffix( \
|
||||
&iir_inst_fut, numStages, (output_type*)filtering_coeffs_b_##suffix, \
|
||||
(output_type*)filtering_coeffs_c_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_iir_lattice_##suffix( \
|
||||
&iir_inst_fut, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_fut, \
|
||||
blockSize)); \
|
||||
\
|
||||
arm_iir_lattice_init_##suffix( \
|
||||
&iir_inst_ref, numStages, (output_type*)filtering_coeffs_b_##suffix, \
|
||||
(output_type*)filtering_coeffs_c_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_iir_lattice_##suffix( \
|
||||
&iir_inst_ref, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_output_ref, \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
IIR_DEFINE_TEST(f32, float32_t);
|
||||
IIR_DEFINE_TEST(q31, q31_t);
|
||||
IIR_DEFINE_TEST(q15, q15_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(iir_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_iir_lattice_f32_test);
|
||||
JTEST_TEST_CALL(arm_iir_lattice_q31_test);
|
||||
JTEST_TEST_CALL(arm_iir_lattice_q15_test);
|
||||
}
|
@ -0,0 +1,219 @@
|
||||
#include "jtest.h"
|
||||
#include "filtering_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "filtering_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
static const float32_t mu_f32 = 0.00854f;//1.0f;
|
||||
static const float32_t mu2_f32 = 1.0f;
|
||||
static const q31_t mu_q31 = 0x7fffffff;
|
||||
static const q15_t mu_q15 = 0x7fff;
|
||||
|
||||
#define LMS_DEFINE_TEST(suffix, config_suffix, output_type, mu) \
|
||||
JTEST_DEFINE_TEST(arm_lms##config_suffix##_##suffix##_test, \
|
||||
arm_lms##config_suffix##_##suffix) \
|
||||
{ \
|
||||
arm_lms##config_suffix##_instance_##suffix lms_inst_fut = { 0 }; \
|
||||
arm_lms##config_suffix##_instance_##suffix lms_inst_ref = { 0 }; \
|
||||
arm_fir_instance_##suffix fir_inst = { 0 }; \
|
||||
uint32_t i; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, lms_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_init_##suffix( \
|
||||
&fir_inst, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_fir_##suffix( \
|
||||
&fir_inst, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_input_lms, \
|
||||
blockSize); \
|
||||
\
|
||||
for(i=0;i<numTaps;i++) \
|
||||
{ \
|
||||
*((output_type*)filtering_coeffs_lms + i) = (output_type)0; \
|
||||
} \
|
||||
\
|
||||
for(i=0;i<blockSize;i++) \
|
||||
{ \
|
||||
/* scaled down so that lms will converge */ \
|
||||
/* scaled down by almost the max of the abs(input) */ \
|
||||
*((output_type*)filtering_input_lms + i) = \
|
||||
*((output_type*)filtering_input_lms + i) / 200.0f; \
|
||||
\
|
||||
*((output_type*)filtering_output_f32_fut + i) = \
|
||||
*((output_type*)filtering_##suffix##_inputs + i) / 200.0f; \
|
||||
} \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps); \
|
||||
\
|
||||
/* Initialize the LMS Instances */ \
|
||||
arm_lms##config_suffix##_init_##suffix( \
|
||||
&lms_inst_fut, numTaps, \
|
||||
(output_type*)filtering_coeffs_lms, \
|
||||
(void *) filtering_pState, mu, blockSize); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_lms##config_suffix##_##suffix( \
|
||||
&lms_inst_fut, \
|
||||
(void *) filtering_output_f32_fut, \
|
||||
(void *) filtering_input_lms, \
|
||||
(void *) filtering_output_fut, \
|
||||
(void *) ((output_type*)filtering_output_fut+blockSize), \
|
||||
blockSize)); \
|
||||
\
|
||||
for(i=0;i<numTaps;i++) \
|
||||
{ \
|
||||
*((output_type*)filtering_coeffs_lms + i) = (output_type)0; \
|
||||
} \
|
||||
\
|
||||
arm_lms##config_suffix##_init_##suffix( \
|
||||
&lms_inst_ref, numTaps, \
|
||||
(output_type*)filtering_coeffs_lms, \
|
||||
(void *) filtering_pState, mu, blockSize); \
|
||||
\
|
||||
ref_lms##config_suffix##_##suffix( \
|
||||
&lms_inst_ref, \
|
||||
(void *) filtering_output_f32_fut, \
|
||||
(void *) filtering_input_lms, \
|
||||
(void *) filtering_output_ref, \
|
||||
(void *) ((output_type*)filtering_output_fut+blockSize), \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
#define LMS_WITH_POSTSHIFT_DEFINE_TEST(suffix, config_suffix, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_lms##config_suffix##_##suffix##_test, \
|
||||
arm_lms##config_suffix##_##suffix) \
|
||||
{ \
|
||||
arm_lms##config_suffix##_instance_##suffix lms_inst_fut = { 0 }; \
|
||||
arm_lms##config_suffix##_instance_##suffix lms_inst_ref = { 0 }; \
|
||||
arm_fir_instance_##suffix fir_inst = { 0 }; \
|
||||
uint32_t i; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
blocksize_idx, uint32_t, blockSize, lms_blocksizes \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
numtaps_idx, uint16_t, numTaps, filtering_numtaps \
|
||||
, \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
postshifts_idx, uint8_t, postShift, filtering_postshifts \
|
||||
, \
|
||||
/* Initialize the FIR Instances */ \
|
||||
arm_fir_init_##suffix( \
|
||||
&fir_inst, numTaps, \
|
||||
(output_type*)filtering_coeffs_##suffix, \
|
||||
(void *) filtering_pState, blockSize); \
|
||||
\
|
||||
ref_fir_##suffix( \
|
||||
&fir_inst, \
|
||||
(void *) filtering_##suffix##_inputs, \
|
||||
(void *) filtering_input_lms, \
|
||||
blockSize); \
|
||||
\
|
||||
for(i=0;i<numTaps;i++) \
|
||||
{ \
|
||||
*((output_type*)filtering_coeffs_lms + i) = (output_type)0; \
|
||||
} \
|
||||
\
|
||||
for(i=0;i<blockSize;i++) \
|
||||
{ \
|
||||
/* scaled down so that lms will converge */ \
|
||||
/* scaled down by log2(numTaps) bits */ \
|
||||
*((output_type*)filtering_output_f32_fut + i) = \
|
||||
*((output_type*)filtering_##suffix##_inputs + i) >> 6; \
|
||||
} \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Number of Taps: %d\n" \
|
||||
"Post Shift: %d\n", \
|
||||
(int)blockSize, \
|
||||
(int)numTaps, \
|
||||
(int)postShift); \
|
||||
\
|
||||
/* Initialize the LMS Instances */ \
|
||||
arm_lms##config_suffix##_init_##suffix( \
|
||||
&lms_inst_fut, numTaps, \
|
||||
(output_type*)filtering_coeffs_lms, \
|
||||
(void *) filtering_pState, mu_##suffix, blockSize, postShift); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_lms##config_suffix##_##suffix( \
|
||||
&lms_inst_fut, \
|
||||
(void *) filtering_output_f32_fut, \
|
||||
(void *) filtering_input_lms, \
|
||||
(void *) filtering_output_fut, \
|
||||
(void *) ((output_type*)filtering_output_fut+blockSize), \
|
||||
blockSize)); \
|
||||
\
|
||||
for(i=0;i<numTaps;i++) \
|
||||
{ \
|
||||
*((output_type*)filtering_coeffs_lms + i) = (output_type)0; \
|
||||
} \
|
||||
\
|
||||
arm_lms##config_suffix##_init_##suffix( \
|
||||
&lms_inst_ref, numTaps, \
|
||||
(output_type*)filtering_coeffs_lms, \
|
||||
(void *) filtering_pState, mu_##suffix, blockSize, postShift); \
|
||||
\
|
||||
ref_lms##config_suffix##_##suffix( \
|
||||
&lms_inst_ref, \
|
||||
(void *) filtering_output_f32_fut, \
|
||||
(void *) filtering_input_lms, \
|
||||
(void *) filtering_output_ref, \
|
||||
(void *) ((output_type*)filtering_output_ref+blockSize), \
|
||||
blockSize); \
|
||||
\
|
||||
FILTERING_SNR_COMPARE_INTERFACE( \
|
||||
blockSize, \
|
||||
output_type)))); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
LMS_DEFINE_TEST(f32,,float32_t, mu_f32);
|
||||
LMS_WITH_POSTSHIFT_DEFINE_TEST(q31,,q31_t);
|
||||
LMS_WITH_POSTSHIFT_DEFINE_TEST(q15,,q15_t);
|
||||
|
||||
LMS_DEFINE_TEST(f32,_norm,float32_t, mu2_f32);
|
||||
LMS_WITH_POSTSHIFT_DEFINE_TEST(q31,_norm,q31_t);
|
||||
LMS_WITH_POSTSHIFT_DEFINE_TEST(q15,_norm,q15_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(lms_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_lms_f32_test);
|
||||
JTEST_TEST_CALL(arm_lms_q31_test);
|
||||
JTEST_TEST_CALL(arm_lms_q15_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_lms_norm_f32_test);
|
||||
JTEST_TEST_CALL(arm_lms_norm_q31_test);
|
||||
JTEST_TEST_CALL(arm_lms_norm_q15_test);
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "intrinsics_templates.h"
|
||||
#include "intrinsics_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QADD8, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QSUB8, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QADD16, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SHADD16, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QSUB16, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SHSUB16, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QASX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SHASX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QSAX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SHSAX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SMUSDX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SMUADX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QADD, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__QSUB, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT3(__SMLAD, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT3(__SMLADX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT3(__SMLSDX, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT4(__SMLALD, q31, q63);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT4(__SMLALDX, q31, q63);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SMUAD, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT2(__SMUSD, q31);
|
||||
INTRINSICS_TEST_TEMPLATE_ELT1(__SXTB16, q31);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(intrinsics_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(__QADD8_test);
|
||||
JTEST_TEST_CALL(__QSUB8_test);
|
||||
JTEST_TEST_CALL(__QADD16_test);
|
||||
JTEST_TEST_CALL(__SHADD16_test);
|
||||
JTEST_TEST_CALL(__QSUB16_test);
|
||||
JTEST_TEST_CALL(__SHSUB16_test);
|
||||
JTEST_TEST_CALL(__QASX_test);
|
||||
JTEST_TEST_CALL(__SHASX_test);
|
||||
JTEST_TEST_CALL(__QSAX_test);
|
||||
JTEST_TEST_CALL(__SHSAX_test);
|
||||
JTEST_TEST_CALL(__SMUSDX_test);
|
||||
JTEST_TEST_CALL(__SMUADX_test);
|
||||
JTEST_TEST_CALL(__QADD_test);
|
||||
JTEST_TEST_CALL(__QSUB_test);
|
||||
JTEST_TEST_CALL(__SMLAD_test);
|
||||
JTEST_TEST_CALL(__SMLADX_test);
|
||||
JTEST_TEST_CALL(__SMLSDX_test);
|
||||
JTEST_TEST_CALL(__SMLALD_test);
|
||||
JTEST_TEST_CALL(__SMLALDX_test);
|
||||
JTEST_TEST_CALL(__SMUAD_test);
|
||||
JTEST_TEST_CALL(__SMUSD_test);
|
||||
JTEST_TEST_CALL(__SXTB16_test);
|
||||
}
|
@ -0,0 +1,189 @@
|
||||
#include "intrinsics_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
q63_t intrinsics_output_fut[INTRINSICS_MAX_LEN] = {0};
|
||||
q63_t intrinsics_output_ref[INTRINSICS_MAX_LEN] = {0};
|
||||
float32_t intrinsics_output_f32_fut[INTRINSICS_MAX_LEN] = {0};
|
||||
float32_t intrinsics_output_f32_ref[INTRINSICS_MAX_LEN] = {0};
|
||||
|
||||
const q63_t intrinsics_q63_inputs[INTRINSICS_MAX_LEN] =
|
||||
{
|
||||
0xF7D2D6F5414A5524, 0x5297DAF44CAB5A17, 0x54129B222D6F5B56, 0x54141F6F7DAF4E3B, 0x44C414A529B226EB, 0x22D4CAB541F6F6A ,
|
||||
0x6053A44325CE38BF, 0x33D055403A970AFA, 0x0133D0603A44382A, 0x32513D5605540F8 , 0x03A25CE33D060524, 0x03A3A97013D56570,
|
||||
0x3402674117D7791D, 0x72140A667FE0438C, 0x439218E426741841, 0x11739FF340A66E54, 0x67F17D77218E4386, 0x4267FE0439FF3726,
|
||||
0x46C411420DC177CA, 0x7156C147702F2CF5, 0x26615F6441142FF1, 0x20D662C46C1476AB, 0x7700DC1715F640DD, 0x441702F2662C4E49,
|
||||
0x50D4F8B538055E7E, 0x5570D192770871FE, 0x725576474F8B5360, 0x538258550D1928A0, 0x2773805557647821, 0x74F77087258558CF,
|
||||
0x05066D230C0C604D, 0x63650FA350A46C19, 0x66C3646266D2370D, 0x30C6CE0050FA359A, 0x3500C0C636462E24, 0x26650A466CE00F5C,
|
||||
0x21E3B72166D40948, 0x0731EB61355B5831, 0x577733943B72150A, 0x166773F21EB61530, 0x13566D4073394127, 0x43B355B5773F26F4,
|
||||
0x7221CF5118052980, 0x27A22AD1038D6587, 0x67C7A8121CF517F4, 0x1187CDC722AD1691, 0x103180527A812473, 0x21C038D67CDC7D7F,
|
||||
0x21A0FD604A5110D0, 0x1201A2156D895BB9, 0x53D20EB60FD60F35, 0x04A3DE621A215530, 0x56D4A51120EB6DDA, 0x60F6D8953DE62516,
|
||||
0x02C61E17250123E1, 0x26D2CBB35ED813C8, 0x15B6D35061E175B1, 0x7255B1402CBB32F3, 0x35E250126D350907, 0x0615ED815B140D7E,
|
||||
0x126418B76EAE272D, 0x23C26BB13E221841, 0x1243CF01418B7B88, 0x76E24DB126BB1B80, 0x13E6EAE23CF010E4, 0x1413E22124DB166C,
|
||||
0x1634700479AB7E42, 0x74163F5662DF28D1, 0x246419E047004665, 0x47946BE163F56FC6, 0x66279AB7419E0C75, 0x04762DF246BE1F38,
|
||||
0x63F5CE12243239B2, 0x31F3F574758D03E0, 0x0711F4455CE12926, 0x22471D563F574B74, 0x475243231F4458E2, 0x55C758D071D5639 ,
|
||||
0x34806EF703A17B49, 0x77D48D32173A7C76, 0x70F7D3E306EF7531, 0x7030F2F348D32F34, 0x21703A177D3E3063, 0x306173A70F2F3549,
|
||||
0x54426F835C314C9 , 0x42E447B118CB6B6D, 0x6502E32326F83697, 0x35C50745447B1E9C, 0x1185C3142E323A33, 0x32618CB650745715,
|
||||
0x51D4891001AC5746, 0x5601DA36655A4E04, 0x42060E624891060F, 0x00120BF51DA36B4F, 0x66501AC560E6227F, 0x248655A420BF5EB4,
|
||||
0x1154156550B3225B, 0x2181540540C10544, 0x02318586415656C , 0x550236A115405EAE, 0x54050B32185863E1, 0x64140C10236A1C4E,
|
||||
0x44E7736608BD21F9, 0x2614EDF52ACF7A68, 0x752617A1773665E5, 0x608524F44EDF5F66, 0x52A08BD2617A1610, 0x1772ACF7524F4968,
|
||||
0x06A24DC242D006CD, 0x0376A4F55F000079, 0x01D3706424DC2447, 0x2421DE706A4F5599, 0x55F42D0037064D4A, 0x4245F0001DE70608,
|
||||
0x44018061233A2EE5, 0x22440795137E488E, 0x44424A8118061B7B, 0x12344CE44079569D, 0x513233A224A817D5, 0x118137E444CE48F5,
|
||||
0x41D71AD7575F7883, 0x73C1D4A522406802, 0x6333CBC771AD70BB, 0x757335841D4A5D79, 0x522575F73CBC7CE4, 0x77122406335840D8,
|
||||
0x3333D19605792E47, 0x233331A427AD2C05, 0x213330353D196EAB, 0x60513D93331A40AF, 0x4270579233035831, 0x53D27AD213D93987,
|
||||
0x0135DC437C542094, 0x25C13796045F317E, 0x37D5C2015DC43F8B, 0x37C7DD501379650C, 0x6047C5425C20193F, 0x15D045F37DD50298,
|
||||
0x5275C8A71D482B82, 0x210272914A6B6062, 0x63510E165C8A757B, 0x71D355A5272917C1, 0x14A1D48210E16FBC, 0x65C4A6B6355A5882,
|
||||
0x1757DF7F66F86A35, 0x61A758A6604555A1, 0x5531A1137DF7FBB , 0xF6653541758A6216, 0x66066F861A113463, 0x37D6045553541BAD,
|
||||
0x04E1F05221576756, 0x6554EA63483B6D8D, 0x67B55B841F052FCC, 0x2217B2E04EA63DFB, 0x3482157655B84677, 0x41F483B67B2E04F2,
|
||||
0x41D46029787A796C, 0x71A1DB2204A12CD3, 0x2061A8C746029BD , 0x978061E41DB22DD8, 0x204787A71A8C7F28, 0x74604A12061E452E,
|
||||
0x66B73357132D3F78, 0x3626BBB076525852, 0x53F6253673357BBA, 0x7133F6B66BBB0A58, 0x076132D362536AFA, 0x673765253F6B65EF,
|
||||
0x55F66B026DC57B58, 0x7325FF601EB718CE, 0x17F3247766B02740, 0x26D7FF355FF60B47, 0x01E6DC5732477B8F, 0x7661EB717FF35302,
|
||||
0x7206FF9529FD3E40, 0x34720182475A43D1, 0x44C47E076FF9528A, 0x5294CF572018209D, 0x24729FD347E079C9, 0x76F475A44CF576D3,
|
||||
0x2512340428074E34, 0x42551CE35D6F58ED, 0x56425297234045D1, 0x4286443251CE35F9, 0x35D2807425297896, 0x7235D6F5644320FE,
|
||||
0x04E701D50F4449A9, 0x4714E09454C361C6, 0x661718F0701D52F1, 0x50F615404E094820, 0x4540F444718F0810, 0x07054C3661540689,
|
||||
0x46A48AC379DE5A1F, 0x5216A0C152865C23, 0x57021B7048AC3A4B, 0x379708646A0C1BE0, 0x15279DE521B705DB, 0x048528657086465D,
|
||||
0x7206D2311CC10929, 0x038204951E1D716E, 0x71438FF16D231D4C, 0x11C149C720495108, 0x51E1CC1038FF1971, 0x16D1E1D7149C78D4,
|
||||
0x62169C32441F1E8B, 0x147210B743D95372, 0x5024781569C324B4, 0x24402476210B7DC9, 0x743441F147815E78, 0x56943D9502476137,
|
||||
0x30E2F6846163DDF , 0xD020E680390D6EC2, 0x612022322F684E5B, 0x461125930E680ABD, 0x0396163D02232615, 0x22F390D612593380,
|
||||
0x76D130F57B1465FE, 0x6106D772065A6957, 0x66310E91130F53EB, 0x57B63BC76D772EF7, 0x2067B14610E916B6, 0x113065A663BC7A68,
|
||||
0x773194712ACB00BB, 0x05973090651C5590, 0x53459BB6194714B5, 0x12A34867730904EE, 0x0652ACB059BB61B4, 0x619651C534867DBC,
|
||||
0x21228931391C706C, 0x713129A63C164218, 0x4621317128931CD0, 0x13962882129A66AB, 0x63C391C713171F4D, 0x1283C16462882872,
|
||||
0x6547A7944B167FD4, 0x73054B1566902F4C, 0x239308567A794932, 0x44B3946654B152C , 0x5664B16730856EA9, 0x67A6690239466D55,
|
||||
0x651077A336696451, 0x63651B950F5B1E8C, 0x11D367E2077A3C6A, 0x3361D2C651B956B4, 0x50F36696367E2D2A, 0x2070F5B11D2C662A,
|
||||
0x24D4070678FB6880, 0x6204DF964E6D40B6, 0x4632030640706FDC, 0x678638124DF9679C, 0x64E78FB620306EDB, 0x6404E6D463812AE7,
|
||||
0x2043E036255D2748, 0x25504E441B8B617B, 0x66655A373E036FAD, 0x625669B204E444A7, 0x41B255D255A37517, 0x73E1B8B6669B2988,
|
||||
0x27634BB318FD5E8C, 0x5057699467BD05CE, 0x06D05B9534BB346C, 0x3186DFA276994800, 0x46718FD505B958B6, 0x53467BD06DFA2FEF,
|
||||
0x573727212055B5C , 0xB5F73EF61F843C4C, 0x3435FB9072721B52, 0x1204323573EF6B86, 0x61F2055B5FB90B61, 0x0721F84343235DAC,
|
||||
0x17B162F231D424B4, 0x2797B2A7768C0D7E, 0x04479392162F2F9D, 0x231442D17B2A7A99, 0x77631D4279392693, 0x216768C0442D12C0,
|
||||
0x1445D9560692273E, 0x20D44E7359A16E80, 0x65F0D8745D956856, 0x6065F5C144E73DAC, 0x359069220D874532, 0x45D59A165F5C1DD0,
|
||||
0x3591D8215D167858, 0x7595965405597EA2, 0x71A594C01D821476, 0x15D1A87359654ED2, 0x4055D167594C0DC7, 0x01D055971A873506,
|
||||
0xD1F20CC33F693200, 0x3781F9E67A651AB5, 0x12A78E7620CC3C8A, 0x33F2A01D1F9E662C, 0x67A3F69378E7631 , 0x6207A6512A01DA0 ,
|
||||
0x073360D43088472F, 0x40D7333712EE0D42, 0x0230D634360D4D5F, 0x430233A073337E48, 0x712308840D634C06, 0x43612EE0233A0ACB,
|
||||
0x13E26223706651ED, 0x5223EBB67AA54079, 0x432225A4262239D1, 0x370325813EBB6BB6, 0x67A70665225A4F3D, 0x4267AA5432581A06,
|
||||
0x51075ED16E6F5780, 0x53C10DF2577377C7, 0x7373C79275ED1DDC, 0x16E3717510DF2D15, 0x2576E6F53C7929BC, 0x2755773737175917,
|
||||
0x47376435354E381C, 0x35273BB7762A2DD7, 0x26C52FE476435AC1, 0x5356C81473BB749E, 0x776354E352FE4E7E, 0x476762A26C8140F4,
|
||||
0x1374742257694875, 0x4123792612D30822, 0x020121C7474227CF, 0x257204E137926D98, 0x61257694121C7E24, 0x74712D30204E1EE7,
|
||||
0x77A316C358C6268 , 0x2617AB142152080 , 0x07D61C13316C3323, 0x3587D8E77AB14A31, 0x42158C6261C13C03, 0x331215207D8E74F1,
|
||||
0x5673BFD773F446D0, 0x43E672426C6C6A0A, 0x60F3E5523BFD79FB, 0x7730FF5567242969, 0x26C73F443E5524EB, 0x23B6C6C60FF5534 ,
|
||||
0x779540F452F05F1C, 0x5417984617102DE3, 0x21941954540F4A21, 0x452193F7798468E7, 0x61752F05419545EB, 0x45417102193F7880,
|
||||
0x5404BF662B246B20, 0x64C40894408A2BC4, 0x2244CAA64BF66A49, 0x62B2478540894C55, 0x4402B2464CAA6398, 0x64B408A2247856E9,
|
||||
0x55070D372F2A647D, 0x6595063422F55D33, 0x52B5983670D37915, 0x72F2BCC550634C72, 0x4222F2A65983671 , 0x67022F552BCC5AF8,
|
||||
0x03A710741A77D48 , 0xD613A6B3411B5CFA, 0x5626142571074D7E, 0x41A627103A6B3593, 0x3411A77D61425F05, 0x571411B56271012A,
|
||||
0x32310A505B830310, 0x021239F73D8418CA, 0x17F213D510A50792, 0x05B7F993239F7137, 0x73D5B830213D5071, 0x5103D8417F9930D4,
|
||||
0x265291502462664F, 0x6146586354180F8E, 0x018144B2291505BA, 0x02418E426586387A, 0x35424626144B2C12, 0x2295418018E425C7,
|
||||
0x558194623AA43373, 0x37258B4518F0503C, 0x5267247319462AC0, 0x23A26BF558B452EF, 0x5183AA4372473895, 0x31918F0526BF5435,
|
||||
0x13D5C3376DA553B , 0x54D3D93C60912FA6, 0x2204D0355C337331, 0x76D206913D93CD7 , 0xC606DA554D035752, 0x55C6091220691929,
|
||||
0x25F758B6389962F9, 0x6595FCA636E701E9, 0x02D59602758B642C, 0x6382D5A25FCA69E3, 0x63638996596027F4, 0x27536E702D5A2FD0,
|
||||
0x01B76BA35F18324A, 0x33C1BC213DB165AA, 0x6733CC1076BA3876, 0x35F73A601BC21AF6, 0x13D5F1833CC10841, 0x0763DB1673A60174,
|
||||
0x66144586625B7F58, 0x72B6157367C57724, 0x7032B3704458653C, 0x66203DF661573095, 0x367625B72B370837, 0x04467C5703DF6CE3,
|
||||
0x260191B45D086EFA, 0x630608433F5227C2, 0x21030DE1191B4785, 0x45D105E260843D82, 0x33F5D08630DE11F1, 0x1193F522105E226C,
|
||||
0x23B366766E1C7AA2, 0x7733B8D447AA5D14, 0x5407372636676D03, 0x66E409523B8D4DF6, 0x4476E1C77372694 , 0x63647AA5409521DC,
|
||||
0x5632BE46744206A , 0x04A63E114722023F, 0x05C4A4A02BE46AD5, 0x6745CF2563E11D76, 0x147744204A4A09AB, 0x02B472205CF252B9,
|
||||
0x62D3203731586916, 0x6452D7324DFD7D84, 0x72E4524532037634, 0x7312E5362D7329D4, 0x24D315864524582F, 0x5324DFD72E5366C1,
|
||||
0x50A6A2543B0E019B, 0x0110A6A038530C6A, 0x054119726A2542D , 0x43B540650A6A00E5, 0x0383B0E0119725CC, 0x26A3853054065347,
|
||||
0x571181111B6F7AF1, 0x774716746CCF71F1, 0x77774F43181117F2, 0x11B77A5571674A76, 0x46C1B6F774F43880, 0x3186CCF777A55F47,
|
||||
0x0243CBB259EA5B62, 0x547245C44A331D95, 0x1074718D3CBB276F, 0x25907CE0245C4D50, 0x44A59EA54718D5 , 0xD3C4A33107CE05D1,
|
||||
0x6663006160D47AD5, 0x73D669B325CA1C40, 0x1193D5F130061766, 0x16019306669B39DF, 0x32560D473D5F1320, 0x13025CA119306AD3,
|
||||
0x12D6A6E628B30325, 0x02B2DF160DD090F , 0x9312B5146A6E6F37, 0x628311012DF16F66, 0x60D28B302B514C7E, 0x46A0DD0931101C58,
|
||||
0x14177AB07D4847FC, 0x43A41320515341CA, 0x4243AF8577AB0EA6, 0x07D24B3141320DAF, 0x0517D4843AF8531E, 0x5775153424B31611,
|
||||
0x072222516D377331, 0x73B722D17A832A22, 0x2263B194222511C7, 0x16D261B0722D1F89, 0x17A6D3773B194F18, 0x4227A832261B0A4D,
|
||||
0x620190F243F676DB, 0x756202E74F8C6D61, 0x630560D4190F2250, 0x243308E6202E72A9, 0x74F43F67560D4EA2, 0x4194F8C6308E67B4,
|
||||
0x17F27EB236746663, 0x6267FDE017CC3852, 0x3232647127EB2EAC, 0x236232617FDE0AA8, 0x01736746264719A , 0x12717CC323261EDD,
|
||||
0x42448D823C0B339E, 0x34324D4406284D40, 0x44B4363148D82ECB, 0x23C4BF0424D44CF8, 0x4063C0B343631B91, 0x148062844BF04248,
|
||||
0x320630B736497B9B, 0x76C20CC368273C58, 0x3576C3B7630B7AF9, 0x7365744320CC3F26, 0x368364976C3B7B71, 0x76368273574433ED,
|
||||
0x626565B07A2552F6, 0x56726F924CDE642D, 0x65B67A20565B0142, 0x07A5B50626F9207F, 0x24C7A25567A207BE, 0x0564CDE65B506684,
|
||||
0x1411561044DA4780, 0x46E4155611756A0C, 0x61D6E3A6156104AF, 0x0441DBA1415561B0, 0x61144DA46E3A6886, 0x615117561DBA1EA2,
|
||||
0x71D758F0542359C8, 0x52D1DD634C024E22, 0x4612D194758F052A, 0x054616471DD6395 , 0x34C542352D194BAD, 0x4754C024616475A1,
|
||||
0x35713CB542084602, 0x46057FE209C274AD, 0x716607A413CB5562, 0x5421672357FE2D5B, 0x20942084607A4EE5, 0x41309C2716723A91,
|
||||
0x73D28FE64F624CCF, 0x4323DDA62E5E24A3, 0x21932AF528FE6FAF, 0x64F19A573DDA6EF4, 0x62E4F62432AF540C, 0x5282E5E219A57B3B,
|
||||
0x353278445D1D73A3, 0x7425397123424B3E, 0x452427D7278445F5, 0x45D5221353971C3B, 0x1235D1D7427D7943, 0x727234245221358C,
|
||||
0x7603B86626CE1A5E, 0x145608317B506CA4, 0x62145E143B86636E, 0x62621B7760831F6D, 0x17B26CE145E142F3, 0x43B7B50621B77B04,
|
||||
0x43B7D8D17BB65E0C, 0x52D3BF3378B80F5E, 0x02B2D5727D8D172B, 0x17B2B5B43BF33A90, 0x3787BB652D572D9 , 0x27D78B802B5B4920,
|
||||
0x11C47C6436A05E01, 0x5301CAA652745306, 0x54D304A247C64855, 0x4364D6B11CAA669B, 0x65236A05304A2641, 0x247527454D6B1760,
|
||||
0x54B24A673E176D79, 0x64E4BDE7523241B0, 0x44C4E5F124A67957, 0x73E4C2154BDE76AF, 0x7523E1764E5F1493, 0x124523244C215DA5,
|
||||
0x53940AE633A052B , 0x569390D11A4D00C2, 0x05A69E8640AE6BCA, 0x6335AF35390D106B, 0x11A33A0569E86018, 0x6401A4D05AF356CF,
|
||||
0x10D14B6263561D4 , 0x14C0D2E244F31C6 , 0x1454CBF114B6299B, 0x26345AC10D2E25F0, 0x244635614CBF132A, 0x11444F3145AC18B6,
|
||||
0x222263442227567D, 0x52422C5106B54E2F, 0x46C2442326344534, 0x4226C37222C515EC, 0x106222752442370D, 0x32606B546C3721C6,
|
||||
0x6606AF3634EF687D, 0x66A603961C06323A, 0x3496AE706AF36A60, 0x63449D0660396F52, 0x61C34EF66AE70AA1, 0x06A1C06349D06CBC,
|
||||
0x1663A9A26F9576C8, 0x71D66DF0584C4258, 0x4571D4803A9A27BB, 0x26F57DD166DF0D47, 0x0586F9571D4804EA, 0x03A584C457DD1E67,
|
||||
0x66225C12789C7895, 0x74F6274275336111, 0x63F4FBF625C122C8, 0x2783F9F662742114, 0x275789C74FBF6D26, 0x625753363F9F6482,
|
||||
0x77E499E266F02CD9, 0x2447EBC111083202, 0x34944011499E2618, 0x26649DF77EBC1351, 0x11166F02440112F1, 0x1491108349DF7BC1,
|
||||
0x16B61AF13BF45C25, 0x52D6B1F731BA7FA0, 0x7632D86561AF1AED, 0x13B63E016B1F7D29, 0x7313BF452D865294, 0x56131BA763E01129,
|
||||
0x2081FE3A7E9E77A5, 0x77208597100435D7, 0x331722841FE3A71 , 0xA7E31C5208597C81, 0x7107E9E7722849FA, 0x41F1004331C520AF,
|
||||
0x1155CA077BA178DC, 0x702150E67F102D31, 0x25D02C345CA07864, 0x77B5D041150E6F98, 0x67F7BA1702C34882, 0x45C7F1025D041F11,
|
||||
0x355426F30C613C57, 0x37A5599253984FD1, 0x42B7AFA0426F38AD, 0x30C2B25355992B1D, 0x2530C6137AFA078D, 0x042539842B253413,
|
||||
0x51A28933594B32CF, 0x3291A0B432887E38, 0x765291B428933B46, 0x359653A51A0B4168, 0x432594B3291B4A94, 0x42832887653A5E8D,
|
||||
0x65030DA421746BBE, 0x63450C565EFE6415, 0x6523471130DA429C, 0x421529C650C5640C, 0x65E2174634711AA4, 0x1305EFE6529C67A6,
|
||||
0x42803CA0105957CD, 0x525283854D287499, 0x74225A0403CA0AA7, 0x010420D428385832, 0x54D1059525A04A02, 0x4034D287420D47A4,
|
||||
0x72759E2135627556, 0x74527E834BC11E4C, 0x1224586159E215C7, 0x1352282727E838B4, 0x34B35627458612F4, 0x1594BC1122827F6F,
|
||||
0x64F4E495449D4DBA, 0x4394FD27679B7362, 0x737395E74E495845, 0x544375A64FD270D1, 0x767449D4395E76A0, 0x74E679B7375A655E,
|
||||
0x05161EF712E2058F, 0x06751FF573F970CA, 0x77F6741061EF73B3, 0x7127FDA051FF5362, 0x57312E2067410345, 0x06173F977FDA0B3B,
|
||||
0x14B26557221962E8, 0x6264B30017AB6543, 0x67E268E126557412, 0x7227E0D14B30084D, 0x01722196268E191D, 0x12617AB67E0D13DF,
|
||||
0x65677FA773EF127D, 0x112560024DEC5DB1, 0x51512DD077FA745F, 0x773157F656002898, 0x24D73EF112DD0A40, 0x0774DEC5157F6DDF,
|
||||
0x3337B63042A55F8E, 0x532338B643597924, 0x74F329457B630C3F, 0x0424FA23338B6B58, 0x64342A5532945F75, 0x57B435974FA23A0E,
|
||||
0x02406114036E38C0, 0x3192466033B18FD , 0x81219BB006114337, 0x403124C024660ACB, 0x033036E319BB02F0, 0x00633B18124C0A47,
|
||||
0x5360C6123A951701, 0x1513607401155ABF, 0x563516600C612D71, 0x23A635F536074CA7, 0x4013A95151660C41, 0x00C01155635F58C7,
|
||||
0x50165B077FC2002D, 0x079015F60E6A7CF3, 0x76E791B765B07D07, 0x77F6E475015F6A6B, 0x60E7FC20791B70DD, 0x7650E6A76E475719,
|
||||
0x74671942424314C7, 0x167464A268426EB , 0x66B6775771942FEE, 0x2426BA77464A2F52, 0x26842431677579FD, 0x771684266BA775AE,
|
||||
0x31D78D951F66EFF , 0xE3B1D0B31A795237, 0x52F3BD3478D9545F, 0x51F2F8531D0B344D, 0x31A1F66E3BD34AB7, 0x4781A7952F85312A,
|
||||
0x20208DF316C542AD, 0x46D028113990185D, 0x1406D35108DF3351, 0x3164066202811AA5, 0x13916C546D351F41, 0x108399014066269D,
|
||||
0x1355DD7006B660BF, 0x66835D746EDB4768, 0x411689E25DD70CF0, 0x0061143135D74F6E, 0x46E06B66689E220C, 0x25D6EDB411431687,
|
||||
0x01D302F0147C49C9, 0x4481DAB6385762BD, 0x63748325302F0AE4, 0x01437D501DAB67F8, 0x638147C4483256C9, 0x5303857637D50FCB,
|
||||
0x15819DB74EA82711, 0x26A58DE04D7B2C98, 0x2376AFF719DB78BC, 0x74E3762158DE0DC2, 0x04D4EA826AFF7E7B, 0x7194D7B237621C93,
|
||||
0x32E7F884792C6E19, 0x66C2E19677001192, 0x16A6C7137F88439D, 0x4796AF432E196A66, 0x677792C66C71378C, 0x37F770016AF43B3A,
|
||||
0x06D4BEE17C16225E, 0x2346D5B56687337 , 0x368345D44BEE1608, 0x17C681206D5B5552, 0x5667C162345D4590, 0x44B66873681209CC,
|
||||
0x11F198807B242819, 0x2241FC72508A1416, 0x16A24BD019880FE3, 0x07B6A1D11FC7288A, 0x2507B24224BD0502, 0x019508A16A1D1678,
|
||||
0x45E5ADE120E6CA0 , 0xC7A5EA8659BE2057, 0x2117A2005ADE11EB, 0x120114945EA8649D, 0x65920E6C7A200E6F, 0x05A59BE21149481D,
|
||||
0x5636731272281E93, 0x15263B840A5B0451, 0x07C5221767312D58, 0x2727CDF563B849F1, 0x40A7228152217960, 0x7670A5B07CDF59F3,
|
||||
0x5347DF1533C775C0, 0x73834E961EBA0799, 0x05E38FC77DF1506 , 0x5335EA0534E96110, 0x61E33C7738FC73E3, 0x77D1EBA05EA059B2,
|
||||
0x16C43911022936EA, 0x31C6C0D1316406F6, 0x0381C6F343911185, 0x10238DB16C0D10F3, 0x131022931C6F3DF8, 0x3433164038DB12A9,
|
||||
0x5775F4A35CD41244, 0x14C77CE12C9F0A7B, 0x0314C8005F4A315F, 0x35C318D577CE1C66, 0x12C5CD414C800860, 0x05F2C9F0318D53E0,
|
||||
0x421750817105420D, 0x420217E4575361F2, 0x64D20101750810BA, 0x1714D884217E4CA5, 0x457710542010140 , 0x175575364D884763,
|
||||
0x008141C642BB0DA7, 0x046087F532D53A74, 0x32D464B5141C6CD4, 0x6422D2A0087F5FC3, 0x53242BB0464B53 , 0x51432D532D2A05F6,
|
||||
0x5223EB9215532B45, 0x21F221465D5C3CE1, 0x3111FC523EB9216A, 0x21511AE52214611B, 0x65D155321FC52C5F, 0x23E5D5C311AE5DD7,
|
||||
0x46D7400020B925A9, 0x2386D0E07C640AF4, 0x00938E6A740009AC, 0x020091046D0E0321, 0x07C20B9238E6A61 , 0xA747C64009104544,
|
||||
0x666341A6474F26C8, 0x2596619015254CF3, 0x424598B2341A6B59, 0x64724126661904CE, 0x015474F2598B2197, 0x234152542412659D,
|
||||
0x13008FD161976DD4, 0x63430400329B3E16, 0x3553456308FD1FB0, 0x16155CC1304006F3, 0x032619763456309 , 0x308329B355CC15F1,
|
||||
0x0350036D59DA7630, 0x729353775C801335, 0x175299470036D52 , 0xD5975280353775A5, 0x75C59DA7299476EB, 0x7005C80175280568,
|
||||
0x37F64761766F5264, 0x51B7FB302EA233A6, 0x3361BC03647619F3, 0x17636BC37FB30C7A, 0x02E766F51BC03B9 , 0x3642EA2336BC3061,
|
||||
0x7640AC043F30596E, 0x51E641973E2A527B, 0x5211ECC30AC04220, 0x43F21447641979A3, 0x73E3F3051ECC3B89, 0x30A3E2A521447BC1,
|
||||
0x157299E54E8F2E26, 0x21D57C940C5A1D90, 0x1761D486299E5467, 0x54E76F3157C947E3, 0x40C4E8F21D4865ED, 0x6290C5A176F31C3D,
|
||||
0x05C6FFB34EE81CDF, 0x1305C8233479195E, 0x147300F76FFB3AE1, 0x34E479405C82398 , 0x3344EE81300F7364, 0x76F3479147940AFA,
|
||||
0xF3A224A33B853E3E, 0x3223A674598C440D, 0x42E22880224A3D89, 0x33B2E77F3A674204, 0x4593B85322880A38, 0x022598C42E77F2D ,
|
||||
0x6091FE9022841C9C, 0x12D093354F0609C3, 0x07E2D6B61FE90922, 0x0227EDB609335017, 0x54F228412D6B69A7, 0x61F4F0607EDB63F9,
|
||||
0xE2524BE1099A74EF, 0x716251D21F9F1B40, 0x12816AC524BE17E8, 0x10928D7E251D2F7A, 0x21F099A716AC50D3, 0x5241F9F128D7ED6 ,
|
||||
0x36430DF66D193443, 0x36364FF676156F1B, 0x67463DB230DF6A4E, 0x66D7435364FF6794, 0x6766D19363DB2C9A, 0x2307615674353022,
|
||||
0x16742501556E025C, 0x070675A123802AF9, 0x27F70B22425018A4, 0x1557FB01675A18BB, 0x123556E070B227B9, 0x242238027FB01BF ,
|
||||
0x14F6574563E7910 , 0x9524F6E36C661591, 0x11E52B3265745D2B, 0x5631E6A14F6E379D, 0x36C63E7952B32FAC, 0x2656C6611E6A1101,
|
||||
0x34B469701DE22385, 0x2544BAB42338191F, 0x17854EB4469704B6, 0x01D783934BAB4599, 0x4231DE2254EB4809, 0x4462338178393E6D,
|
||||
0x02D288D5550017DD, 0x1202D52639B120E1, 0x24E20D22288D52D3, 0x5554E1202D52668C, 0x6395500120D22A68, 0x22839B124E1207D1,
|
||||
0x734251773FCC0EFE, 0x05A34BF547F37E64, 0x76F5A8D325177A90, 0x73F6F72734BF5D4D, 0x5473FCC05A8D3DCE, 0x32547F376F7275A8,
|
||||
0x70A64DB56BEA2655, 0x22C0A4D42A1810FC, 0x1712C40264DB593A, 0x56B71C070A4D4BC0, 0x42A6BEA22C402E93, 0x2642A18171C077F9,
|
||||
0x458752F16F0C4577, 0x42C582E370412414, 0x24D2C455752F1DC1, 0x16F4DCD4582E38EA, 0x3706F0C42C455F7B, 0x575704124DCD4EDB,
|
||||
0x53D4FCA112BC2696, 0x2503D5E77B037135, 0x736502F44FCA1F8C, 0x112361653D5E75F6, 0x77B12BC2502F41B0, 0x44F7B037361653F1,
|
||||
0x64657E702E5B0E31, 0x047467B320266B19, 0x61F4703257E703D7, 0x02E1F776467B3E00, 0x3202E5B047032BA3, 0x257202661F776B9C,
|
||||
0x07D1BD5062570A84, 0x07F7D0A27EC75B48, 0x5297FCC21BD5012 , 0x062291307D0A2D5D, 0x27E625707FCC29F2, 0x21B7EC75291304B6,
|
||||
0xE3A7D12719D558ED, 0x55F3ADE047551C8 , 0x1255F7417D12738F, 0x71925D2E3ADE0892, 0x04719D555F741997, 0x17D4755125D2E2F ,
|
||||
0x65415E922B9F2269, 0x227544375C134FED, 0x456272D315E92399, 0x22B5618654437F4E, 0x75C2B9F2272D32AB, 0x3155C13456186AA1,
|
||||
0x8462A8717E4D355C, 0x32C4637A234D7836, 0x75F2C1832A871760, 0x17E5FC784637A94 , 0xA237E4D32C183207, 0x32A234D75FC78B3 ,
|
||||
0x34E6C9F47F10621E, 0x6624E3F1276966B2, 0x62562BA26C9F4A11, 0x47F25F234E3F182C, 0x1277F10662BA2EF5, 0x26C2769625F239CD,
|
||||
0x63F0AC1573D63FED, 0x3733F3D3636E1F5E, 0x135738320AC15A0E, 0x57335C363F3D33EB, 0x36373D63738326EA, 0x20A636E135C366B1,
|
||||
0x642711A14D476E86, 0x67E426A402F63208, 0x3757E4D1711A1FC1, 0x14D75E46426A4396, 0x4024D4767E4D1B93, 0x17102F6375E46DB7,
|
||||
0x60A7AD242F3C44A7, 0x4490A56351A56F5C, 0x64C499527AD2463D, 0x42F4C4B60A5639CA, 0x3512F3C449952C78, 0x27A51A564C4B64F6,
|
||||
0x14B438673AFE7F8D, 0x7554BC1466993D04, 0x36855A8743867F37, 0x73A681A14BC146C2, 0x4663AFE755A875EC, 0x74366993681A1A75,
|
||||
0x61820F7730A67E1B, 0x773189184A4A7D0C, 0x7547389720F77993, 0x730542661891805 , 0x84A30A67738976AD, 0x7204A4A7542667D6,
|
||||
0x6442BF173C5C6EBF, 0x668447C34499187F, 0x17A68D842BF17C97, 0x73C7AAB6447C317F, 0x3443C5C668D8419C, 0x42B449917AAB6456,
|
||||
0x43D09163421B4F29, 0x41A3D72A76740F9C, 0x0751AD5409163B8D, 0x342754943D72AAB , 0xA76421B41AD54DD7, 0x40976740754946EE,
|
||||
0x654105637317342B, 0x30C54BB4218546D4, 0x45D0CE6310563DA7, 0x3735D14654BB4CCE, 0x421731730CE63E46, 0x310218545D146234,
|
||||
0x40709D7233BE6C63, 0x63607C36325044E5, 0x42D3655309D72335, 0x2332DFA407C36BA , 0x63233BE6365530CC, 0x309325042DFA448C,
|
||||
0x312150271663516F, 0x53C1253259B00AA , 0x0493CEF0150274EA, 0x716492F312532D4A, 0x259166353CEF002D, 0x01559B00492F3DA5,
|
||||
0x72F14A10263A2574, 0x2682F6276F8005C2, 0x0266829314A10651, 0x026269872F627ABA, 0x76F263A268293238, 0x3146F80026987646,
|
||||
0x12B59B1552590516, 0x0532B2A410144D36, 0x4275395359B151B9, 0x552278512B2A4F05, 0x4105259053953699, 0x3591014427851C75,
|
||||
0xF4F32843180646F3, 0x54718F4F2E970306, 0x6623953632843145, 0x318D315E18F4FE8F
|
||||
};
|
||||
|
||||
/* The source data is random across the q63_t range. Accessing it by word should
|
||||
remain random. */
|
||||
const q31_t * intrinsics_q31_inputs = (q31_t *) intrinsics_q63_inputs;
|
31
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/main.c
Normal file
31
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/main.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "all_tests.h"
|
||||
#include "arm_math.h"
|
||||
|
||||
|
||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && !defined (__MICROLIB)
|
||||
__asm(" .global __ARM_use_no_argv\n");
|
||||
#endif
|
||||
|
||||
|
||||
void debug_init(void)
|
||||
{
|
||||
uint32_t * SHCSR_ptr = (uint32_t *) 0xE000ED24; /* System Handler Control and State Register */
|
||||
*SHCSR_ptr |= 0x70000; /* Enable UsageFault, BusFault, and MemManage fault*/
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
#if !defined(FILEIO)
|
||||
debug_init();
|
||||
#endif
|
||||
|
||||
JTEST_INIT(); /* Initialize test framework. */
|
||||
|
||||
JTEST_GROUP_CALL(all_tests); /* Run all tests. */
|
||||
|
||||
JTEST_ACT_EXIT_FW(); /* Exit test framework. */
|
||||
#if !defined(FILEIO)
|
||||
while (1); /* Never return. */
|
||||
#endif
|
||||
}
|
509
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/math_helper.c
Normal file
509
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/math_helper.c
Normal file
@ -0,0 +1,509 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
* Copyright (C) 2010 ARM Limited. All rights reserved.
|
||||
*
|
||||
* $Date: 29. November 2010
|
||||
* $Revision: V1.0.3
|
||||
*
|
||||
* Project: CMSIS DSP Library
|
||||
*
|
||||
* Title: math_helper.c
|
||||
*
|
||||
* Description: Definition of all helper functions required.
|
||||
*
|
||||
* Target Processor: Cortex-M4/Cortex-M3
|
||||
*
|
||||
* Version 1.0.3 2010/11/29
|
||||
* Re-organized the CMSIS folders and updated documentation.
|
||||
*
|
||||
* Version 1.0.2 2010/11/11
|
||||
* Documentation updated.
|
||||
*
|
||||
* Version 1.0.1 2010/10/05
|
||||
* Production release and review comments incorporated.
|
||||
*
|
||||
* Version 1.0.0 2010/09/20
|
||||
* Production release and review comments incorporated.
|
||||
*
|
||||
* Version 0.0.7 2010/06/10
|
||||
* Misra-C changes done
|
||||
* -------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
* Include standard header files
|
||||
* -------------------------------------------------------------------- */
|
||||
#include<math.h>
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
* Include project header files
|
||||
* -------------------------------------------------------------------- */
|
||||
#include "math_helper.h"
|
||||
|
||||
/**
|
||||
* @brief Caluclation of SNR
|
||||
* @param float* Pointer to the reference buffer
|
||||
* @param float* Pointer to the test buffer
|
||||
* @param uint32_t total number of samples
|
||||
* @return float SNR
|
||||
* The function Caluclates signal to noise ratio for the reference output
|
||||
* and test output
|
||||
*/
|
||||
|
||||
float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize)
|
||||
{
|
||||
float EnergySignal = 0.0, EnergyError = 0.0;
|
||||
uint32_t i;
|
||||
float SNR;
|
||||
int temp;
|
||||
int *test;
|
||||
|
||||
for (i = 0; i < buffSize; i++)
|
||||
{
|
||||
/* Checking for a NAN value in pRef array */
|
||||
test = (int *)(&pRef[i]);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
|
||||
/* Checking for a NAN value in pTest array */
|
||||
test = (int *)(&pTest[i]);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
EnergySignal += pRef[i] * pRef[i];
|
||||
EnergyError += (pRef[i] - pTest[i]) * (pRef[i] - pTest[i]);
|
||||
}
|
||||
|
||||
/* Checking for a NAN value in EnergyError */
|
||||
test = (int *)(&EnergyError);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
|
||||
|
||||
SNR = 10 * log10f (EnergySignal / EnergyError);
|
||||
|
||||
/* Checking for a NAN value in SNR */
|
||||
test = (int *)(&SNR);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
|
||||
return (SNR);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
double arm_snr_f64(double *pRef, double *pTest, uint32_t buffSize)
|
||||
{
|
||||
double EnergySignal = 0.0, EnergyError = 0.0;
|
||||
uint32_t i;
|
||||
double SNR;
|
||||
int temp;
|
||||
int *test;
|
||||
|
||||
for (i = 0; i < buffSize; i++)
|
||||
{
|
||||
/* Checking for a NAN value in pRef array */
|
||||
test = (int *)(&pRef[i]);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
|
||||
/* Checking for a NAN value in pTest array */
|
||||
test = (int *)(&pTest[i]);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
EnergySignal += pRef[i] * pRef[i];
|
||||
EnergyError += (pRef[i] - pTest[i]) * (pRef[i] - pTest[i]);
|
||||
}
|
||||
|
||||
/* Checking for a NAN value in EnergyError */
|
||||
test = (int *)(&EnergyError);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(100000.0);
|
||||
}
|
||||
|
||||
|
||||
SNR = 10 * log10 (EnergySignal / EnergyError);
|
||||
|
||||
/* Checking for a NAN value in SNR */
|
||||
test = (int *)(&SNR);
|
||||
temp = *test;
|
||||
|
||||
if (temp == 0x7FC00000)
|
||||
{
|
||||
return(10000.0);
|
||||
}
|
||||
|
||||
return (SNR);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Provide guard bits for Input buffer
|
||||
* @param q15_t* Pointer to input buffer
|
||||
* @param uint32_t blockSize
|
||||
* @param uint32_t guard_bits
|
||||
* @return none
|
||||
* The function Provides the guard bits for the buffer
|
||||
* to avoid overflow
|
||||
*/
|
||||
|
||||
void arm_provide_guard_bits_q15 (q15_t * input_buf, uint32_t blockSize,
|
||||
uint32_t guard_bits)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < blockSize; i++)
|
||||
{
|
||||
input_buf[i] = input_buf[i] >> guard_bits;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Converts float to fixed in q12.20 format
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point(q12.20) values
|
||||
*/
|
||||
|
||||
void arm_float_to_q12_20(float *pIn, q31_t * pOut, uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
/* 1048576.0f corresponds to pow(2, 20) */
|
||||
pOut[i] = (q31_t) (pIn[i] * 1048576.0f);
|
||||
|
||||
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
|
||||
|
||||
if (pIn[i] == (float) 1.0)
|
||||
{
|
||||
pOut[i] = 0x000FFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Compare MATLAB Reference Output and ARM Test output
|
||||
* @param q15_t* Pointer to Ref buffer
|
||||
* @param q15_t* Pointer to Test buffer
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
*/
|
||||
|
||||
uint32_t arm_compare_fixed_q15(q15_t *pIn, q15_t * pOut, uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
int32_t diff, diffCrnt = 0;
|
||||
uint32_t maxDiff = 0;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
diff = pIn[i] - pOut[i];
|
||||
diffCrnt = (diff > 0) ? diff : -diff;
|
||||
|
||||
if (diffCrnt > maxDiff)
|
||||
{
|
||||
maxDiff = diffCrnt;
|
||||
}
|
||||
}
|
||||
|
||||
return(maxDiff);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Compare MATLAB Reference Output and ARM Test output
|
||||
* @param q31_t* Pointer to Ref buffer
|
||||
* @param q31_t* Pointer to Test buffer
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
*/
|
||||
|
||||
uint32_t arm_compare_fixed_q31(q31_t *pIn, q31_t * pOut, uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
int32_t diff, diffCrnt = 0;
|
||||
uint32_t maxDiff = 0;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
diff = pIn[i] - pOut[i];
|
||||
diffCrnt = (diff > 0) ? diff : -diff;
|
||||
|
||||
if (diffCrnt > maxDiff)
|
||||
{
|
||||
maxDiff = diffCrnt;
|
||||
}
|
||||
}
|
||||
|
||||
return(maxDiff);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Provide guard bits for Input buffer
|
||||
* @param q31_t* Pointer to input buffer
|
||||
* @param uint32_t blockSize
|
||||
* @param uint32_t guard_bits
|
||||
* @return none
|
||||
* The function Provides the guard bits for the buffer
|
||||
* to avoid overflow
|
||||
*/
|
||||
|
||||
void arm_provide_guard_bits_q31 (q31_t * input_buf,
|
||||
uint32_t blockSize,
|
||||
uint32_t guard_bits)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < blockSize; i++)
|
||||
{
|
||||
input_buf[i] = input_buf[i] >> guard_bits;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Provide guard bits for Input buffer
|
||||
* @param q31_t* Pointer to input buffer
|
||||
* @param uint32_t blockSize
|
||||
* @param uint32_t guard_bits
|
||||
* @return none
|
||||
* The function Provides the guard bits for the buffer
|
||||
* to avoid overflow
|
||||
*/
|
||||
|
||||
void arm_provide_guard_bits_q7 (q7_t * input_buf,
|
||||
uint32_t blockSize,
|
||||
uint32_t guard_bits)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < blockSize; i++)
|
||||
{
|
||||
input_buf[i] = input_buf[i] >> guard_bits;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Caluclates number of guard bits
|
||||
* @param uint32_t number of additions
|
||||
* @return none
|
||||
* The function Caluclates the number of guard bits
|
||||
* depending on the numtaps
|
||||
*/
|
||||
|
||||
uint32_t arm_calc_guard_bits (uint32_t num_adds)
|
||||
{
|
||||
uint32_t i = 1, j = 0;
|
||||
|
||||
if (num_adds == 1)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
while (i < num_adds)
|
||||
{
|
||||
i = i * 2;
|
||||
j++;
|
||||
}
|
||||
|
||||
return (j);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Converts Q15 to floating-point
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
*/
|
||||
|
||||
void arm_apply_guard_bits (float32_t * pIn,
|
||||
uint32_t numSamples,
|
||||
uint32_t guard_bits)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
pIn[i] = pIn[i] * arm_calc_2pow(guard_bits);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Calculates pow(2, numShifts)
|
||||
* @param uint32_t number of shifts
|
||||
* @return pow(2, numShifts)
|
||||
*/
|
||||
uint32_t arm_calc_2pow(uint32_t numShifts)
|
||||
{
|
||||
|
||||
uint32_t i, val = 1;
|
||||
|
||||
for (i = 0; i < numShifts; i++)
|
||||
{
|
||||
val = val * 2;
|
||||
}
|
||||
|
||||
return(val);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief Converts float to fixed q14
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point values
|
||||
*/
|
||||
|
||||
void arm_float_to_q14 (float *pIn, q15_t * pOut,
|
||||
uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
/* 16384.0f corresponds to pow(2, 14) */
|
||||
pOut[i] = (q15_t) (pIn[i] * 16384.0f);
|
||||
|
||||
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
|
||||
|
||||
if (pIn[i] == (float) 2.0)
|
||||
{
|
||||
pOut[i] = 0x7FFF;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Converts float to fixed q30 format
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point values
|
||||
*/
|
||||
|
||||
void arm_float_to_q30 (float *pIn, q31_t * pOut,
|
||||
uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
/* 1073741824.0f corresponds to pow(2, 30) */
|
||||
pOut[i] = (q31_t) (pIn[i] * 1073741824.0f);
|
||||
|
||||
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
|
||||
|
||||
if (pIn[i] == (float) 2.0)
|
||||
{
|
||||
pOut[i] = 0x7FFFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Converts float to fixed q30 format
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point values
|
||||
*/
|
||||
|
||||
void arm_float_to_q29 (float *pIn, q31_t * pOut,
|
||||
uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
/* 1073741824.0f corresponds to pow(2, 30) */
|
||||
pOut[i] = (q31_t) (pIn[i] * 536870912.0f);
|
||||
|
||||
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
|
||||
|
||||
if (pIn[i] == (float) 4.0)
|
||||
{
|
||||
pOut[i] = 0x7FFFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Converts float to fixed q28 format
|
||||
* @param uint32_t number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point values
|
||||
*/
|
||||
|
||||
void arm_float_to_q28 (float *pIn, q31_t * pOut,
|
||||
uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
/* 268435456.0f corresponds to pow(2, 28) */
|
||||
pOut[i] = (q31_t) (pIn[i] * 268435456.0f);
|
||||
|
||||
pOut[i] += pIn[i] > 0 ? 0.5 : -0.5;
|
||||
|
||||
if (pIn[i] == (float) 8.0)
|
||||
{
|
||||
pOut[i] = 0x7FFFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clip the float values to +/- 1
|
||||
* @param pIn input buffer
|
||||
* @param numSamples number of samples in the buffer
|
||||
* @return none
|
||||
* The function converts floating point values to fixed point values
|
||||
*/
|
||||
|
||||
void arm_clip_f32 (float *pIn, uint32_t numSamples)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < numSamples; i++)
|
||||
{
|
||||
if (pIn[i] > 1.0f)
|
||||
{
|
||||
pIn[i] = 1.0;
|
||||
}
|
||||
else if ( pIn[i] < -1.0f)
|
||||
{
|
||||
pIn[i] = -1.0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_ADD_TEST(suffix) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT2( \
|
||||
mat_add, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_ADDITIVE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_ADDITIVE_DIMENSIONS, \
|
||||
MATRIX_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MAT_ADD_TEST(f32);
|
||||
JTEST_ARM_MAT_ADD_TEST(q31);
|
||||
JTEST_ARM_MAT_ADD_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_add_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_mat_add_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_add_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_add_q15_test);
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_CMPLX_MULT_TEST(suffix, comparison_interface) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT2( \
|
||||
mat_cmplx_mult, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS, \
|
||||
comparison_interface)
|
||||
|
||||
JTEST_ARM_MAT_CMPLX_MULT_TEST(f32, MATRIX_SNR_COMPARE_INTERFACE);
|
||||
JTEST_ARM_MAT_CMPLX_MULT_TEST(q31, MATRIX_COMPARE_INTERFACE);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Q15 Uses a Different interface than the others. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define ARM_mat_cmplx_mult_q15_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
|
||||
PAREN(input_a_ptr, input_b_ptr, \
|
||||
(void *) &matrix_output_fut, \
|
||||
(q15_t *) matrix_output_scratch)
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_cmplx_mult_q15_test, arm_mat_cmplx_mult_q15)
|
||||
{
|
||||
MATRIX_TEST_TEMPLATE_ELT2(
|
||||
matrix_q15_a_inputs,
|
||||
matrix_q15_b_inputs,
|
||||
arm_matrix_instance_q15 * ,
|
||||
arm_matrix_instance_q15,
|
||||
TYPE_FROM_ABBREV(q15),
|
||||
arm_mat_cmplx_mult_q15,
|
||||
ARM_mat_cmplx_mult_q15_INPUT_INTERFACE,
|
||||
ref_mat_cmplx_mult_q15,
|
||||
REF_mat_cmplx_mult_INPUT_INTERFACE,
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT,
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS,
|
||||
MATRIX_COMPARE_INTERFACE);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_cmplx_mult_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_cmplx_mult_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_cmplx_mult_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_cmplx_mult_q15_test);
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_INIT_TEST(suffix) \
|
||||
JTEST_DEFINE_TEST(arm_mat_init_##suffix##_test, \
|
||||
arm_mat_init_##suffix) \
|
||||
{ \
|
||||
const uint16_t rows = 4; \
|
||||
const uint16_t cols = 2; \
|
||||
arm_matrix_instance_##suffix matrix = {0}; \
|
||||
/* TYPE_FROM_ABBREV(suffix) data[rows*cols] = {0}; */ \
|
||||
TYPE_FROM_ABBREV(suffix) data[4*2] = {0}; \
|
||||
\
|
||||
arm_mat_init_##suffix(&matrix, \
|
||||
rows, \
|
||||
cols, \
|
||||
data); \
|
||||
\
|
||||
JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n", \
|
||||
(int)matrix.numRows, \
|
||||
(int)matrix.numCols); \
|
||||
\
|
||||
if ((matrix.numRows == rows) && \
|
||||
(matrix.numCols == cols) && \
|
||||
(matrix.pData == data)) \
|
||||
{ \
|
||||
return JTEST_TEST_PASSED; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
return JTEST_TEST_FAILED; \
|
||||
} \
|
||||
\
|
||||
}
|
||||
|
||||
JTEST_ARM_MAT_INIT_TEST(f32);
|
||||
JTEST_ARM_MAT_INIT_TEST(q31);
|
||||
JTEST_ARM_MAT_INIT_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_init_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_init_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_init_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_init_q15_test);
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_inverse_f32_test, arm_mat_inverse_f32)
|
||||
{
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
mat_idx, arm_matrix_instance_f32 *, mat_ptr, matrix_f32_invertible_inputs
|
||||
,
|
||||
JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n",
|
||||
(int)mat_ptr->numRows,
|
||||
(int)mat_ptr->numCols);
|
||||
|
||||
if (MATRIX_TEST_VALID_SQUARE_DIMENSIONS(arm_matrix_instance_f32 *, mat_ptr))
|
||||
{
|
||||
MATRIX_TEST_CONFIG_SAMESIZE_OUTPUT(arm_matrix_instance_f32 *, mat_ptr);
|
||||
|
||||
/* arm_mat_inverse_f32() modifies its source input. Use the scratch
|
||||
* buffer to store a copy of the intended input. */
|
||||
{
|
||||
float32_t * original_pdata_ptr = mat_ptr->pData;
|
||||
|
||||
memcpy(matrix_output_scratch,
|
||||
mat_ptr->pData,
|
||||
mat_ptr->numRows * mat_ptr->numCols * sizeof(float32_t));
|
||||
mat_ptr->pData = (void*) &matrix_output_scratch;
|
||||
|
||||
JTEST_COUNT_CYCLES(arm_mat_inverse_f32(mat_ptr, &matrix_output_fut));
|
||||
mat_ptr->pData = original_pdata_ptr;
|
||||
}
|
||||
|
||||
ref_mat_inverse_f32(mat_ptr, &matrix_output_ref);
|
||||
|
||||
MATRIX_SNR_COMPARE_INTERFACE(arm_matrix_instance_f32,
|
||||
float32_t);
|
||||
});
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_inverse_f64_test, arm_mat_inverse_f64)
|
||||
{
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
mat_idx, arm_matrix_instance_f64 *, mat_ptr, matrix_f64_invertible_inputs
|
||||
,
|
||||
JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n",
|
||||
(int)mat_ptr->numRows,
|
||||
(int)mat_ptr->numCols);
|
||||
|
||||
if (MATRIX_TEST_VALID_SQUARE_DIMENSIONS(arm_matrix_instance_f64 *, mat_ptr))
|
||||
{
|
||||
MATRIX_TEST_CONFIG_SAMESIZE_OUTPUT(arm_matrix_instance_f64 *, mat_ptr);
|
||||
|
||||
/* arm_mat_inverse_f64() modifies its source input. Use the scratch
|
||||
* buffer to store a copy of the intended input. */
|
||||
{
|
||||
float64_t * original_pdata_ptr = mat_ptr->pData;
|
||||
|
||||
memcpy(matrix_output_scratch,
|
||||
mat_ptr->pData,
|
||||
mat_ptr->numRows * mat_ptr->numCols * sizeof(float64_t));
|
||||
mat_ptr->pData = (void*) &matrix_output_scratch;
|
||||
|
||||
JTEST_COUNT_CYCLES(arm_mat_inverse_f64(mat_ptr, &matrix_output_fut64));
|
||||
mat_ptr->pData = original_pdata_ptr;
|
||||
}
|
||||
|
||||
ref_mat_inverse_f64(mat_ptr, &matrix_output_ref64);
|
||||
|
||||
MATRIX_DBL_SNR_COMPARE_INTERFACE(arm_matrix_instance_f64);
|
||||
});
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_inverse_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_inverse_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_inverse_f64_test);
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_MULT_FAST_TEST(suffix) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT2( \
|
||||
mat_mult_fast, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS, \
|
||||
MATRIX_SNR_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MAT_MULT_FAST_TEST(q31);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Q15 Uses a Different interface than the others. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define ARM_mat_mult_fast_q15_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
|
||||
PAREN(input_a_ptr, input_b_ptr, \
|
||||
(void *) &matrix_output_fut, \
|
||||
(q15_t *) matrix_output_scratch)
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_mult_fast_q15_test, arm_mat_mult_fast_q15)
|
||||
{
|
||||
MATRIX_TEST_TEMPLATE_ELT2(
|
||||
matrix_q15_a_inputs,
|
||||
matrix_q15_b_inputs,
|
||||
arm_matrix_instance_q15 * ,
|
||||
arm_matrix_instance_q15,
|
||||
TYPE_FROM_ABBREV(q15),
|
||||
arm_mat_mult_fast_q15,
|
||||
ARM_mat_mult_fast_q15_INPUT_INTERFACE,
|
||||
ref_mat_mult_fast_q15,
|
||||
REF_mat_mult_fast_INPUT_INTERFACE,
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT,
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS,
|
||||
MATRIX_SNR_COMPARE_INTERFACE);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_mult_fast_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_mult_fast_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_mult_fast_q15_test);
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_MULT_TEST(suffix) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT2( \
|
||||
mat_mult, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS, \
|
||||
MATRIX_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MAT_MULT_TEST(f32);
|
||||
JTEST_ARM_MAT_MULT_TEST(q31);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Q15 Uses a Different interface than the others. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define ARM_mat_mult_q15_INPUT_INTERFACE(input_a_ptr, input_b_ptr) \
|
||||
PAREN(input_a_ptr, input_b_ptr, \
|
||||
(void *) &matrix_output_fut, \
|
||||
(q15_t *) matrix_output_scratch)
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_mult_q15_test, arm_mat_mult_q15)
|
||||
{
|
||||
MATRIX_TEST_TEMPLATE_ELT2(
|
||||
matrix_q15_a_inputs,
|
||||
matrix_q15_b_inputs,
|
||||
arm_matrix_instance_q15 * ,
|
||||
arm_matrix_instance_q15,
|
||||
TYPE_FROM_ABBREV(q15),
|
||||
arm_mat_mult_q15,
|
||||
ARM_mat_mult_q15_INPUT_INTERFACE,
|
||||
ref_mat_mult_q15,
|
||||
REF_mat_mult_INPUT_INTERFACE,
|
||||
MATRIX_TEST_CONFIG_MULTIPLICATIVE_OUTPUT,
|
||||
MATRIX_TEST_VALID_MULTIPLICATIVE_DIMENSIONS,
|
||||
MATRIX_COMPARE_INTERFACE);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_mult_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_mult_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_mult_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_mult_q15_test);
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/* This is for the two fixed point cases */
|
||||
#define JTEST_ARM_MAT_SCALE_TEST(suffix,type) \
|
||||
JTEST_DEFINE_TEST(arm_mat_scale_##suffix##_test, arm_mat_scale_##suffix) \
|
||||
{ \
|
||||
uint32_t i,j; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
mat_idx, arm_matrix_instance_##suffix *, \
|
||||
mat_ptr, matrix_##suffix##_b_inputs \
|
||||
, \
|
||||
MATRIX_TEST_CONFIG_SAMESIZE_OUTPUT( \
|
||||
arm_matrix_instance_##suffix *, mat_ptr); \
|
||||
\
|
||||
for(i=0;i<MATRIX_MAX_COEFFS_LEN;i++) \
|
||||
{ \
|
||||
for(j=0;j<MATRIX_MAX_SHIFTS_LEN;j++) \
|
||||
{ \
|
||||
JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n", \
|
||||
(int)mat_ptr->numRows, \
|
||||
(int)mat_ptr->numCols); \
|
||||
\
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_mat_scale_##suffix(mat_ptr, \
|
||||
matrix_##suffix##_scale_values[i], \
|
||||
matrix_shift_values[j], \
|
||||
(arm_matrix_instance_##suffix*) &matrix_output_fut)); \
|
||||
\
|
||||
ref_mat_scale_##suffix(mat_ptr, \
|
||||
matrix_##suffix##_scale_values[i], \
|
||||
matrix_shift_values[j], \
|
||||
(arm_matrix_instance_##suffix*) &matrix_output_ref); \
|
||||
\
|
||||
MATRIX_SNR_COMPARE_INTERFACE(arm_matrix_instance_##suffix, \
|
||||
type); \
|
||||
} \
|
||||
}); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(arm_mat_scale_f32_test, arm_mat_scale_f32)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
TEMPLATE_DO_ARR_DESC(
|
||||
mat_idx, arm_matrix_instance_f32 *, mat_ptr, matrix_f32_b_inputs
|
||||
,
|
||||
MATRIX_TEST_CONFIG_SAMESIZE_OUTPUT(arm_matrix_instance_f32 *, mat_ptr);
|
||||
|
||||
for(i=0;i<MATRIX_MAX_COEFFS_LEN;i++)
|
||||
{
|
||||
JTEST_DUMP_STRF("Matrix Dimensions: %dx%d\n",
|
||||
(int)mat_ptr->numRows,
|
||||
(int)mat_ptr->numCols);
|
||||
JTEST_COUNT_CYCLES(arm_mat_scale_f32(mat_ptr, matrix_f32_scale_values[i], &matrix_output_fut));
|
||||
|
||||
ref_mat_scale_f32(mat_ptr, matrix_f32_scale_values[i], &matrix_output_ref);
|
||||
|
||||
MATRIX_SNR_COMPARE_INTERFACE(arm_matrix_instance_f32,
|
||||
float32_t);
|
||||
});
|
||||
|
||||
return JTEST_TEST_PASSED;
|
||||
}
|
||||
|
||||
JTEST_ARM_MAT_SCALE_TEST(q31,q31_t);
|
||||
JTEST_ARM_MAT_SCALE_TEST(q15,q15_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_scale_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_scale_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_scale_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_scale_q15_test);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_SUB_TEST(suffix) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT2( \
|
||||
mat_sub, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_ADDITIVE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_ADDITIVE_DIMENSIONS, \
|
||||
MATRIX_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MAT_SUB_TEST(f32);
|
||||
JTEST_ARM_MAT_SUB_TEST(q31);
|
||||
JTEST_ARM_MAT_SUB_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_sub_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_sub_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_sub_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_sub_q15_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "matrix_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAT_TRANS_TEST(suffix) \
|
||||
MATRIX_DEFINE_TEST_TEMPLATE_ELT1( \
|
||||
mat_trans, \
|
||||
suffix, \
|
||||
MATRIX_TEST_CONFIG_TRANSPOSE_OUTPUT, \
|
||||
MATRIX_TEST_VALID_DIMENSIONS_ALWAYS)
|
||||
|
||||
JTEST_ARM_MAT_TRANS_TEST(f32);
|
||||
JTEST_ARM_MAT_TRANS_TEST(q31);
|
||||
JTEST_ARM_MAT_TRANS_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mat_trans_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mat_trans_f32_test);
|
||||
JTEST_TEST_CALL(arm_mat_trans_q31_test);
|
||||
JTEST_TEST_CALL(arm_mat_trans_q15_test);
|
||||
}
|
@ -0,0 +1,259 @@
|
||||
#include "arm_math.h"
|
||||
#include "matrix_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_output_fut_data[2*MATRIX_TEST_MAX_ELTS] = {0};
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_output_ref_data[2*MATRIX_TEST_MAX_ELTS] = {0};
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_output_scratch[MATRIX_TEST_MAX_ELTS] = {0};
|
||||
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_output_f32_fut[MATRIX_TEST_MAX_ELTS];
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_output_f32_ref[MATRIX_TEST_MAX_ELTS];
|
||||
|
||||
arm_matrix_instance_f32 matrix_output_fut = {
|
||||
0,
|
||||
0,
|
||||
(float32_t *) &matrix_output_fut_data
|
||||
};
|
||||
|
||||
arm_matrix_instance_f32 matrix_output_ref = {
|
||||
0,
|
||||
0,
|
||||
(float32_t *) &matrix_output_ref_data
|
||||
};
|
||||
|
||||
arm_matrix_instance_f64 matrix_output_fut64 = {
|
||||
0,
|
||||
0,
|
||||
(float64_t *) &matrix_output_fut_data
|
||||
};
|
||||
|
||||
arm_matrix_instance_f64 matrix_output_ref64 = {
|
||||
0,
|
||||
0,
|
||||
(float64_t *) &matrix_output_ref_data
|
||||
};
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Data Buckets */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Pool of random data to base matrix inputs from.
|
||||
*/
|
||||
float32_t matrix_f32_100_rand[100] = {
|
||||
/* -45.0345569674258, first number negativ causes fault in 1x1 multiplay with 0.
|
||||
AC6 DSP_Lib calculatas a -0.0 which is not a 0.0 in memcmp!
|
||||
*/
|
||||
45.0345569674258, -11.0261163038747, -14.6841428777929,
|
||||
0.0345569674258, -11.0261163038747, -14.6841428777929,
|
||||
-20.3679194392227, 27.5712678608402, -12.1390617339732,
|
||||
-19.8753669720509, 42.3379642103244, -23.7788252219155,
|
||||
-23.7517765301667, 40.2716109915281, -25.8308714086167,
|
||||
32.1194040197959, 24.4692807074156, -1.32083675968276,
|
||||
31.1580458282477, -2.90766514824093, -6.97926086704160,
|
||||
10.2843089382083, 30.1014622769739, 44.4787189721646,
|
||||
-9.60878544118853, -48.4596562348445, -31.1044984967456,
|
||||
-6.41414114190809, 3.28255887994549, -26.9511839788442,
|
||||
-31.5183679875864, 21.1215780433683, -47.0779722437854,
|
||||
-0.913590753192006, -40.3545474831611, -45.6976198342192,
|
||||
18.6775433365315, -5.32162505701938, -14.9272896423117,
|
||||
34.4308792695389, 40.4880968679893, -27.8253265982760,
|
||||
42.8854139478045, -1.07473615999811, -36.8026707393665,
|
||||
-33.1009970537296, -31.6488844262730, -19.3650527983443,
|
||||
43.9001561999887, -30.5235710432951, 47.9748378356085,
|
||||
-38.2582349144194, 23.0330862855453, -16.2280590178623,
|
||||
44.2050590775485, 14.9115474956452, -13.1515403509664,
|
||||
0.850865538112700, 37.5942811492984, -27.4078219027601,
|
||||
-6.11300268738968, -20.3324126781673, -1.13910261964209,
|
||||
40.0053846417662, 45.6134540229802, 23.1722385658670,
|
||||
12.5618560729690, 1.07715641721097, 5.01563428984222,
|
||||
-32.9291952852141, -38.8880776559401, -18.1221698074118,
|
||||
7.85250610234389, -13.0753218879785, 7.52085950784656,
|
||||
14.7745963136307, 28.0227435151377, 31.7627708322262,
|
||||
12.2475086001227, -27.2335702183447, -24.1935304087933,
|
||||
-7.58332402861928, -26.2716420228479, -38.8797244706213,
|
||||
-44.0220457052844, -4.90762935690551, -41.8874231134215,
|
||||
29.4831416883453, 8.70447045314168, -6.43013158961009,
|
||||
-9.12801538874479, 0.785828466111815, -4.11511718200689,
|
||||
28.0252068321138, -26.5220086627594, 4.70088922863450,
|
||||
42.9385970968730, 14.4318130193692, -29.2257707266972,
|
||||
46.3088539286913
|
||||
};
|
||||
|
||||
float64_t matrix_f64_100_rand[100] = {
|
||||
// -45.0345569674258, -11.0261163038747, -14.6841428777929,
|
||||
45.0345569674258, -11.0261163038747, -14.6841428777929,
|
||||
0.0345569674258, -11.0261163038747, -14.6841428777929,
|
||||
-20.3679194392227, 27.5712678608402, -12.1390617339732,
|
||||
-19.8753669720509, 42.3379642103244, -23.7788252219155,
|
||||
-23.7517765301667, 40.2716109915281, -25.8308714086167,
|
||||
32.1194040197959, 24.4692807074156, -1.32083675968276,
|
||||
31.1580458282477, -2.90766514824093, -6.97926086704160,
|
||||
10.2843089382083, 30.1014622769739, 44.4787189721646,
|
||||
-9.60878544118853, -48.4596562348445, -31.1044984967456,
|
||||
-6.41414114190809, 3.28255887994549, -26.9511839788442,
|
||||
-31.5183679875864, 21.1215780433683, -47.0779722437854,
|
||||
-0.913590753192006, -40.3545474831611, -45.6976198342192,
|
||||
18.6775433365315, -5.32162505701938, -14.9272896423117,
|
||||
34.4308792695389, 40.4880968679893, -27.8253265982760,
|
||||
42.8854139478045, -1.07473615999811, -36.8026707393665,
|
||||
-33.1009970537296, -31.6488844262730, -19.3650527983443,
|
||||
43.9001561999887, -30.5235710432951, 47.9748378356085,
|
||||
-38.2582349144194, 23.0330862855453, -16.2280590178623,
|
||||
44.2050590775485, 14.9115474956452, -13.1515403509664,
|
||||
0.850865538112700, 37.5942811492984, -27.4078219027601,
|
||||
-6.11300268738968, -20.3324126781673, -1.13910261964209,
|
||||
40.0053846417662, 45.6134540229802, 23.1722385658670,
|
||||
12.5618560729690, 1.07715641721097, 5.01563428984222,
|
||||
-32.9291952852141, -38.8880776559401, -18.1221698074118,
|
||||
7.85250610234389, -13.0753218879785, 7.52085950784656,
|
||||
14.7745963136307, 28.0227435151377, 31.7627708322262,
|
||||
12.2475086001227, -27.2335702183447, -24.1935304087933,
|
||||
-7.58332402861928, -26.2716420228479, -38.8797244706213,
|
||||
-44.0220457052844, -4.90762935690551, -41.8874231134215,
|
||||
29.4831416883453, 8.70447045314168, -6.43013158961009,
|
||||
-9.12801538874479, 0.785828466111815, -4.11511718200689,
|
||||
28.0252068321138, -26.5220086627594, 4.70088922863450,
|
||||
42.9385970968730, 14.4318130193692, -29.2257707266972,
|
||||
46.3088539286913
|
||||
};
|
||||
|
||||
MATRIX_TEST_BIGGEST_INPUT_TYPE matrix_zeros[MATRIX_TEST_MAX_ELTS] = {0};
|
||||
|
||||
const float32_t matrix_f32_scale_values[MATRIX_MAX_COEFFS_LEN] =
|
||||
{
|
||||
43.0264275639 , -17.0525215570 , -94.8488973910 , -8.1924989580 ,
|
||||
7.2830326091 , 66.8368719314 , 33.9778190671 , 117.8652289772 ,
|
||||
-129.6077797465, -14.6420815368 , 18.0239223278 , 1.0000000000 ,
|
||||
55.0375037651 , 1.8674609862 , 0.00000000000 , -33.5750364909
|
||||
};
|
||||
|
||||
const q31_t matrix_q31_scale_values[MATRIX_MAX_COEFFS_LEN] =
|
||||
{
|
||||
0x0201DC90, 0x211F0D7C, 0x80000000, 0xF573B824,
|
||||
0xE85ED05B, 0x311DFB52, 0x3529E750, 0x00000000,
|
||||
0x7FFFFFFF, 0x21FA525A, 0x0971FD45, 0x05547B68,
|
||||
0x270C6366, 0x06FDD5A6, 0xF7025315, 0xB1155A1E
|
||||
};
|
||||
|
||||
const q15_t matrix_q15_scale_values[MATRIX_MAX_COEFFS_LEN] =
|
||||
{
|
||||
0x0201, 0x211F, 0x8000, 0xF573,
|
||||
0xE85E, 0x311D, 0x3529, 0x0000,
|
||||
0x7FFF, 0x21FA, 0x0971, 0x0554,
|
||||
0x270C, 0x06FD, 0xF702, 0xB115
|
||||
};
|
||||
|
||||
const int32_t matrix_shift_values[MATRIX_MAX_SHIFTS_LEN] =
|
||||
{
|
||||
-16, -7, 0, 7, 16
|
||||
};
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Matrix Definitions */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Define matrices by suffix (f32, q31, q15) for use in test cases.
|
||||
*
|
||||
* The rand1 and rand2 suffixes get their data from the same pool of random
|
||||
* data, but their starting points differ by 1 element.
|
||||
*
|
||||
* Makes available:
|
||||
* - matrix_`suffix`_1x1_rand1/2
|
||||
* - matrix_`suffix`_1x4_rand1/2
|
||||
* - matrix_`suffix`_2x4_rand1/2
|
||||
* - matrix_`suffix`_4x4_rand1/2
|
||||
*/
|
||||
#define MATRIX_DEFINE_MATRICES(suffix) \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x1_rand1 = \
|
||||
{1, 1, (TYPE_FROM_ABBREV(suffix) *) matrix_f32_100_rand }; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x1_rand2 = \
|
||||
{1, 1, (TYPE_FROM_ABBREV(suffix) *) (matrix_f32_100_rand+1)}; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x1_zeros = \
|
||||
{1, 1, (TYPE_FROM_ABBREV(suffix) *) matrix_zeros}; \
|
||||
\
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x4_rand1 = \
|
||||
{1, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_f32_100_rand }; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x4_rand2 = \
|
||||
{1, 4, (TYPE_FROM_ABBREV(suffix) *) (matrix_f32_100_rand+1)}; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_1x4_zeros = \
|
||||
{1, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_zeros}; \
|
||||
\
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_2x4_rand1 = \
|
||||
{2, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_f32_100_rand }; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_2x4_rand2 = \
|
||||
{2, 4, (TYPE_FROM_ABBREV(suffix) *) (matrix_f32_100_rand+1)}; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_2x4_zeros = \
|
||||
{2, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_zeros}; \
|
||||
\
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_4x4_rand1 = \
|
||||
{4, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_f32_100_rand }; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_4x4_rand2 = \
|
||||
{4, 4, (TYPE_FROM_ABBREV(suffix) *) (matrix_f32_100_rand+1)}; \
|
||||
arm_matrix_instance_##suffix matrix_##suffix##_4x4_zeros = \
|
||||
{4, 4, (TYPE_FROM_ABBREV(suffix) *) matrix_zeros}
|
||||
|
||||
MATRIX_DEFINE_MATRICES(f64);
|
||||
MATRIX_DEFINE_MATRICES(f32);
|
||||
MATRIX_DEFINE_MATRICES(q31);
|
||||
MATRIX_DEFINE_MATRICES(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Matrix-Input Arrays */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/* Define Input #ARR_DESC_t by suffix.
|
||||
*
|
||||
* Taking inputs in parallel from the 'a' and 'b' arrays yields the following
|
||||
* test cases:
|
||||
* - 1x1 multiplication by zero
|
||||
* - 1x1 multiplication between random numbers
|
||||
* - 1x1 * 1x4 valid dimension interaction
|
||||
* - 1x1 * 2x4 invalid dimension interaction
|
||||
* - 2x4 * 4x4 larger valid dimension interaction
|
||||
* - 4x4 * 4x4 larger valid dimension interaction
|
||||
*/
|
||||
#define MATRIX_DEFINE_INPUTS(suffix) \
|
||||
ARR_DESC_DEFINE(arm_matrix_instance_##suffix *, \
|
||||
matrix_##suffix##_a_inputs, \
|
||||
6, \
|
||||
CURLY( \
|
||||
&matrix_##suffix##_1x1_rand1, \
|
||||
&matrix_##suffix##_1x1_rand1, \
|
||||
&matrix_##suffix##_1x1_rand1, \
|
||||
&matrix_##suffix##_1x1_rand1, \
|
||||
&matrix_##suffix##_2x4_rand1, \
|
||||
&matrix_##suffix##_4x4_rand1 \
|
||||
)); \
|
||||
\
|
||||
ARR_DESC_DEFINE(arm_matrix_instance_##suffix *, \
|
||||
matrix_##suffix##_b_inputs, \
|
||||
6, \
|
||||
CURLY( \
|
||||
&matrix_##suffix##_1x1_zeros, \
|
||||
&matrix_##suffix##_1x1_rand2, \
|
||||
&matrix_##suffix##_1x4_rand2, \
|
||||
&matrix_##suffix##_2x4_rand2, \
|
||||
&matrix_##suffix##_4x4_rand2, \
|
||||
&matrix_##suffix##_4x4_rand2 \
|
||||
)); \
|
||||
\
|
||||
ARR_DESC_DEFINE(arm_matrix_instance_##suffix *, \
|
||||
matrix_##suffix##_invertible_inputs, \
|
||||
4, \
|
||||
CURLY( \
|
||||
&matrix_##suffix##_1x1_rand1, \
|
||||
&matrix_##suffix##_1x1_rand2, \
|
||||
&matrix_##suffix##_4x4_rand1, \
|
||||
&matrix_##suffix##_4x4_rand2 \
|
||||
)) \
|
||||
|
||||
MATRIX_DEFINE_INPUTS(f64);
|
||||
MATRIX_DEFINE_INPUTS(f32);
|
||||
MATRIX_DEFINE_INPUTS(q31);
|
||||
MATRIX_DEFINE_INPUTS(q15);
|
@ -0,0 +1,19 @@
|
||||
#include "jtest.h"
|
||||
#include "matrix_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(matrix_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_GROUP_CALL(mat_add_tests);
|
||||
JTEST_GROUP_CALL(mat_cmplx_mult_tests);
|
||||
JTEST_GROUP_CALL(mat_init_tests);
|
||||
JTEST_GROUP_CALL(mat_inverse_tests);
|
||||
JTEST_GROUP_CALL(mat_mult_tests);
|
||||
JTEST_GROUP_CALL(mat_mult_fast_tests);
|
||||
JTEST_GROUP_CALL(mat_sub_tests);
|
||||
JTEST_GROUP_CALL(mat_trans_tests);
|
||||
JTEST_GROUP_CALL(mat_scale_tests);
|
||||
return;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MAX_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
max, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MAX_TEST(f32);
|
||||
JTEST_ARM_MAX_TEST(q31);
|
||||
JTEST_ARM_MAX_TEST(q15);
|
||||
JTEST_ARM_MAX_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(max_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_max_f32_test);
|
||||
JTEST_TEST_CALL(arm_max_q31_test);
|
||||
JTEST_TEST_CALL(arm_max_q15_test);
|
||||
JTEST_TEST_CALL(arm_max_q7_test);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MEAN_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
mean, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MEAN_TEST(f32);
|
||||
JTEST_ARM_MEAN_TEST(q31);
|
||||
JTEST_ARM_MEAN_TEST(q15);
|
||||
JTEST_ARM_MEAN_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(mean_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_mean_f32_test);
|
||||
JTEST_TEST_CALL(arm_mean_q31_test);
|
||||
JTEST_TEST_CALL(arm_mean_q15_test);
|
||||
JTEST_TEST_CALL(arm_mean_q7_test);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_MIN_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
min, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_MIN_TEST(f32);
|
||||
JTEST_ARM_MIN_TEST(q31);
|
||||
JTEST_ARM_MIN_TEST(q15);
|
||||
JTEST_ARM_MIN_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(min_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_min_f32_test);
|
||||
JTEST_TEST_CALL(arm_min_q31_test);
|
||||
JTEST_TEST_CALL(arm_min_q15_test);
|
||||
JTEST_TEST_CALL(arm_min_q7_test);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_POWER_TEST(suffix, output_type) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
power, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_SNR_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_POWER_TEST(f32, float32_t);
|
||||
JTEST_ARM_POWER_TEST(q31, q63_t);
|
||||
JTEST_ARM_POWER_TEST(q15, q63_t);
|
||||
JTEST_ARM_POWER_TEST(q7, q31_t);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(power_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_power_f32_test);
|
||||
JTEST_TEST_CALL(arm_power_q31_test);
|
||||
JTEST_TEST_CALL(arm_power_q15_test);
|
||||
JTEST_TEST_CALL(arm_power_q7_test);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_RMS_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
rms, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_SNR_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_RMS_TEST(f32);
|
||||
JTEST_ARM_RMS_TEST(q31);
|
||||
JTEST_ARM_RMS_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(rms_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_rms_f32_test);
|
||||
JTEST_TEST_CALL(arm_rms_q31_test);
|
||||
JTEST_TEST_CALL(arm_rms_q15_test);
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
#include "statistics_test_data.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
ARR_DESC_DEFINE(STATISTICS_BIGGEST_INPUT_TYPE,
|
||||
statistics_output_fut,
|
||||
STATISTICS_MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
ARR_DESC_DEFINE(STATISTICS_BIGGEST_INPUT_TYPE,
|
||||
statistics_output_ref,
|
||||
STATISTICS_MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
uint32_t statistics_idx_fut = 0;
|
||||
uint32_t statistics_idx_ref = 0;
|
||||
|
||||
STATISTICS_BIGGEST_INPUT_TYPE
|
||||
statistics_output_f32_ref[STATISTICS_MAX_INPUT_ELEMENTS];
|
||||
|
||||
STATISTICS_BIGGEST_INPUT_TYPE
|
||||
statistics_output_f32_fut[STATISTICS_MAX_INPUT_ELEMENTS];
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Block Sizes */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
To change test parameter values add/remove values inside CURLY and update
|
||||
the preceeding parameter to reflect the number of values inside CURLY.
|
||||
*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
statistics_block_sizes,
|
||||
4,
|
||||
CURLY(1, 2, 15, 32));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Data */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
statistics_f_32,
|
||||
32,
|
||||
CURLY(
|
||||
-0.0865129623056441 , -0.3331168756476194,
|
||||
0.0250664612949661 , 0.0575352840717098,
|
||||
-0.2292942701362928 , 0.2381830931285998,
|
||||
0.2378328403304206 , -0.0075266553186635,
|
||||
0.0654584722817308 , 0.0349278285641849,
|
||||
-0.0373417155362879 , 0.1451581096586606,
|
||||
-0.1176633086028378 , 0.4366371636394202,
|
||||
-0.0272791766173191 , 0.0227862627041619,
|
||||
0.2133536422718378 , 0.0118562921047211,
|
||||
-0.0191296810967338 , -0.1664698927300045,
|
||||
0.0588821632785281 , -0.2672363715875608,
|
||||
0.1428649103637904 , 0.3247124128892542,
|
||||
-0.1383551403404573 , 0.1715993345656525,
|
||||
0.2508002843205065 , -0.3187459152894954,
|
||||
-0.2881928863802040 , 0.1142295247316356,
|
||||
-0.0799771155430726 , 0.1379994750928690
|
||||
));
|
||||
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(statistics_f_31,
|
||||
statistics_f_32,
|
||||
31);
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(statistics_f_15,
|
||||
statistics_f_32,
|
||||
15);
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(statistics_f_2,
|
||||
statistics_f_32,
|
||||
2);
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
statistics_zeros,
|
||||
32,
|
||||
CURLY(0));
|
||||
|
||||
/* Aggregate all float datasets */
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *,
|
||||
statistics_f_all,
|
||||
4,
|
||||
CURLY(
|
||||
&statistics_zeros,
|
||||
&statistics_f_2,
|
||||
&statistics_f_15,
|
||||
&statistics_f_32
|
||||
));
|
@ -0,0 +1,14 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(statistics_tests)
|
||||
{
|
||||
JTEST_GROUP_CALL(max_tests);
|
||||
JTEST_GROUP_CALL(mean_tests);
|
||||
JTEST_GROUP_CALL(min_tests);
|
||||
JTEST_GROUP_CALL(power_tests);
|
||||
JTEST_GROUP_CALL(rms_tests);
|
||||
JTEST_GROUP_CALL(std_tests);
|
||||
JTEST_GROUP_CALL(var_tests);
|
||||
return;
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_STD_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
std, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_SNR_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_STD_TEST(f32);
|
||||
JTEST_ARM_STD_TEST(q31);
|
||||
JTEST_ARM_STD_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(std_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_std_f32_test);
|
||||
JTEST_TEST_CALL(arm_std_q31_test);
|
||||
JTEST_TEST_CALL(arm_std_q15_test);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
#include "jtest.h"
|
||||
#include "statistics_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "statistics_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_VAR_TEST(suffix) \
|
||||
STATISTICS_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
var, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
STATISTICS_SNR_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_VAR_TEST(f32);
|
||||
JTEST_ARM_VAR_TEST(q31);
|
||||
JTEST_ARM_VAR_TEST(q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(var_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_var_f32_test);
|
||||
JTEST_TEST_CALL(arm_var_q31_test);
|
||||
JTEST_TEST_CALL(arm_var_q15_test);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
#include "jtest.h"
|
||||
#include "support_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "support_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_COPY_TEST(suffix) \
|
||||
SUPPORT_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
|
||||
copy, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
SUPPORT_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_COPY_TEST(f32);
|
||||
JTEST_ARM_COPY_TEST(q31);
|
||||
JTEST_ARM_COPY_TEST(q15);
|
||||
JTEST_ARM_COPY_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(copy_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_copy_f32_test);
|
||||
JTEST_TEST_CALL(arm_copy_q31_test);
|
||||
JTEST_TEST_CALL(arm_copy_q15_test);
|
||||
JTEST_TEST_CALL(arm_copy_q7_test);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
#include "jtest.h"
|
||||
#include "support_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "support_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
#define JTEST_ARM_FILL_TEST(suffix) \
|
||||
SUPPORT_DEFINE_TEST_TEMPLATE_ELT1_BLK( \
|
||||
fill, \
|
||||
suffix, \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
SUPPORT_COMPARE_INTERFACE)
|
||||
|
||||
JTEST_ARM_FILL_TEST(f32);
|
||||
JTEST_ARM_FILL_TEST(q31);
|
||||
JTEST_ARM_FILL_TEST(q15);
|
||||
JTEST_ARM_FILL_TEST(q7);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(fill_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_fill_f32_test);
|
||||
JTEST_TEST_CALL(arm_fill_q31_test);
|
||||
JTEST_TEST_CALL(arm_fill_q15_test);
|
||||
JTEST_TEST_CALL(arm_fill_q7_test);
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
#include "arm_math.h"
|
||||
#include "support_test_data.h"
|
||||
|
||||
#define MAX_INPUT_ELEMENTS 32
|
||||
#define BIGGEST_INPUT_TYPE float32_t
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Input/Output Buffers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(BIGGEST_INPUT_TYPE,
|
||||
support_output_fut,
|
||||
MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
ARR_DESC_DEFINE(BIGGEST_INPUT_TYPE,
|
||||
support_output_ref,
|
||||
MAX_INPUT_ELEMENTS,
|
||||
CURLY(0));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Block Sizes */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
To change test parameter values add/remove values inside CURLY and update
|
||||
the preceeding parameter to reflect the number of values inside CURLY.
|
||||
*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
support_block_sizes,
|
||||
4,
|
||||
CURLY( 2, 7, 15, 32));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Numbers */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(uint32_t,
|
||||
support_elts,
|
||||
4,
|
||||
CURLY( 0, 1, 0x80000000, 0x7fffffff));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Data */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
support_f_32,
|
||||
32,
|
||||
CURLY(
|
||||
0.24865986 , -0.13364227, -0.27233250 , -7.33488200,
|
||||
0.42190653 , 1.17435880 , -0.49824914 , 0.87883663,
|
||||
0.63066370 , 1.80275680 , -84.83916000, -2.06773800,
|
||||
7.63452500 , 1.01487610 , -0.65785825 , 1.78019030,
|
||||
-0.34160388, 0.68546050 , -1.81721590 , -0.10340453,
|
||||
-4.48600340, -1.69763480, -1.26022340 , -1.58457480,
|
||||
0.51993870 , 2.83526470 , -0.21502694 , -0.57690346,
|
||||
-0.22945681, 0.79509383 , 0.07275216 , -2.16279080
|
||||
));
|
||||
|
||||
/* Alias the 32 element array with wrappers that end sooner. */
|
||||
ARR_DESC_DEFINE_SUBSET(support_f_15,
|
||||
support_f_32,
|
||||
15);
|
||||
|
||||
ARR_DESC_DEFINE_SUBSET(support_f_2,
|
||||
support_f_32,
|
||||
2);
|
||||
|
||||
ARR_DESC_DEFINE(float32_t,
|
||||
support_zeros,
|
||||
32,
|
||||
CURLY(0));
|
||||
|
||||
/* Aggregate all float datasets. */
|
||||
ARR_DESC_DEFINE(ARR_DESC_t *,
|
||||
support_f_all,
|
||||
4,
|
||||
CURLY(
|
||||
&support_zeros,
|
||||
&support_f_2,
|
||||
&support_f_15,
|
||||
&support_f_32
|
||||
));
|
@ -0,0 +1,10 @@
|
||||
#include "jtest.h"
|
||||
#include "support_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(support_tests)
|
||||
{
|
||||
JTEST_GROUP_CALL(copy_tests);
|
||||
JTEST_GROUP_CALL(fill_tests);
|
||||
JTEST_GROUP_CALL(x_to_y_tests);
|
||||
return;
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
#include "jtest.h"
|
||||
#include "support_test_data.h"
|
||||
#include "arr_desc.h"
|
||||
#include "arm_math.h" /* FUTs */
|
||||
#include "ref.h" /* Reference Functions */
|
||||
#include "test_templates.h"
|
||||
#include "support_templates.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/* Aliases to play nicely with templates. */
|
||||
#define arm_f32_to_q31 arm_float_to_q31
|
||||
#define arm_f32_to_q15 arm_float_to_q15
|
||||
#define arm_f32_to_q7 arm_float_to_q7
|
||||
#define arm_q31_to_f32 arm_q31_to_float
|
||||
#define arm_q15_to_f32 arm_q15_to_float
|
||||
#define arm_q7_to_f32 arm_q7_to_float
|
||||
#define ref_f32_to_q31 ref_float_to_q31
|
||||
#define ref_f32_to_q15 ref_float_to_q15
|
||||
#define ref_f32_to_q7 ref_float_to_q7
|
||||
#define ref_q31_to_f32 ref_q31_to_float
|
||||
#define ref_q15_to_f32 ref_q15_to_float
|
||||
#define ref_q7_to_f32 ref_q7_to_float
|
||||
|
||||
#define JTEST_ARM_X_TO_Y_TEST(prefix, suffix) \
|
||||
JTEST_DEFINE_TEST(arm_##prefix##_to_##suffix##_test, \
|
||||
arm_##prefix##_to_##suffix) \
|
||||
{ \
|
||||
TEST_TEMPLATE_BUF1_BLK( \
|
||||
support_f_all, \
|
||||
support_block_sizes, \
|
||||
TYPE_FROM_ABBREV(prefix), \
|
||||
TYPE_FROM_ABBREV(suffix), \
|
||||
arm_##prefix##_to_##suffix, \
|
||||
ARM_x_to_y_INPUT_INTERFACE, \
|
||||
ref_##prefix##_to_##suffix, \
|
||||
REF_x_to_y_INPUT_INTERFACE, \
|
||||
SUPPORT_COMPARE_INTERFACE); \
|
||||
}
|
||||
|
||||
JTEST_ARM_X_TO_Y_TEST(f32, q31);
|
||||
JTEST_ARM_X_TO_Y_TEST(f32, q15);
|
||||
JTEST_ARM_X_TO_Y_TEST(f32, q7);
|
||||
|
||||
JTEST_ARM_X_TO_Y_TEST(q31, f32);
|
||||
JTEST_ARM_X_TO_Y_TEST(q31, q15);
|
||||
JTEST_ARM_X_TO_Y_TEST(q31, q7);
|
||||
|
||||
JTEST_ARM_X_TO_Y_TEST(q15, f32);
|
||||
JTEST_ARM_X_TO_Y_TEST(q15, q31);
|
||||
JTEST_ARM_X_TO_Y_TEST(q15, q7);
|
||||
|
||||
JTEST_ARM_X_TO_Y_TEST(q7, f32);
|
||||
JTEST_ARM_X_TO_Y_TEST(q7, q31);
|
||||
JTEST_ARM_X_TO_Y_TEST(q7, q15);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group. */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(x_to_y_tests)
|
||||
{
|
||||
/*
|
||||
To skip a test, comment it out.
|
||||
*/
|
||||
JTEST_TEST_CALL(arm_f32_to_q31_test);
|
||||
JTEST_TEST_CALL(arm_f32_to_q15_test);
|
||||
JTEST_TEST_CALL(arm_f32_to_q7_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_q31_to_f32_test);
|
||||
JTEST_TEST_CALL(arm_q31_to_q15_test);
|
||||
JTEST_TEST_CALL(arm_q31_to_q7_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_q15_to_f32_test);
|
||||
JTEST_TEST_CALL(arm_q15_to_q31_test);
|
||||
JTEST_TEST_CALL(arm_q15_to_q7_test);
|
||||
|
||||
JTEST_TEST_CALL(arm_q7_to_f32_test);
|
||||
JTEST_TEST_CALL(arm_q7_to_q31_test);
|
||||
JTEST_TEST_CALL(arm_q7_to_q15_test);
|
||||
}
|
@ -0,0 +1,183 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "transform_templates.h"
|
||||
#include "transform_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Macros and Defines */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
#define CFFT_FN_NAME(fn_specifier, type_suffix) \
|
||||
arm_cfft_##fn_specifier##_##type_suffix \
|
||||
|
||||
#define CFFT_TEST_NAME(fn_specifier, type_suffix, config_suffix) \
|
||||
arm_cfft_##fn_specifier##_##type_suffix##_##config_suffix##_test \
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Function Aliases */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/* These aliases allow expansions in the CFFT_FAMILY_DEFINE_TEST() template to
|
||||
make sense */
|
||||
#define arm_cfft_mag_init_f32 arm_cfft_radix4_init_f32
|
||||
#define arm_cfft_mag_init_q31 arm_cfft_radix4_init_q31
|
||||
#define arm_cfft_mag_init_q15 arm_cfft_radix4_init_q15
|
||||
#define arm_cfft_mag_instance_f32 arm_cfft_radix4_instance_f32
|
||||
#define arm_cfft_mag_instance_q31 arm_cfft_radix4_instance_q31
|
||||
#define arm_cfft_mag_instance_q15 arm_cfft_radix4_instance_q15
|
||||
#define transform_mag_fftlens transform_radix4_fftlens
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Definition */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Defines a test for the family of CFFT transforms.
|
||||
*
|
||||
* The family of CFFT transforms includes:
|
||||
*
|
||||
* - arm_cfft_radix4_xxx
|
||||
* - arm_cfft_radix2_xxx
|
||||
* - arm_cfft_mag_xxx
|
||||
*
|
||||
* Where xxx can be f32, q31, or q15.
|
||||
*
|
||||
* @param fn_specifier Allowed values: radix4, radix2, mag.
|
||||
* @param type_suffix Allowed values: f32, q31, q15.
|
||||
*
|
||||
* @param config_suffix Used to differentiate test names based configuration
|
||||
* (in this case whether the ifft_flag is set or not.)
|
||||
|
||||
* @param comparison_interface Macro name used to compare reference and fut
|
||||
* outputs.
|
||||
*
|
||||
* @param output_tpe The type of variable contained in the output
|
||||
* (e.g. float32_t, uint32_t, etc).
|
||||
*
|
||||
* @param ifft_flag Determines whether the arm_cfft_instance_xxx is configured
|
||||
* for an inverse FFT.
|
||||
*/
|
||||
#define CFFT_FAMILY_DEFINE_TEST(fn_specifier, \
|
||||
type_suffix, \
|
||||
config_suffix, /* Delineate between test configs*/ \
|
||||
comparison_interface, \
|
||||
output_type, \
|
||||
ifft_flag) \
|
||||
JTEST_DEFINE_TEST(CFFT_TEST_NAME(fn_specifier, type_suffix, \
|
||||
config_suffix), \
|
||||
CFFT_FN_NAME(fn_specifier, type_suffix)) \
|
||||
{ \
|
||||
arm_cfft_##fn_specifier##_instance_##type_suffix cfft_inst_fut; \
|
||||
arm_cfft_##fn_specifier##_instance_##type_suffix cfft_inst_ref; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
fftlen_idx, uint16_t, fftlen, transform_##fn_specifier##_fftlens \
|
||||
, \
|
||||
\
|
||||
/* Initialize the cfft instance */ \
|
||||
arm_cfft_##fn_specifier##_init_##type_suffix( \
|
||||
&cfft_inst_fut, fftlen, ifft_flag, (uint8_t)1); \
|
||||
arm_cfft_##fn_specifier##_init_##type_suffix( \
|
||||
&cfft_inst_ref, fftlen, ifft_flag, (uint8_t)1); \
|
||||
\
|
||||
TRANSFORM_PREPARE_INPLACE_INPUTS( \
|
||||
transform_fft_##type_suffix##_inputs, \
|
||||
fftlen * \
|
||||
sizeof(TYPE_FROM_ABBREV(type_suffix)) * \
|
||||
2 /*complex_inputs*/); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Inverse-transform flag: %d\n", \
|
||||
(int)fftlen, \
|
||||
(int)ifft_flag); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_cfft_##fn_specifier##_##type_suffix( \
|
||||
&cfft_inst_fut, \
|
||||
(void*) transform_fft_inplace_input_fut)); \
|
||||
\
|
||||
ref_cfft_##fn_specifier##_##type_suffix( \
|
||||
&cfft_inst_ref, \
|
||||
(void *) transform_fft_inplace_input_ref); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
comparison_interface( \
|
||||
fftlen, \
|
||||
output_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
/**
|
||||
* Bulk wrapper for all tests instantiated using #CFFT_FAMILY_DEFINE_TEST().
|
||||
*
|
||||
* This macro allows several test definitions to share the same config_suffix
|
||||
* and ifft_flag settings.
|
||||
*/
|
||||
#define CFFT_FAMILY_DEFINE_ALL_TESTS(config_suffix, ifft_flag) \
|
||||
/* Radix2 tests*/ \
|
||||
CFFT_FAMILY_DEFINE_TEST(radix2, q31, config_suffix, \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE, \
|
||||
TYPE_FROM_ABBREV(q31), \
|
||||
ifft_flag); \
|
||||
CFFT_FAMILY_DEFINE_TEST(radix2, q15, config_suffix, \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE, \
|
||||
TYPE_FROM_ABBREV(q15), \
|
||||
ifft_flag); \
|
||||
/* Radix4 tests*/ \
|
||||
CFFT_FAMILY_DEFINE_TEST(radix4, q31, config_suffix, \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE, \
|
||||
TYPE_FROM_ABBREV(q31), \
|
||||
ifft_flag); \
|
||||
CFFT_FAMILY_DEFINE_TEST(radix4, q15, config_suffix, \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE, \
|
||||
TYPE_FROM_ABBREV(q15), \
|
||||
ifft_flag)
|
||||
/* /\* Mag tests*\/ \ */
|
||||
/* CFFT_FAMILY_DEFINE_TEST(mag, f32, config_suffix, \ */
|
||||
/* TRANSFORM_SNR_COMPARE_INTERFACE, \ */
|
||||
/* TYPE_FROM_ABBREV(f32), \ */
|
||||
/* ifft_flag); \ */
|
||||
/* CFFT_FAMILY_DEFINE_TEST(mag, q31, config_suffix, \ */
|
||||
/* TRANSFORM_SNR_COMPARE_INTERFACE, \ */
|
||||
/* TYPE_FROM_ABBREV(q31), \ */
|
||||
/* ifft_flag); \ */
|
||||
/* CFFT_FAMILY_DEFINE_TEST(mag, q15, config_suffix, \ */
|
||||
/* TRANSFORM_SNR_COMPARE_INTERFACE, \ */
|
||||
/* TYPE_FROM_ABBREV(q15), \ */
|
||||
/* ifft_flag) */
|
||||
|
||||
CFFT_FAMILY_DEFINE_ALL_TESTS(forward, 0U);
|
||||
CFFT_FAMILY_DEFINE_ALL_TESTS(inverse, 1U);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cfft_family_tests)
|
||||
{
|
||||
/* Forward FFT tests */
|
||||
JTEST_TEST_CALL(arm_cfft_radix2_q31_forward_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix2_q15_forward_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix4_q31_forward_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix4_q15_forward_test);
|
||||
|
||||
/* Inverse FFT Tests */
|
||||
JTEST_TEST_CALL(arm_cfft_radix2_q31_inverse_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix2_q15_inverse_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix4_q31_inverse_test);
|
||||
JTEST_TEST_CALL(arm_cfft_radix4_q15_inverse_test);
|
||||
|
||||
/* Magnitude tests removed from the DSP Library. Keeping them here in case
|
||||
minds are changed. */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_f32_forward_test); */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_q31_forward_test); */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_q15_forward_test); */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_f32_inverse_test); */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_q31_inverse_test); */
|
||||
/* JTEST_TEST_CALL(arm_cfft_mag_q15_inverse_test); */
|
||||
}
|
@ -0,0 +1,144 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "transform_templates.h"
|
||||
#include "transform_test_data.h"
|
||||
|
||||
#define CFFT_SNR_THRESHOLD 120
|
||||
|
||||
/*
|
||||
CFFT function test template. Arguments are: inverse-transform flag, function
|
||||
suffix (q7/q15/q31/f32) and the output type (q7_t, q15_t, q31_t, float32_t)
|
||||
*/
|
||||
#define CFFT_TEST_BODY(ifft_flag, suffix, output_type) \
|
||||
do \
|
||||
{ \
|
||||
/* Go through all arm_cfft_instances */ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
cfft_inst_idx, const arm_cfft_instance_##suffix *, cfft_inst_ptr, \
|
||||
transform_cfft_##suffix##_structs \
|
||||
, \
|
||||
\
|
||||
TRANSFORM_PREPARE_INPLACE_INPUTS( \
|
||||
transform_fft_##suffix##_inputs, \
|
||||
cfft_inst_ptr->fftLen * \
|
||||
sizeof(output_type) * \
|
||||
2 /*complex_inputs*/); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Inverse-transform flag: %d\n", \
|
||||
(int)cfft_inst_ptr->fftLen, \
|
||||
(int)ifft_flag); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_cfft_##suffix(cfft_inst_ptr, \
|
||||
(void *) transform_fft_inplace_input_fut, \
|
||||
ifft_flag, /* IFFT Flag */ \
|
||||
1)); /* Bitreverse flag */ \
|
||||
ref_cfft_##suffix(cfft_inst_ptr, \
|
||||
(void *) transform_fft_inplace_input_ref, \
|
||||
ifft_flag, /* IFFT Flag */ \
|
||||
1); /* Bitreverse flag */ \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE( \
|
||||
cfft_inst_ptr->fftLen, \
|
||||
output_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
CFFT function with downshift test template. Arguments are: inverse-transform flag,
|
||||
function suffix (q7/q15/q31/f32) and the output type (q7_t, q15_t, q31_t, float32_t)
|
||||
*/
|
||||
#define CFFT_DOWNSHIFT_INPUT_TEST_BODY(ifft_flag, suffix, output_type) \
|
||||
do \
|
||||
{ \
|
||||
/* Go through all arm_cfft_instances */ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
cfft_inst_idx, const arm_cfft_instance_##suffix *, cfft_inst_ptr, \
|
||||
transform_cfft_##suffix##_structs \
|
||||
, \
|
||||
\
|
||||
TRANSFORM_PREPARE_INPLACE_INPUTS_DOWNSHIFT( \
|
||||
transform_fft_##suffix##_inputs, \
|
||||
cfft_inst_ptr->fftLen * \
|
||||
sizeof(output_type) * \
|
||||
2 /*complex_inputs*/, output_type); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Inverse-transform flag: %d\n", \
|
||||
(int)cfft_inst_ptr->fftLen, \
|
||||
(int)ifft_flag); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_cfft_##suffix(cfft_inst_ptr, \
|
||||
(void *) transform_fft_inplace_input_fut, \
|
||||
ifft_flag, /* IFFT Flag */ \
|
||||
1)); /* Bitreverse flag */ \
|
||||
ref_cfft_##suffix(cfft_inst_ptr, \
|
||||
(void *) transform_fft_inplace_input_ref, \
|
||||
ifft_flag, /* IFFT Flag */ \
|
||||
1); /* Bitreverse flag */ \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
TRANSFORM_SNR_COMPARE_CMPLX_INTERFACE( \
|
||||
cfft_inst_ptr->fftLen, \
|
||||
output_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Test declarations */
|
||||
JTEST_DEFINE_TEST(cfft_f32_test, cfft_f32)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 0, f32, float32_t);
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(cfft_f32_ifft_test, cfft_f32)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 1, f32, float32_t);
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(cfft_q31_test, cfft_q31)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 0, q31, q31_t);
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(cfft_q31_ifft_test, cfft_q31)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 1, q31, q31_t);
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(cfft_q15_test, cfft_q15)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 0, q15, q15_t);
|
||||
}
|
||||
|
||||
JTEST_DEFINE_TEST(cfft_q15_ifft_test, cfft_q15)
|
||||
{
|
||||
CFFT_TEST_BODY((uint8_t) 1, q15, q15_t);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(cfft_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(cfft_f32_test);
|
||||
JTEST_TEST_CALL(cfft_f32_ifft_test);
|
||||
|
||||
JTEST_TEST_CALL(cfft_q31_test);
|
||||
JTEST_TEST_CALL(cfft_q31_ifft_test);
|
||||
|
||||
JTEST_TEST_CALL(cfft_q15_test);
|
||||
JTEST_TEST_CALL(cfft_q15_ifft_test);
|
||||
}
|
@ -0,0 +1,197 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arm_math.h"
|
||||
#include "arr_desc.h"
|
||||
#include "transform_templates.h"
|
||||
#include "transform_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
#include <math.h> /* sqrtf() */
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Aliases to aid macro expansion */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
#define ref_sqrt_f32(x) sqrtf(x)
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Test Definitions */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
DCT function test template. Arguments are: function configuration suffix
|
||||
(q7/q15/q31/f32) and input type (q7_t/q15_t/q31_t/float32_t)
|
||||
*/
|
||||
#define DCT4_DEFINE_TEST(suffix, input_type) \
|
||||
JTEST_DEFINE_TEST(arm_dct4_##suffix##_test, arm_dct4_##suffix) \
|
||||
{ \
|
||||
CONCAT(arm_dct4_instance_,suffix) dct4_inst_fut = {0}; \
|
||||
CONCAT(arm_rfft_instance_,suffix) rfft_inst_fut = {0}; \
|
||||
CONCAT(arm_cfft_radix4_instance_,suffix) cfft_inst_fut = {0}; \
|
||||
\
|
||||
CONCAT(arm_dct4_instance_,suffix) dct4_inst_ref = {0}; \
|
||||
CONCAT(arm_rfft_instance_,suffix) rfft_inst_ref = {0}; \
|
||||
CONCAT(arm_cfft_radix4_instance_,suffix) cfft_inst_ref = {0}; \
|
||||
\
|
||||
/* Go through all dct lengths */ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
fftlen_idx, uint16_t, fftlen, transform_dct_fftlens \
|
||||
, \
|
||||
\
|
||||
float32_t normalize_f32 = \
|
||||
ref_sqrt_f32((2.0f/(float32_t)fftlen)); \
|
||||
input_type normalize; \
|
||||
\
|
||||
/* Calculate normalized DCT4 value for input_type. */ \
|
||||
TEST_CONVERT_FLOAT_TO(&normalize_f32, &normalize, \
|
||||
1, input_type); \
|
||||
\
|
||||
/* Initialize the DCT4, RFFT, and CFFT instances */ \
|
||||
arm_dct4_init_##suffix( \
|
||||
&dct4_inst_fut, &rfft_inst_fut, &cfft_inst_fut, \
|
||||
fftlen, \
|
||||
fftlen/2, \
|
||||
normalize); \
|
||||
\
|
||||
arm_dct4_init_##suffix( \
|
||||
&dct4_inst_ref, &rfft_inst_ref, &cfft_inst_ref, \
|
||||
fftlen, \
|
||||
fftlen/2, \
|
||||
normalize); \
|
||||
\
|
||||
memset( transform_fft_input_fut,0, \
|
||||
fftlen*sizeof(input_type)); \
|
||||
\
|
||||
TRANSFORM_PREPARE_INPLACE_INPUTS( \
|
||||
transform_fft_##suffix##_inputs, \
|
||||
fftlen * sizeof(input_type)); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n", \
|
||||
(int)fftlen); \
|
||||
\
|
||||
/* Input provided as a scratch buffer. Inplace input is \
|
||||
* actual input. Display cycle count and run test*/ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_dct4_##suffix( \
|
||||
&dct4_inst_fut, \
|
||||
(void *) transform_fft_input_fut, \
|
||||
(void *) transform_fft_inplace_input_fut)); \
|
||||
\
|
||||
memset( transform_fft_input_ref,0, \
|
||||
fftlen*sizeof(input_type)); \
|
||||
\
|
||||
/* Input provided as a scratch buffer. Inplace input is */ \
|
||||
/* actual input. */ \
|
||||
ref_dct4_##suffix( \
|
||||
&dct4_inst_ref, \
|
||||
(void *) transform_fft_input_ref, \
|
||||
(void *) transform_fft_inplace_input_ref); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
DCT_TRANSFORM_SNR_COMPARE_INTERFACE( \
|
||||
fftlen, \
|
||||
input_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
/*
|
||||
DCT function test template for fixed point data. Arguments are: function
|
||||
suffix (q7/q15/q31/f32), input type (q7_t/q15_t/q31_t/float32_t) and prefix
|
||||
(dct_4)
|
||||
*/
|
||||
#define DCT4_FIXED_POINT_DEFINE_TEST(suffix, input_type, prefix) \
|
||||
JTEST_DEFINE_TEST(arm_dct4_##suffix##_test, arm_dct4_##suffix) \
|
||||
{ \
|
||||
CONCAT(arm_dct4_instance_,suffix) dct4_inst_fut = {0}; \
|
||||
CONCAT(arm_rfft_instance_,suffix) rfft_inst_fut = {0}; \
|
||||
CONCAT(arm_cfft_radix4_instance_,suffix) cfft_inst_fut = {0}; \
|
||||
\
|
||||
CONCAT(arm_dct4_instance_,suffix) dct4_inst_ref = {0}; \
|
||||
CONCAT(arm_rfft_instance_,suffix) rfft_inst_ref = {0}; \
|
||||
CONCAT(arm_cfft_radix4_instance_,suffix) cfft_inst_ref = {0}; \
|
||||
\
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
fftlen_idx, uint16_t, fftlen, transform_dct_fftlens \
|
||||
, \
|
||||
uint32_t i; \
|
||||
float32_t normalize_f32 = \
|
||||
ref_sqrt_f32((2.0f/(float32_t)fftlen)); \
|
||||
input_type normalize; \
|
||||
\
|
||||
/* Calculate normalized DCT4 value for input_type. */ \
|
||||
TEST_CONVERT_FLOAT_TO(&normalize_f32, &normalize, \
|
||||
1, input_type); \
|
||||
\
|
||||
/* Initialize the DCT4, RFFT, and CFFT instances */ \
|
||||
arm_dct4_init_##suffix( \
|
||||
&dct4_inst_fut, &rfft_inst_fut, &cfft_inst_fut, \
|
||||
fftlen, \
|
||||
fftlen/2, \
|
||||
normalize); \
|
||||
\
|
||||
arm_dct4_init_##suffix( \
|
||||
&dct4_inst_ref, &rfft_inst_ref, &cfft_inst_ref, \
|
||||
fftlen, \
|
||||
fftlen/2, \
|
||||
normalize); \
|
||||
\
|
||||
/* Input samples need to be downscaled by 1 bit to \
|
||||
* avoid saturations in the Q31 DCT process, \
|
||||
* as the conversion from DCT2 to DCT4 involves \
|
||||
* one subtraction. \
|
||||
*/ \
|
||||
for(i=0; i < fftlen; i++) \
|
||||
{ \
|
||||
((input_type*)transform_fft_inplace_input_fut)[i] = \
|
||||
prefix##transform_fft_##suffix##_inputs[i] >> 1; \
|
||||
((input_type*)transform_fft_inplace_input_ref)[i] = \
|
||||
prefix##transform_fft_##suffix##_inputs[i] >> 1; \
|
||||
} \
|
||||
\
|
||||
memset( transform_fft_input_fut,0, \
|
||||
fftlen*sizeof(input_type)); \
|
||||
\
|
||||
/* Display test parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n", \
|
||||
(int)fftlen); \
|
||||
\
|
||||
/* Input provided as a scratch buffer. Inplace input is \
|
||||
* actual input. */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_dct4_##suffix( \
|
||||
&dct4_inst_fut, \
|
||||
(void *) transform_fft_input_fut, \
|
||||
(void *) transform_fft_inplace_input_fut)); \
|
||||
\
|
||||
memset( transform_fft_input_ref,0, \
|
||||
fftlen*sizeof(input_type)); \
|
||||
\
|
||||
/* Input provided as a scratch buffer. Inplace input is */ \
|
||||
/* actual input. */ \
|
||||
ref_dct4_##suffix( \
|
||||
&dct4_inst_ref, \
|
||||
(void *) transform_fft_input_ref, \
|
||||
(void *) transform_fft_inplace_input_ref); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
DCT_TRANSFORM_SNR_COMPARE_INTERFACE( \
|
||||
fftlen, \
|
||||
input_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
DCT4_DEFINE_TEST(f32, float32_t);
|
||||
DCT4_FIXED_POINT_DEFINE_TEST(q31, q31_t,);
|
||||
DCT4_FIXED_POINT_DEFINE_TEST(q15, q15_t, dct4_);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(dct4_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_dct4_f32_test);
|
||||
JTEST_TEST_CALL(arm_dct4_q31_test);
|
||||
JTEST_TEST_CALL(arm_dct4_q15_test);
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "transform_templates.h"
|
||||
#include "transform_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*
|
||||
FFT fast function test template. Arguments are: function configuration suffix
|
||||
(q7/q15/q31/f32) and inverse-transform flag
|
||||
*/
|
||||
#define RFFT_FAST_DEFINE_TEST(config_suffix, ifft_flag) \
|
||||
JTEST_DEFINE_TEST(arm_rfft_fast_f32_##config_suffix##_test, \
|
||||
arm_fft_f32) \
|
||||
{ \
|
||||
arm_rfft_fast_instance_f32 rfft_inst_fut = {{0}, 0, 0}; \
|
||||
arm_rfft_fast_instance_f32 rfft_inst_ref = {{0}, 0, 0}; \
|
||||
\
|
||||
/* Go through all FFT lengths */ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
fftlen_idx, uint16_t, fftlen, transform_rfft_fast_fftlens \
|
||||
, \
|
||||
\
|
||||
/* Initialize the RFFT and CFFT Instances */ \
|
||||
arm_rfft_fast_init_f32( \
|
||||
&rfft_inst_fut, fftlen); \
|
||||
\
|
||||
arm_rfft_fast_init_f32( \
|
||||
&rfft_inst_ref, fftlen); \
|
||||
\
|
||||
TRANSFORM_COPY_INPUTS( \
|
||||
transform_fft_f32_inputs, \
|
||||
fftlen * \
|
||||
sizeof(float32_t)); \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Inverse-transform flag: %d\n", \
|
||||
(int)fftlen, \
|
||||
(int)ifft_flag); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_rfft_fast_f32( \
|
||||
&rfft_inst_fut, \
|
||||
(void *) transform_fft_input_fut, \
|
||||
(void *) transform_fft_output_fut, \
|
||||
ifft_flag)); \
|
||||
\
|
||||
ref_rfft_fast_f32( \
|
||||
&rfft_inst_ref, \
|
||||
(void *) transform_fft_input_ref, \
|
||||
(void *) transform_fft_output_ref, \
|
||||
ifft_flag); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
TRANSFORM_SNR_COMPARE_INTERFACE( \
|
||||
fftlen, \
|
||||
float32_t)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
RFFT_FAST_DEFINE_TEST(forward, 0U);
|
||||
RFFT_FAST_DEFINE_TEST(inverse, 1U);
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(rfft_fast_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_rfft_fast_f32_forward_test);
|
||||
JTEST_TEST_CALL(arm_rfft_fast_f32_inverse_test);
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
#include "jtest.h"
|
||||
#include "ref.h"
|
||||
#include "arr_desc.h"
|
||||
#include "transform_templates.h"
|
||||
#include "transform_test_data.h"
|
||||
#include "type_abbrev.h"
|
||||
|
||||
/*
|
||||
FFT function test template. Arguments are: function suffix (q7/q15/q31/f32)
|
||||
function configuration suffix (same as function suffix), inverse-transform flag,
|
||||
input and output type (both q7_t/q15_t/q31_t/float32_t)
|
||||
*/
|
||||
#define RFFT_DEFINE_TEST(suffix, config_suffix, \
|
||||
ifft_flag, input_type, output_type) \
|
||||
JTEST_DEFINE_TEST(arm_rfft_##suffix##_##config_suffix##_test, \
|
||||
arm_rfft_##suffix) \
|
||||
{ \
|
||||
CONCAT(arm_rfft_instance_, suffix) rfft_inst_fut = {0}; \
|
||||
CONCAT(arm_rfft_instance_, suffix) rfft_inst_ref = {0}; \
|
||||
\
|
||||
/* Go through all arm_rfft lengths */ \
|
||||
TEMPLATE_DO_ARR_DESC( \
|
||||
fftlen_idx, uint16_t, fftlen, transform_rfft_fftlens \
|
||||
, \
|
||||
\
|
||||
/* Initialize the RFFT and CFFT Instances */ \
|
||||
arm_rfft_init_##suffix( \
|
||||
&rfft_inst_fut, \
|
||||
(uint32_t) fftlen, ifft_flag, 1U); \
|
||||
\
|
||||
arm_rfft_init_##suffix( \
|
||||
&rfft_inst_ref, \
|
||||
(uint32_t) fftlen, ifft_flag, 1U); \
|
||||
\
|
||||
if (ifft_flag) \
|
||||
{ \
|
||||
TRANSFORM_PREPARE_INVERSE_INPUTS( \
|
||||
transform_fft_##suffix##_inputs, \
|
||||
fftlen, input_type, \
|
||||
fftlen * \
|
||||
sizeof(input_type)); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
TRANSFORM_COPY_INPUTS( \
|
||||
transform_fft_##suffix##_inputs, \
|
||||
fftlen * \
|
||||
sizeof(input_type)); \
|
||||
} \
|
||||
\
|
||||
/* Display parameter values */ \
|
||||
JTEST_DUMP_STRF("Block Size: %d\n" \
|
||||
"Inverse-transform flag: %d\n", \
|
||||
(int)fftlen, \
|
||||
(int)ifft_flag); \
|
||||
\
|
||||
/* Display cycle count and run test */ \
|
||||
JTEST_COUNT_CYCLES( \
|
||||
arm_rfft_##suffix( \
|
||||
&rfft_inst_fut, \
|
||||
(void *) transform_fft_input_fut, \
|
||||
(void *) transform_fft_output_fut)); \
|
||||
\
|
||||
ref_rfft_##suffix( \
|
||||
&rfft_inst_ref, \
|
||||
(void *) transform_fft_input_ref, \
|
||||
(void *) transform_fft_output_ref); \
|
||||
\
|
||||
/* Test correctness */ \
|
||||
TRANSFORM_SNR_COMPARE_INTERFACE( \
|
||||
fftlen, \
|
||||
output_type)); \
|
||||
\
|
||||
return JTEST_TEST_PASSED; \
|
||||
}
|
||||
|
||||
RFFT_DEFINE_TEST(q31, forward, 0U, TYPE_FROM_ABBREV(q31), TYPE_FROM_ABBREV(q31));
|
||||
RFFT_DEFINE_TEST(q15, forward, 0U, TYPE_FROM_ABBREV(q15), TYPE_FROM_ABBREV(q15));
|
||||
//RFFT_DEFINE_TEST(f32, inverse, 1U, TYPE_FROM_ABBREV(f32), TYPE_FROM_ABBREV(f32));
|
||||
RFFT_DEFINE_TEST(q31, inverse, 1U, TYPE_FROM_ABBREV(q31), TYPE_FROM_ABBREV(q31));
|
||||
RFFT_DEFINE_TEST(q15, inverse, 1U, TYPE_FROM_ABBREV(q15), TYPE_FROM_ABBREV(q15));
|
||||
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
/* Collect all tests in a group */
|
||||
/*--------------------------------------------------------------------------------*/
|
||||
|
||||
JTEST_DEFINE_GROUP(rfft_tests)
|
||||
{
|
||||
JTEST_TEST_CALL(arm_rfft_q31_forward_test);
|
||||
JTEST_TEST_CALL(arm_rfft_q15_forward_test);
|
||||
//JTEST_TEST_CALL(arm_rfft_f32_inverse_test);
|
||||
JTEST_TEST_CALL(arm_rfft_q31_inverse_test);
|
||||
JTEST_TEST_CALL(arm_rfft_q15_inverse_test);
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
#include "jtest.h"
|
||||
#include "transform_tests.h"
|
||||
|
||||
JTEST_DEFINE_GROUP(transform_tests)
|
||||
{
|
||||
JTEST_GROUP_CALL(cfft_tests);
|
||||
JTEST_GROUP_CALL(cfft_family_tests);
|
||||
JTEST_GROUP_CALL(rfft_tests);
|
||||
JTEST_GROUP_CALL(rfft_fast_tests);
|
||||
JTEST_GROUP_CALL(dct4_tests);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user