From ac5174cbbd9f56bba7972ee60b664ffaef4d9276 Mon Sep 17 00:00:00 2001 From: Stephanos Ioannidis Date: Wed, 18 Aug 2021 19:15:46 +0900 Subject: [PATCH] tests: lib: cmsis_dsp: basicmath: Update Q15 tests for 1.9.0 This commit updates the basicmath Q15 test patterns and implementations for the CMSIS-DSP 1.9.0. Signed-off-by: Stephanos Ioannidis --- tests/lib/cmsis_dsp/basicmath/src/q15.c | 54 +- tests/lib/cmsis_dsp/basicmath/src/q15.pat | 783 +++++++++++++--------- 2 files changed, 519 insertions(+), 318 deletions(-) diff --git a/tests/lib/cmsis_dsp/basicmath/src/q15.c b/tests/lib/cmsis_dsp/basicmath/src/q15.c index e6bde058a3c..26c0521718c 100644 --- a/tests/lib/cmsis_dsp/basicmath/src/q15.c +++ b/tests/lib/cmsis_dsp/basicmath/src/q15.c @@ -1,6 +1,6 @@ /* - * Copyright (c) 2020 Stephanos Ioannidis - * Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved. + * Copyright (c) 2021 Stephanos Ioannidis + * Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 */ @@ -49,6 +49,7 @@ DEFINE_TEST_VARIANT4(arm_add_q15, 16, in_com1, in_com2, ref_add, 16); DEFINE_TEST_VARIANT4(arm_add_q15, 23, in_com1, in_com2, ref_add, 23); DEFINE_TEST_VARIANT4(arm_add_q15, possat, in_maxpos, in_maxpos, ref_add_possat, 17); DEFINE_TEST_VARIANT4(arm_add_q15, negsat, in_maxneg, in_maxneg, ref_add_negsat, 17); +DEFINE_TEST_VARIANT4(arm_add_q15, long, in_com1, in_com2, ref_add, ARRAY_SIZE(in_com1)); static void test_arm_sub_q15( const q15_t *input1, const q15_t *input2, const q15_t *ref, @@ -81,6 +82,7 @@ DEFINE_TEST_VARIANT4(arm_sub_q15, 16, in_com1, in_com2, ref_sub, 16); DEFINE_TEST_VARIANT4(arm_sub_q15, 23, in_com1, in_com2, ref_sub, 23); DEFINE_TEST_VARIANT4(arm_sub_q15, possat, in_maxpos, in_maxneg, ref_sub_possat, 17); DEFINE_TEST_VARIANT4(arm_sub_q15, negsat, in_maxneg, in_maxpos, ref_sub_negsat, 17); +DEFINE_TEST_VARIANT4(arm_sub_q15, long, in_com1, in_com2, ref_sub, ARRAY_SIZE(in_com1)); static void test_arm_mult_q15( const q15_t *input1, const q15_t *input2, const q15_t *ref, @@ -112,6 +114,7 @@ DEFINE_TEST_VARIANT4(arm_mult_q15, 7, in_com1, in_com2, ref_mult, 7); DEFINE_TEST_VARIANT4(arm_mult_q15, 16, in_com1, in_com2, ref_mult, 16); DEFINE_TEST_VARIANT4(arm_mult_q15, 23, in_com1, in_com2, ref_mult, 23); DEFINE_TEST_VARIANT4(arm_mult_q15, possat, in_maxneg2, in_maxneg2, ref_mult_possat, 17); +DEFINE_TEST_VARIANT4(arm_mult_q15, long, in_com1, in_com2, ref_mult, ARRAY_SIZE(in_com1)); static void test_arm_negate_q15( const q15_t *input1, const q15_t *ref, size_t length) @@ -142,6 +145,7 @@ DEFINE_TEST_VARIANT3(arm_negate_q15, 7, in_com1, ref_negate, 7); DEFINE_TEST_VARIANT3(arm_negate_q15, 16, in_com1, ref_negate, 16); DEFINE_TEST_VARIANT3(arm_negate_q15, 23, in_com1, ref_negate, 23); DEFINE_TEST_VARIANT3(arm_negate_q15, possat, in_maxneg2, ref_negate_possat, 17); +DEFINE_TEST_VARIANT3(arm_negate_q15, long, in_com1, ref_negate, ARRAY_SIZE(in_com1)); static void test_arm_offset_q15( const q15_t *input1, q15_t scalar, const q15_t *ref, size_t length) @@ -173,6 +177,7 @@ DEFINE_TEST_VARIANT4(arm_offset_q15, 0p5_16, in_com1, 0x4000, ref_offset, 16); DEFINE_TEST_VARIANT4(arm_offset_q15, 0p5_23, in_com1, 0x4000, ref_offset, 23); DEFINE_TEST_VARIANT4(arm_offset_q15, possat, in_maxpos, 0x7333, ref_offset_possat, 17); DEFINE_TEST_VARIANT4(arm_offset_q15, negsat, in_maxneg, 0x8ccd, ref_offset_negsat, 17); +DEFINE_TEST_VARIANT4(arm_offset_q15, long, in_com1, 0x4000, ref_offset, ARRAY_SIZE(in_com1)); static void test_arm_scale_q15( const q15_t *input1, q15_t scalar, const q15_t *ref, size_t length) @@ -203,6 +208,7 @@ DEFINE_TEST_VARIANT4(arm_scale_q15, 0p5_7, in_com1, 0x4000, ref_scale, 7); DEFINE_TEST_VARIANT4(arm_scale_q15, 0p5_16, in_com1, 0x4000, ref_scale, 16); DEFINE_TEST_VARIANT4(arm_scale_q15, 0p5_23, in_com1, 0x4000, ref_scale, 23); DEFINE_TEST_VARIANT4(arm_scale_q15, possat, in_maxneg2, 0x8000, ref_scale_possat, 17); +DEFINE_TEST_VARIANT4(arm_scale_q15, long, in_com1, 0x4000, ref_scale, ARRAY_SIZE(in_com1)); static void test_arm_dot_prod_q15( const q15_t *input1, const q15_t *input2, const q63_t *ref, @@ -233,6 +239,8 @@ static void test_arm_dot_prod_q15( DEFINE_TEST_VARIANT4(arm_dot_prod_q15, 7, in_com1, in_com2, ref_dot_prod_3, 7); DEFINE_TEST_VARIANT4(arm_dot_prod_q15, 16, in_com1, in_com2, ref_dot_prod_4, 16); DEFINE_TEST_VARIANT4(arm_dot_prod_q15, 23, in_com1, in_com2, ref_dot_prod_4n1, 23); +DEFINE_TEST_VARIANT4(arm_dot_prod_q15, long, in_com1, in_com2, ref_dot_prod_long, + ARRAY_SIZE(in_com1)); static void test_arm_abs_q15( const q15_t *input1, const q15_t *ref, size_t length) @@ -262,6 +270,7 @@ static void test_arm_abs_q15( DEFINE_TEST_VARIANT3(arm_abs_q15, 7, in_com1, ref_abs, 7); DEFINE_TEST_VARIANT3(arm_abs_q15, 16, in_com1, ref_abs, 16); DEFINE_TEST_VARIANT3(arm_abs_q15, 23, in_com1, ref_abs, 23); +DEFINE_TEST_VARIANT3(arm_abs_q15, long, in_com1, ref_abs, ARRAY_SIZE(in_com1)); static void test_arm_shift_q15( const q15_t *input1, const q15_t *ref, size_t length) @@ -395,6 +404,34 @@ DEFINE_TEST_VARIANT4(arm_xor_u16, 7, in_bitwise1, in_bitwise2, ref_xor, 7); DEFINE_TEST_VARIANT4(arm_xor_u16, 16, in_bitwise1, in_bitwise2, ref_xor, 16); DEFINE_TEST_VARIANT4(arm_xor_u16, 23, in_bitwise1, in_bitwise2, ref_xor, 23); +static void test_arm_clip_q15( + const q15_t *input, const q15_t *ref, q15_t min, q15_t max, size_t length) +{ + q15_t *output; + + /* Allocate output buffer */ + output = malloc(length * sizeof(q15_t)); + zassert_not_null(output, ASSERT_MSG_BUFFER_ALLOC_FAILED); + + /* Run test function */ + arm_clip_q15(input, output, min, max, length); + + /* Validate output */ + zassert_true( + test_equal_q15(length, output, ref), + ASSERT_MSG_INCORRECT_COMP_RESULT); + + /* Free output buffer */ + free(output); +} + +DEFINE_TEST_VARIANT5(arm_clip_q15, c000_f333, in_clip, ref_clip1, + 0xc000, 0xf333, ARRAY_SIZE(ref_clip1)); +DEFINE_TEST_VARIANT5(arm_clip_q15, c000_4000, in_clip, ref_clip2, + 0xc000, 0x4000, ARRAY_SIZE(ref_clip2)); +DEFINE_TEST_VARIANT5(arm_clip_q15, 0ccd_4000, in_clip, ref_clip3, + 0x0ccd, 0x4000, ARRAY_SIZE(ref_clip3)); + void test_basicmath_q15(void) { ztest_test_suite(basicmath_q15, @@ -445,7 +482,18 @@ void test_basicmath_q15(void) ztest_unit_test(test_arm_not_u16_23), ztest_unit_test(test_arm_xor_u16_7), ztest_unit_test(test_arm_xor_u16_16), - ztest_unit_test(test_arm_xor_u16_23) + ztest_unit_test(test_arm_xor_u16_23), + ztest_unit_test(test_arm_add_q15_long), + ztest_unit_test(test_arm_sub_q15_long), + ztest_unit_test(test_arm_mult_q15_long), + ztest_unit_test(test_arm_negate_q15_long), + ztest_unit_test(test_arm_offset_q15_long), + ztest_unit_test(test_arm_scale_q15_long), + ztest_unit_test(test_arm_dot_prod_q15_long), + ztest_unit_test(test_arm_abs_q15_long), + ztest_unit_test(test_arm_clip_q15_c000_f333), + ztest_unit_test(test_arm_clip_q15_c000_4000), + ztest_unit_test(test_arm_clip_q15_0ccd_4000) ); ztest_run_test_suite(basicmath_q15); diff --git a/tests/lib/cmsis_dsp/basicmath/src/q15.pat b/tests/lib/cmsis_dsp/basicmath/src/q15.pat index de2c9b234d4..efe5007b5cf 100644 --- a/tests/lib/cmsis_dsp/basicmath/src/q15.pat +++ b/tests/lib/cmsis_dsp/basicmath/src/q15.pat @@ -1,89 +1,89 @@ static const q15_t in_com1[256] = { - 0x1577, 0xD312, 0x0DEC, 0xFDD4, 0x1DB9, 0xDD7C, 0xF64B, 0x04D2, - 0x2F93, 0xDD5A, 0xEDDD, 0xFA2C, 0x0D5F, 0x4208, 0xF97A, 0xFE2C, - 0x03E7, 0x2F3F, 0x18E1, 0x1EB5, 0xF7E3, 0xF3A9, 0x5002, 0x0358, - 0x0B8E, 0xDEDC, 0xCFC7, 0x01B0, 0x2B2D, 0x1FEA, 0x93BC, 0xBB3F, - 0xFF0F, 0xCA86, 0x2006, 0x73B8, 0xD902, 0x314C, 0xD6CF, 0x05BA, - 0x1949, 0xE6B6, 0x2F78, 0xEC79, 0xA80F, 0xDFA9, 0x477A, 0xD784, - 0x1130, 0xFCF6, 0x0B8D, 0xAD6B, 0xF02F, 0xF17D, 0x3925, 0xEC40, - 0x24D9, 0x60AB, 0xBFE4, 0xFC85, 0x365B, 0x3C38, 0xFFC8, 0x2A3C, - 0x1FD0, 0x0135, 0xEC59, 0x525C, 0xDBF4, 0x2831, 0xD420, 0x0E33, - 0xD0AC, 0x16CF, 0x4315, 0xEFE1, 0x17A1, 0x7C83, 0x13DF, 0x31B2, - 0xF54E, 0xE278, 0x187F, 0xCDE2, 0xBBDD, 0xF830, 0x599F, 0x46EC, - 0xF5C8, 0xDC90, 0x299F, 0xC8E2, 0x1166, 0x0990, 0x0431, 0x24E0, - 0xE165, 0x9B13, 0x9921, 0xDDED, 0x22BD, 0x136D, 0x4A2B, 0xD9E2, - 0x2AFA, 0x3917, 0xB989, 0xD490, 0x0F3E, 0xC884, 0x40B8, 0x1BAF, - 0xB490, 0x0046, 0xE5A3, 0x0DDC, 0x02A1, 0x0D6B, 0xF8CA, 0x0530, - 0x9F26, 0x12E1, 0xD4C7, 0x34D4, 0x3B51, 0xDC4A, 0xA2FE, 0x0746, - 0xB21E, 0xF3F6, 0x6134, 0x37E1, 0xF5F5, 0x1FB1, 0xBDED, 0x1E50, - 0x3FE4, 0xE27D, 0x744C, 0x10F4, 0x3809, 0x2998, 0xBBE3, 0xEB12, - 0xFD40, 0xABC5, 0x336B, 0x2327, 0xE6FA, 0x1DE4, 0x343D, 0xAE1B, - 0xC7CF, 0xF6E1, 0x3E32, 0x167E, 0x391A, 0x8D3D, 0xDA6C, 0x0B48, - 0xEB83, 0xD782, 0xC3F8, 0xEF96, 0x11DB, 0xEEE6, 0xE9EC, 0xF82C, - 0x35E3, 0xB844, 0xE9C2, 0x3CCF, 0x01D2, 0x224E, 0xD982, 0xCBA3, - 0xF554, 0xD2B0, 0x013D, 0x68A0, 0x2036, 0xBB5F, 0x1F2B, 0x8000, - 0xC8FD, 0x0B4F, 0x0007, 0x267F, 0xE09E, 0x151B, 0x1BD6, 0xEB44, - 0x0082, 0xCD6E, 0x0BCA, 0x47F4, 0xE0B5, 0x2457, 0xF8EA, 0xC086, - 0xAE06, 0x282B, 0x0FA5, 0xD9BB, 0xE484, 0x319D, 0x5677, 0x2B75, - 0xFD81, 0xD2B0, 0xD643, 0x031A, 0x9E6F, 0x0CF5, 0xDA55, 0x197B, - 0xEDAF, 0x0208, 0xE579, 0xE695, 0x3D2C, 0x4BDE, 0x1F82, 0x0C99, - 0x0AE6, 0x1E51, 0x00B6, 0xC284, 0x13D3, 0x30C9, 0xCC46, 0x06A9, - 0x7A33, 0xFA26, 0x4754, 0xAD17, 0x01E7, 0x1D4A, 0x43FA, 0x32EE, - 0xE719, 0x4282, 0xD850, 0xCC17, 0x5E80, 0xBDED, 0x11A6, 0x0DF1, - 0xDB5F, 0x2EB8, 0xCF94, 0x2337, 0x32FE, 0xD3BB, 0x0975, 0xF931 + 0x0EB1, 0xD7DA, 0xDFC2, 0x2DDA, 0xAEB8, 0x1A8C, 0x34D0, 0xC949, + 0x19FF, 0x1AFC, 0xD67E, 0x2639, 0x1546, 0xF32D, 0x2A82, 0xB79E, + 0x1317, 0xEAF2, 0xCBD9, 0xC454, 0x42FD, 0xBB89, 0x9B4F, 0xCE5C, + 0x09A1, 0xDFC2, 0xD780, 0x2B2C, 0x0FDB, 0xC69C, 0x5D9B, 0xBC82, + 0x2794, 0xC287, 0x152B, 0xDA69, 0x2BE1, 0xE9BB, 0xD5EE, 0xC7C4, + 0xBCDA, 0xC828, 0x19B1, 0x5F41, 0x5146, 0x00F0, 0xDEF6, 0x2A44, + 0xCD0A, 0xE918, 0xF4D0, 0xD863, 0x241F, 0xE030, 0x26F3, 0x1ACB, + 0x245C, 0x047C, 0x9433, 0x2BF5, 0x2F0F, 0x40E5, 0xC00D, 0x849C, + 0x215D, 0xDE1B, 0x264A, 0x311D, 0x0C88, 0x1028, 0x2D8F, 0xCE0E, + 0x1B43, 0x5529, 0x2914, 0xE215, 0x0C95, 0xF727, 0xDF21, 0xD12E, + 0xBF74, 0xBFB5, 0xC4B0, 0xCDBB, 0xE3D0, 0xFAF9, 0x2579, 0xE9F5, + 0xE00D, 0xE3B7, 0x2FE5, 0xE7A2, 0xE72C, 0x4C12, 0x156E, 0x03A9, + 0xE767, 0x14B9, 0x8F36, 0x54D3, 0xF8CF, 0xC5F2, 0xE3E2, 0x3EEB, + 0x054A, 0x6482, 0x013C, 0xFF6D, 0x078F, 0xA20A, 0xEF63, 0xCBAB, + 0xC222, 0xA967, 0x3F6B, 0xFAFE, 0x1498, 0xF9D3, 0xC2C3, 0xCD2C, + 0x1B37, 0xA9E8, 0xF8A4, 0xD3A6, 0xD238, 0x55EC, 0xF7FA, 0x007C, + 0xC1BF, 0x161F, 0x8000, 0x273D, 0xEEC7, 0xFDDA, 0xD41C, 0x51C4, + 0x1697, 0x3C98, 0x2E62, 0xC85D, 0x01FF, 0xC356, 0xBCC5, 0xF6C0, + 0xC2FB, 0x1CC0, 0xC736, 0xED5C, 0x1B3C, 0xCEDC, 0xDC71, 0xD699, + 0x895A, 0xF44E, 0xFEAB, 0xB470, 0xE176, 0xC915, 0x23AD, 0xDBDE, + 0x2579, 0xB028, 0xF293, 0xF1D3, 0x2BE9, 0x3FE0, 0x5143, 0x8BB5, + 0xD9A9, 0xC304, 0x5BE4, 0xBD39, 0xF24A, 0xC721, 0xE044, 0xE5EB, + 0x3015, 0x22EB, 0x0FC5, 0xF766, 0xCAEC, 0x356E, 0xF105, 0xE3F6, + 0xC69B, 0xC858, 0x1EF3, 0xD29A, 0xF220, 0x156B, 0x0625, 0xD1BA, + 0x0DF9, 0x6A80, 0xECF5, 0xBBC4, 0xE8B3, 0x1DBD, 0x27ED, 0x43D5, + 0x38E0, 0x0942, 0x0DB3, 0x93F4, 0xF640, 0xBC17, 0xFB75, 0xB565, + 0x39FD, 0x037E, 0x533F, 0x3981, 0x2FC2, 0xA54D, 0x2DAC, 0x403B, + 0xD1AC, 0x2397, 0x06C3, 0xDD46, 0x9F4C, 0xF716, 0xD4F2, 0xFEEA, + 0xCE26, 0xF1C9, 0x376E, 0x2D6C, 0x1DA1, 0x1ADF, 0x2DB9, 0x1E02, + 0xFA30, 0x0633, 0x4356, 0x06F1, 0x0751, 0x2881, 0x1D47, 0x2D8C, + 0xA430, 0xB60E, 0x9CBD, 0xF925, 0xF90C, 0x235A, 0xDAAC, 0x3B2B, + 0x112A, 0x8F09, 0x00B9, 0xB234, 0xA386, 0xD619, 0x20AA, 0x5063 }; static const q15_t in_com2[256] = { - 0x5BEF, 0xCD49, 0xD8CC, 0xBCD1, 0x124D, 0x28B3, 0xEB78, 0xF49C, - 0xA373, 0xC377, 0x3AA9, 0xE95C, 0xE7C2, 0x1609, 0x0701, 0x8EDC, - 0x4575, 0xF6FE, 0x2984, 0x251E, 0x0DCB, 0xDB0F, 0x2334, 0xD03C, - 0xC6C9, 0x07B7, 0x182D, 0xD4A4, 0x5C38, 0x247E, 0xE6B6, 0xD58B, - 0x325B, 0x12BF, 0x0C80, 0xFE05, 0xDC90, 0xFB0F, 0x1B69, 0x1DA4, - 0xCB87, 0x375F, 0x3E5F, 0xE3CB, 0x2385, 0xE1C9, 0x1AB3, 0xDD08, - 0xE452, 0x52FD, 0x2572, 0x191A, 0xFB72, 0x7941, 0x079D, 0xDEF2, - 0xFE12, 0xBF31, 0x3296, 0x4077, 0xF27F, 0xED4F, 0xC345, 0xCFE8, - 0xEF2D, 0x362D, 0x01F2, 0xE18B, 0x5BCC, 0xCD4F, 0x1DB8, 0xF67E, - 0x30C2, 0xDDA6, 0xD3A7, 0x0808, 0xFE0C, 0x2060, 0xFB8E, 0xC8A6, - 0x5CE7, 0x0CCF, 0xEF0C, 0xBDF0, 0xE9D4, 0xD0C4, 0x0C5F, 0x2A6E, - 0xD463, 0xE6A1, 0x012F, 0x2E73, 0x638B, 0x1A26, 0x2924, 0xA5FB, - 0x1635, 0x1B53, 0xF20D, 0xF1F0, 0x4925, 0x3455, 0xE755, 0x05B0, - 0x08EF, 0xA9AD, 0xB265, 0x2B29, 0xD498, 0x9FBD, 0xDD48, 0xE157, - 0x0F76, 0xD0C9, 0xDF15, 0xD4AE, 0xCA70, 0xC60A, 0xD7B2, 0xFAF8, - 0x05CD, 0xE2E8, 0xC5AD, 0x0C0D, 0x2788, 0x82BD, 0xB980, 0xB52A, - 0x42E7, 0xE7C5, 0x0D92, 0xDCBC, 0xDBB4, 0x1E56, 0xC294, 0xA978, - 0xEB0B, 0x8000, 0xA9F3, 0xFD66, 0xA7F6, 0x6C1E, 0x081F, 0xE43E, - 0xB17F, 0xBB34, 0x07A6, 0xC7DC, 0x10FF, 0xF30F, 0xD144, 0xDA95, - 0xBA0D, 0x29FB, 0xC632, 0xC62D, 0x1EF3, 0x1CBE, 0x05A0, 0x11E5, - 0x9BF1, 0xFE71, 0x210D, 0xDF0F, 0xEBDD, 0x1624, 0xDC7B, 0x0037, - 0x13C6, 0xD67D, 0xED4B, 0x4B30, 0xF83A, 0xC155, 0xFA35, 0xB7E9, - 0x2092, 0xEE3F, 0x2E0D, 0x2FBB, 0xE895, 0x3864, 0xDD37, 0x506D, - 0x2A4F, 0x1985, 0xC6C0, 0xFE51, 0xDD21, 0x3E4B, 0x0477, 0xA787, - 0x50B2, 0xD077, 0xEDC1, 0xEEC5, 0x2F11, 0xB66F, 0x2736, 0xE096, - 0xEF0B, 0xAA5A, 0xC5A1, 0x3F43, 0x4233, 0xFDC0, 0xEA68, 0xF1E6, - 0x0223, 0xFB8A, 0xEC14, 0xF4FB, 0x4CDA, 0x07DD, 0xC193, 0xE081, - 0x2568, 0xF69E, 0xDC8B, 0xC626, 0x07BE, 0xFCD6, 0x03F5, 0xB9DA, - 0xF5FC, 0xECB8, 0xFD33, 0x03C6, 0xEACC, 0x179A, 0xDFE6, 0x1AC1, - 0x15FF, 0xF360, 0x1F14, 0xFF6B, 0xA709, 0xC3C2, 0x0266, 0xEE87, - 0x17B0, 0xF837, 0xD7FE, 0x9FBE, 0x23E2, 0xEF5B, 0xD71F, 0xDD01, - 0x1DF9, 0xF2FC, 0xEDBC, 0x095E, 0xCC88, 0xD846, 0x799F, 0xD9D0 + 0xF977, 0xF484, 0xB38D, 0xC049, 0x127F, 0xEE0D, 0x5183, 0x1CFF, + 0x2EC8, 0x7FFF, 0x44B4, 0xD9AD, 0x4410, 0x27AA, 0x0313, 0xC597, + 0xA23C, 0xFCF7, 0xF6CA, 0x0540, 0x3DD7, 0x4BA0, 0xCB04, 0x4650, + 0x5117, 0x0F7A, 0x16B7, 0x0052, 0x04F6, 0xCBB2, 0xD270, 0xFCD5, + 0xDFF0, 0x389E, 0x2413, 0xD405, 0x08F1, 0xF872, 0xABD2, 0x13D4, + 0x86AB, 0xDECA, 0xEFE1, 0x04D6, 0x2F20, 0xE4F2, 0x74C9, 0xFAFF, + 0x1E5B, 0x4BBC, 0xE50F, 0x26A3, 0xF12F, 0x9774, 0x0465, 0x0FE1, + 0xB3DD, 0xFF6A, 0x2B48, 0xD882, 0xD6B7, 0x077A, 0xE7AC, 0x94B7, + 0x03BB, 0x2E0B, 0xEE40, 0xED35, 0xEC88, 0x3365, 0x60B5, 0x249E, + 0x03B7, 0xCCB7, 0xB6E0, 0xB83B, 0xEB34, 0xEC7F, 0xEC20, 0x037F, + 0x29F7, 0x9EE0, 0x0079, 0xF08C, 0xE025, 0xE064, 0xF44A, 0x28BF, + 0xDB1A, 0x11F0, 0xFF16, 0x5896, 0x01D3, 0x2546, 0x0D96, 0xE7A4, + 0xFBAF, 0xC158, 0x1BD0, 0x1349, 0x0F56, 0x3C3A, 0x0971, 0x0144, + 0x0103, 0xD605, 0x5F13, 0xD660, 0x56D8, 0x281A, 0xCB9C, 0xF087, + 0x0DF1, 0xE910, 0x00A3, 0xDB1F, 0xEF24, 0xCB3C, 0xFDC3, 0x33BF, + 0xC071, 0x2387, 0x1D00, 0xFCAB, 0xDEAF, 0xD8BE, 0x50D2, 0xA530, + 0x3BED, 0x33D0, 0xC7B0, 0x8906, 0x1389, 0x5832, 0x12A8, 0xCD6B, + 0x3FB1, 0x2AF3, 0x1438, 0x230A, 0x1D37, 0xDBE5, 0xC794, 0xCF49, + 0xBD1F, 0x0352, 0xDDEF, 0xF71B, 0xF034, 0x69E3, 0xE115, 0xD0FB, + 0x14C9, 0xF522, 0xDF36, 0xE814, 0xE306, 0x2CE3, 0xDB81, 0x6658, + 0x02D7, 0x1E97, 0xBA82, 0xEE1A, 0x5C73, 0x2956, 0xBC37, 0xF3FA, + 0xD52D, 0xFE74, 0xA370, 0xE439, 0x007A, 0x0138, 0xF675, 0xDAB6, + 0xFB95, 0xE5D5, 0xF490, 0xF4FD, 0x0BD8, 0x58FF, 0xE5FA, 0x1DC2, + 0x0DB3, 0xD10F, 0x006F, 0xC3FA, 0xE69E, 0xFF03, 0x01C4, 0x2F8A, + 0xE336, 0x05F5, 0xD870, 0xDF1E, 0x532B, 0x2F9B, 0xED67, 0xB192, + 0xF663, 0xC955, 0xD832, 0xCB4F, 0x060B, 0x136A, 0x3EC8, 0xCBF4, + 0xF509, 0x480F, 0x22B4, 0xE9D0, 0x3610, 0x35F0, 0xD66A, 0xC10A, + 0x3476, 0x0C80, 0x002B, 0xEF29, 0x02A2, 0x8E39, 0xED70, 0x0D5D, + 0x8AF0, 0x1793, 0x1CD9, 0xE7A7, 0x45C4, 0x422D, 0xCF10, 0x3A84, + 0xF767, 0xC650, 0xF766, 0xCAA0, 0x2688, 0x1341, 0x3C45, 0x492B, + 0x01EE, 0x156F, 0x0862, 0x28AF, 0x42C1, 0xE27E, 0x0164, 0x8BC3, + 0x678D, 0xEECA, 0xCAF7, 0xE0AD, 0x15EB, 0x9059, 0xCAB6, 0xFE6E }; static const q15_t in_bitwise1[23] = { - 0xE7BA, 0x983A, 0x5234, 0x5F81, 0x424D, 0xB38C, 0x2114, 0x2AE2, - 0x0568, 0xD577, 0x2578, 0x8DA7, 0x7A7A, 0x0713, 0x6772, 0xCAD1, - 0x3F0D, 0xECF0, 0xAB31, 0x84E1, 0xC8F6, 0x7454, 0x6579 + 0xF97D, 0x7E98, 0xE83E, 0x9006, 0x8ECF, 0x82B2, 0x873C, 0xE6D0, + 0x42C6, 0xA110, 0x7D1E, 0x0CDC, 0xB6CC, 0xB5A5, 0xB245, 0xC19A, + 0x7B95, 0xB857, 0x3E23, 0xECC1, 0x8AC4, 0xA9A0, 0x7CFF }; static const q15_t in_bitwise2[23] = { - 0x7A8F, 0xD47F, 0xC328, 0xDA37, 0xDC12, 0x0328, 0x0AFA, 0xEAB3, - 0x494B, 0x3518, 0x538E, 0x51DA, 0x2BB3, 0xD2BF, 0xBFB6, 0x9A7E, - 0x34EA, 0xADDF, 0x191C, 0x67F2, 0x52D9, 0xA314, 0x3C94 + 0xABDB, 0x927F, 0x5D5D, 0xF0CC, 0x90C8, 0xE1A9, 0xCACF, 0x2B30, + 0xEDC4, 0x5AB6, 0x7E72, 0x7867, 0x0B8A, 0x0E28, 0x6421, 0x5673, + 0x8AE7, 0xF8DC, 0x45A3, 0xF95D, 0x4B42, 0xB9A3, 0x7FE6 }; static const q15_t in_rand[17] = { - 0xF522, 0xF5AF, 0x194D, 0x05FC, 0x0362, 0x18D5, 0x05CD, 0x08FE, - 0xE270, 0x0684, 0xFB50, 0xFB51, 0xD555, 0xFC55, 0xF4AF, 0x2203, - 0x21AE + 0x271B, 0xDA32, 0x1348, 0xF2FB, 0x2AAB, 0x011B, 0x04BE, 0xEDA1, + 0xF82B, 0xF5EC, 0x201A, 0xE56E, 0xE8B7, 0x09B3, 0x1889, 0x15E1, + 0x00F3 }; static const q15_t in_maxpos[17] = { @@ -104,39 +104,77 @@ static const q15_t in_maxneg2[17] = { 0x8000 }; +static const q15_t in_clip[279] = { + 0x8CCD, 0x8DA1, 0x8E75, 0x8F49, 0x901D, 0x90F2, 0x91C6, 0x929A, + 0x936E, 0x9442, 0x9516, 0x95EB, 0x96BF, 0x9793, 0x9867, 0x993B, + 0x9A0F, 0x9AE4, 0x9BB8, 0x9C8C, 0x9D60, 0x9E34, 0x9F08, 0x9FDD, + 0xA0B1, 0xA185, 0xA259, 0xA32D, 0xA401, 0xA4D6, 0xA5AA, 0xA67E, + 0xA752, 0xA826, 0xA8FA, 0xA9CF, 0xAAA3, 0xAB77, 0xAC4B, 0xAD1F, + 0xADF3, 0xAEC8, 0xAF9C, 0xB070, 0xB144, 0xB218, 0xB2EC, 0xB3C1, + 0xB495, 0xB569, 0xB63D, 0xB711, 0xB7E5, 0xB8BA, 0xB98E, 0xBA62, + 0xBB36, 0xBC0A, 0xBCDE, 0xBDB3, 0xBE87, 0xBF5B, 0xC02F, 0xC103, + 0xC1D7, 0xC2AC, 0xC380, 0xC454, 0xC528, 0xC5FC, 0xC6D0, 0xC7A5, + 0xC879, 0xC94D, 0xCA21, 0xCAF5, 0xCBC9, 0xCC9E, 0xCD72, 0xCE46, + 0xCF1A, 0xCFEE, 0xD0C2, 0xD197, 0xD26B, 0xD33F, 0xD413, 0xD4E7, + 0xD5BB, 0xD690, 0xD764, 0xD838, 0xD90C, 0xD9E0, 0xDAB4, 0xDB89, + 0xDC5D, 0xDD31, 0xDE05, 0xDED9, 0xDFAD, 0xE082, 0xE156, 0xE22A, + 0xE2FE, 0xE3D2, 0xE4A6, 0xE57B, 0xE64F, 0xE723, 0xE7F7, 0xE8CB, + 0xE99F, 0xEA74, 0xEB48, 0xEC1C, 0xECF0, 0xEDC4, 0xEE98, 0xEF6D, + 0xF041, 0xF115, 0xF1E9, 0xF2BD, 0xF391, 0xF466, 0xF53A, 0xF60E, + 0xF6E2, 0xF7B6, 0xF88A, 0xF95F, 0xFA33, 0xFB07, 0xFBDB, 0xFCAF, + 0xFD83, 0xFE58, 0xFF2C, 0x0000, 0x00D4, 0x01A8, 0x027D, 0x0351, + 0x0425, 0x04F9, 0x05CD, 0x06A1, 0x0776, 0x084A, 0x091E, 0x09F2, + 0x0AC6, 0x0B9A, 0x0C6F, 0x0D43, 0x0E17, 0x0EEB, 0x0FBF, 0x1093, + 0x1168, 0x123C, 0x1310, 0x13E4, 0x14B8, 0x158C, 0x1661, 0x1735, + 0x1809, 0x18DD, 0x19B1, 0x1A85, 0x1B5A, 0x1C2E, 0x1D02, 0x1DD6, + 0x1EAA, 0x1F7E, 0x2053, 0x2127, 0x21FB, 0x22CF, 0x23A3, 0x2477, + 0x254C, 0x2620, 0x26F4, 0x27C8, 0x289C, 0x2970, 0x2A45, 0x2B19, + 0x2BED, 0x2CC1, 0x2D95, 0x2E69, 0x2F3E, 0x3012, 0x30E6, 0x31BA, + 0x328E, 0x3362, 0x3437, 0x350B, 0x35DF, 0x36B3, 0x3787, 0x385B, + 0x3930, 0x3A04, 0x3AD8, 0x3BAC, 0x3C80, 0x3D54, 0x3E29, 0x3EFD, + 0x3FD1, 0x40A5, 0x4179, 0x424D, 0x4322, 0x43F6, 0x44CA, 0x459E, + 0x4672, 0x4746, 0x481B, 0x48EF, 0x49C3, 0x4A97, 0x4B6B, 0x4C3F, + 0x4D14, 0x4DE8, 0x4EBC, 0x4F90, 0x5064, 0x5138, 0x520D, 0x52E1, + 0x53B5, 0x5489, 0x555D, 0x5631, 0x5706, 0x57DA, 0x58AE, 0x5982, + 0x5A56, 0x5B2A, 0x5BFF, 0x5CD3, 0x5DA7, 0x5E7B, 0x5F4F, 0x6023, + 0x60F8, 0x61CC, 0x62A0, 0x6374, 0x6448, 0x651C, 0x65F1, 0x66C5, + 0x6799, 0x686D, 0x6941, 0x6A15, 0x6AEA, 0x6BBE, 0x6C92, 0x6D66, + 0x6E3A, 0x6F0E, 0x6FE3, 0x70B7, 0x718B, 0x725F, 0x7333 + }; + static const q15_t ref_add[256] = { - 0x7166, 0xA05B, 0xE6B8, 0xBAA4, 0x3006, 0x062F, 0xE1C3, 0xF96F, - 0xD305, 0xA0D1, 0x2887, 0xE388, 0xF521, 0x5811, 0x007B, 0x8D08, - 0x495D, 0x263D, 0x4264, 0x43D2, 0x05AD, 0xCEB9, 0x7336, 0xD394, - 0xD257, 0xE693, 0xE7F5, 0xD654, 0x7FFF, 0x4468, 0x8000, 0x90CA, - 0x316B, 0xDD44, 0x2C86, 0x71BD, 0xB591, 0x2C5B, 0xF239, 0x235E, - 0xE4D0, 0x1E16, 0x6DD7, 0xD044, 0xCB94, 0xC172, 0x622D, 0xB48C, - 0xF582, 0x4FF4, 0x30FF, 0xC686, 0xEBA1, 0x6ABD, 0x40C2, 0xCB31, - 0x22EB, 0x1FDD, 0xF27A, 0x3CFD, 0x28DA, 0x2987, 0xC30D, 0xFA24, - 0x0EFD, 0x3763, 0xEE4B, 0x33E7, 0x37BF, 0xF581, 0xF1D8, 0x04B0, - 0x016D, 0xF475, 0x16BC, 0xF7E9, 0x15AD, 0x7FFF, 0x0F6D, 0xFA58, - 0x5235, 0xEF47, 0x078B, 0x8BD3, 0xA5B1, 0xC8F4, 0x65FE, 0x715A, - 0xCA2B, 0xC331, 0x2ACF, 0xF755, 0x74F1, 0x23B6, 0x2D55, 0xCADB, - 0xF79B, 0xB666, 0x8B2E, 0xCFDC, 0x6BE2, 0x47C2, 0x3180, 0xDF92, - 0x33E9, 0xE2C4, 0x8000, 0xFFB9, 0xE3D6, 0x8000, 0x1E01, 0xFD06, - 0xC406, 0xD10F, 0xC4B7, 0xE28A, 0xCD11, 0xD374, 0xD07C, 0x0028, - 0xA4F3, 0xF5C9, 0x9A74, 0x40E2, 0x62D9, 0x8000, 0x8000, 0xBC70, - 0xF505, 0xDBBB, 0x6EC7, 0x149C, 0xD1AA, 0x3E07, 0x8080, 0xC7C9, - 0x2AEF, 0x8000, 0x1E40, 0x0E5A, 0xDFFF, 0x7FFF, 0xC402, 0xCF50, - 0xAEBF, 0x8000, 0x3B12, 0xEB03, 0xF7F9, 0x10F3, 0x0581, 0x88B0, - 0x81DC, 0x20DC, 0x0464, 0xDCAB, 0x580C, 0xA9FB, 0xE00C, 0x1D2E, - 0x8774, 0xD5F4, 0xE504, 0xCEA5, 0xFDB9, 0x0509, 0xC667, 0xF863, - 0x49A9, 0x8EC1, 0xD70D, 0x7FFF, 0xFA0D, 0xE3A3, 0xD3B7, 0x838C, - 0x15E7, 0xC0F0, 0x2F4A, 0x7FFF, 0x08CB, 0xF3C3, 0xFC62, 0xD06D, - 0xF34C, 0x24D3, 0xC6C7, 0x24D0, 0xBDC0, 0x5366, 0x204D, 0x92CB, - 0x5133, 0x9DE6, 0xF98B, 0x36B9, 0x0FC6, 0xDAC6, 0x2020, 0xA11C, - 0x9D11, 0xD285, 0xD546, 0x18FD, 0x26B7, 0x2F5D, 0x40DF, 0x1D5B, - 0xFFA3, 0xCE3A, 0xC258, 0xF815, 0xEB48, 0x14D2, 0x9BE8, 0xF9FC, - 0x1317, 0xF8A6, 0xC204, 0xACBB, 0x44EA, 0x48B4, 0x2377, 0xC673, - 0x00E2, 0x0B09, 0xFDE9, 0xC64A, 0xFE9F, 0x4864, 0xAC2C, 0x216A, - 0x7FFF, 0xED85, 0x6668, 0xAC82, 0xA8EF, 0xE10C, 0x4660, 0x2176, - 0xFEC9, 0x3AB9, 0xB04E, 0x8000, 0x7FFF, 0xAD48, 0xE8C5, 0xEAF2, - 0xF958, 0x21B4, 0xBD50, 0x2C95, 0xFF86, 0xAC02, 0x7FFF, 0xD301 + 0x0827, 0xCC5E, 0x934F, 0xEE23, 0xC137, 0x0899, 0x7FFF, 0xE647, + 0x48C7, 0x7FFF, 0x1B32, 0xFFE7, 0x5956, 0x1AD7, 0x2D96, 0x8000, + 0xB553, 0xE7E9, 0xC2A3, 0xC994, 0x7FFF, 0x072A, 0x8000, 0x14AC, + 0x5AB8, 0xEF3B, 0xEE37, 0x2B7E, 0x14D1, 0x924E, 0x300B, 0xB957, + 0x0784, 0xFB26, 0x393E, 0xAE6E, 0x34D3, 0xE22D, 0x81C0, 0xDB98, + 0x8000, 0xA6F2, 0x0992, 0x6417, 0x7FFF, 0xE5E2, 0x53BF, 0x2543, + 0xEB65, 0x34D3, 0xD9DF, 0xFF06, 0x154E, 0x8000, 0x2B58, 0x2AAC, + 0xD839, 0x03E6, 0xBF7B, 0x0477, 0x05C7, 0x485F, 0xA7B9, 0x8000, + 0x2518, 0x0C26, 0x148A, 0x1E53, 0xF910, 0x438D, 0x7FFF, 0xF2AD, + 0x1EFA, 0x21E0, 0xDFF5, 0x9A50, 0xF7C9, 0xE3A5, 0xCB41, 0xD4AD, + 0xE96C, 0x8000, 0xC529, 0xBE46, 0xC3F5, 0xDB5D, 0x19C2, 0x12B5, + 0xBB27, 0xF5A7, 0x2EFA, 0x4038, 0xE8FF, 0x7159, 0x2304, 0xEB4D, + 0xE317, 0xD611, 0xAB06, 0x681C, 0x0825, 0x022B, 0xED53, 0x402F, + 0x064D, 0x3A86, 0x6050, 0xD5CD, 0x5E68, 0xCA23, 0xBAFF, 0xBC32, + 0xD013, 0x9277, 0x400E, 0xD61D, 0x03BC, 0xC50F, 0xC086, 0x00EB, + 0xDBA8, 0xCD6F, 0x15A4, 0xD051, 0xB0E7, 0x2EAA, 0x48CC, 0xA5AC, + 0xFDAC, 0x49EF, 0x8000, 0xB044, 0x0250, 0x560C, 0xE6C4, 0x1F2F, + 0x5648, 0x678B, 0x429A, 0xEB67, 0x1F37, 0x9F3B, 0x8458, 0xC609, + 0x801A, 0x2012, 0xA525, 0xE477, 0x0B71, 0x38BF, 0xBD86, 0xA794, + 0x9E23, 0xE970, 0xDDE1, 0x9C84, 0xC47B, 0xF5F8, 0xFF2E, 0x4237, + 0x2851, 0xCEBF, 0xAD15, 0xDFED, 0x7FFF, 0x6936, 0x0D7A, 0x8000, + 0xAED7, 0xC178, 0xFF54, 0xA172, 0xF2C4, 0xC859, 0xD6B9, 0xC0A1, + 0x2BAA, 0x08C0, 0x0455, 0xEC63, 0xD6C4, 0x7FFF, 0xD6FF, 0x01B8, + 0xD44E, 0x9968, 0x1F62, 0x9693, 0xD8BE, 0x146E, 0x07E9, 0x0143, + 0xF12F, 0x7075, 0xC565, 0x9AE2, 0x3BDE, 0x4D58, 0x1554, 0xF567, + 0x2F43, 0xD297, 0xE5E5, 0x8000, 0xFC4B, 0xCF81, 0x3A3C, 0x8158, + 0x2F06, 0x4B8E, 0x75F2, 0x2351, 0x65D3, 0xDB3E, 0x0417, 0x0145, + 0x0623, 0x3017, 0x06EE, 0xCC6F, 0xA1ED, 0x854F, 0xC262, 0x0C47, + 0x8000, 0x095C, 0x5447, 0x1513, 0x6365, 0x5D0C, 0xFCC9, 0x5886, + 0xF197, 0xCC83, 0x3ABC, 0xD191, 0x2DD9, 0x3BC2, 0x598C, 0x76B7, + 0xA61E, 0xCB7E, 0xA51F, 0x21D4, 0x3BCD, 0x05D8, 0xDC10, 0xC6EE, + 0x78B7, 0x8000, 0xCBB0, 0x92E1, 0xB971, 0x8000, 0xEB5F, 0x4ED1 }; static const q15_t ref_add_possat[17] = { @@ -152,38 +190,38 @@ static const q15_t ref_add_negsat[17] = { }; static const q15_t ref_sub[256] = { - 0xB987, 0x05C9, 0x3520, 0x4103, 0x0B6D, 0xB4C9, 0x0AD2, 0x1036, - 0x7FFF, 0x19E3, 0xB334, 0x10D0, 0x259E, 0x2BFE, 0xF279, 0x6F50, - 0xBE72, 0x3841, 0xEF5D, 0xF997, 0xEA18, 0x189A, 0x2CCE, 0x331B, - 0x44C5, 0xD725, 0xB79A, 0x2D0D, 0xCEF6, 0xFB6C, 0xAD07, 0xE5B4, - 0xCCB4, 0xB7C7, 0x1386, 0x75B3, 0xFC72, 0x363C, 0xBB66, 0xE816, - 0x4DC1, 0xAF57, 0xF119, 0x08AE, 0x848A, 0xFDE0, 0x2CC6, 0xFA7B, - 0x2CDE, 0xA9F9, 0xE61B, 0x9451, 0xF4BD, 0x8000, 0x3188, 0x0D4E, - 0x26C8, 0x7FFF, 0x8D4F, 0xBC0E, 0x43DD, 0x4EE9, 0x3C82, 0x5A54, - 0x30A4, 0xCB08, 0xEA67, 0x70D0, 0x8028, 0x5AE2, 0xB668, 0x17B5, - 0x9FEA, 0x3929, 0x6F6E, 0xE7D9, 0x1994, 0x5C23, 0x1851, 0x690C, - 0x9867, 0xD5AA, 0x2973, 0x0FF2, 0xD209, 0x276D, 0x4D3F, 0x1C7E, - 0x2165, 0xF5EF, 0x2870, 0x9A6F, 0xADDB, 0xEF6B, 0xDB0E, 0x7EE6, - 0xCB30, 0x8000, 0xA714, 0xEBFD, 0xD998, 0xDF18, 0x62D6, 0xD432, - 0x220B, 0x7FFF, 0x0724, 0xA966, 0x3AA6, 0x28C7, 0x6370, 0x3A58, - 0xA519, 0x2F7D, 0x068E, 0x392E, 0x3830, 0x4761, 0x2117, 0x0A38, - 0x9959, 0x2FF9, 0x0F1A, 0x28C7, 0x13C9, 0x598E, 0xE97E, 0x521C, - 0x8000, 0x0C32, 0x53A2, 0x5B25, 0x1A41, 0x015B, 0xFB59, 0x74D8, - 0x54D8, 0x627D, 0x7FFF, 0x138D, 0x7FFF, 0xBD7A, 0xB3C4, 0x06D4, - 0x4BC2, 0xF092, 0x2BC5, 0x5B4B, 0xD5FB, 0x2AD5, 0x62FA, 0xD386, - 0x0DC2, 0xCCE6, 0x7800, 0x5051, 0x1A27, 0x8000, 0xD4CC, 0xF963, - 0x4F93, 0xD911, 0xA2EB, 0x1087, 0x25FE, 0xD8C2, 0x0D71, 0xF7F4, - 0x221D, 0xE1C7, 0xFC76, 0xF19F, 0x0998, 0x60FA, 0xDF4D, 0x13BA, - 0xD4C2, 0xE471, 0xD330, 0x38E5, 0x37A0, 0x82FB, 0x41F4, 0x8000, - 0x9EAD, 0xF1CA, 0x3947, 0x282E, 0x037D, 0xD6D1, 0x1760, 0x43BD, - 0xAFD0, 0xFCF7, 0x1E09, 0x592F, 0xB1A4, 0x6DE8, 0xD1B4, 0xDFEF, - 0xBEFB, 0x7DD1, 0x4A04, 0x9A78, 0xA251, 0x33DD, 0x6C10, 0x398F, - 0xFB5E, 0xD726, 0xEA2F, 0x0E1F, 0x8000, 0x0517, 0x18C2, 0x38FA, - 0xC847, 0x0B6A, 0x08ED, 0x206F, 0x356E, 0x4F08, 0x1B8D, 0x52BE, - 0x14EA, 0x3199, 0x0383, 0xBEBE, 0x2907, 0x192F, 0xEC60, 0xEBE9, - 0x6434, 0x06C6, 0x283F, 0xADAC, 0x5ADE, 0x5988, 0x4194, 0x4467, - 0xCF69, 0x4A4B, 0x0053, 0x2C59, 0x3A9F, 0xCE91, 0x3A88, 0x30F0, - 0xBD66, 0x3BBD, 0xE1D9, 0x19D8, 0x6675, 0xFB75, 0x8FD6, 0x1F60 + 0x153A, 0xE356, 0x2C35, 0x6D91, 0x9C39, 0x2C7F, 0xE34D, 0xAC4A, + 0xEB37, 0x9AFC, 0x91CA, 0x4C8C, 0xD136, 0xCB83, 0x276F, 0xF207, + 0x70DB, 0xEDFB, 0xD50F, 0xBF14, 0x0526, 0x8000, 0xD04B, 0x880D, + 0xB88A, 0xD048, 0xC0C9, 0x2ADA, 0x0AE5, 0xFAEA, 0x7FFF, 0xBFAC, + 0x47A4, 0x89E9, 0xF118, 0x0664, 0x22F0, 0xF148, 0x2A1B, 0xB3F0, + 0x3630, 0xE95E, 0x29D1, 0x5A6A, 0x2226, 0x1BFE, 0x8000, 0x2F45, + 0xAEAF, 0x9D5C, 0x0FC1, 0xB1C0, 0x32F0, 0x48BC, 0x228D, 0x0AEA, + 0x707F, 0x0512, 0x8000, 0x5372, 0x5858, 0x396B, 0xD861, 0xEFE5, + 0x1DA3, 0xB00F, 0x380B, 0x43E8, 0x2000, 0xDCC4, 0xCCDB, 0xA970, + 0x178C, 0x7FFF, 0x7234, 0x29DA, 0x2162, 0x0AA8, 0xF301, 0xCDAE, + 0x957D, 0x20D5, 0xC437, 0xDD2F, 0x03AC, 0x1A96, 0x312F, 0xC136, + 0x04F3, 0xD1C8, 0x30CF, 0x8F0C, 0xE559, 0x26CC, 0x07D8, 0x1C05, + 0xEBB8, 0x5361, 0x8000, 0x418A, 0xE978, 0x89B8, 0xDA71, 0x3DA7, + 0x0447, 0x7FFF, 0xA229, 0x290C, 0xB0B7, 0x8000, 0x23C7, 0xDB24, + 0xB432, 0xC057, 0x3EC8, 0x1FDF, 0x2574, 0x2E97, 0xC500, 0x996C, + 0x5AC6, 0x8662, 0xDBA5, 0xD6FC, 0xF389, 0x7D2F, 0xA729, 0x5B4D, + 0x85D2, 0xE250, 0xB850, 0x7FFF, 0xDB3D, 0xA5A7, 0xC174, 0x7FFF, + 0xD6E5, 0x11A6, 0x1A2A, 0xA553, 0xE4C8, 0xE772, 0xF531, 0x2777, + 0x05DC, 0x196E, 0xE947, 0xF641, 0x2B08, 0x8000, 0xFB5B, 0x059E, + 0x8000, 0xFF2C, 0x1F75, 0xCC5C, 0xFE70, 0x9C33, 0x482C, 0x8000, + 0x22A2, 0x9190, 0x3810, 0x03B9, 0xCF75, 0x168A, 0x7FFF, 0x97BB, + 0x047C, 0xC490, 0x7FFF, 0xD900, 0xF1D0, 0xC5E9, 0xE9CF, 0x0B35, + 0x3480, 0x3D16, 0x1B35, 0x0269, 0xBF14, 0xDC6F, 0x0B0C, 0xC635, + 0xB8E8, 0xF749, 0x1E85, 0x0EA0, 0x0B82, 0x1668, 0x0461, 0xA230, + 0x2AC4, 0x648A, 0x1485, 0xDCA6, 0x9587, 0xEE22, 0x3A86, 0x7FFF, + 0x427D, 0x3FEC, 0x3582, 0xC8A5, 0xF035, 0xA8AE, 0xBCAD, 0xE971, + 0x44F5, 0xBB6F, 0x308B, 0x4FB1, 0xF9B2, 0x8000, 0x5742, 0x7F30, + 0x9D36, 0x1718, 0x0698, 0xEE1E, 0x9CAA, 0x68DD, 0xE782, 0xF18D, + 0x4335, 0xDA36, 0x1A95, 0x45C5, 0xD7DD, 0xD8B2, 0x5EA9, 0xE37D, + 0x02C8, 0x3FE3, 0x4BF0, 0x3C51, 0xE0C8, 0x1540, 0xE102, 0xE461, + 0xA242, 0xA09F, 0x945B, 0xD076, 0xB64A, 0x40DC, 0xD948, 0x7FFF, + 0xA99D, 0xA03F, 0x35C2, 0xD188, 0x8D9B, 0x45C0, 0x55F4, 0x51F5 }; static const q15_t ref_sub_possat[17] = { @@ -199,38 +237,38 @@ static const q15_t ref_sub_negsat[17] = { }; static const q15_t ref_mult[256] = { - 0x0F6B, 0x11CD, 0xFBBC, 0x0124, 0x0440, 0xF507, 0x018F, 0xFF92, - 0xDD9A, 0x1063, 0xF7B0, 0x0108, 0xFD78, 0x0B5E, 0xFFA5, 0x019E, - 0x021E, 0xFCAD, 0x0812, 0x08E7, 0xFF20, 0x0390, 0x1601, 0xFEC1, - 0xFAD6, 0xFE01, 0xF6E4, 0xFF6D, 0x1F1B, 0x0919, 0x1564, 0x16CE, - 0xFFA1, 0xF82B, 0x0321, 0xFE36, 0x0ACC, 0xFE19, 0xF72E, 0x0153, - 0xF5A3, 0xF510, 0x1721, 0x044E, 0xE799, 0x07A2, 0x0EE9, 0x0B0F, - 0xFC48, 0xFE08, 0x0361, 0xEFCE, 0x0090, 0xF241, 0x0366, 0x051A, - 0xFF72, 0xCF0E, 0xE6AA, 0xFE3F, 0xFA44, 0xF735, 0x001B, 0xF022, - 0xFBD1, 0x0083, 0xFFB4, 0xEC67, 0xE626, 0xF015, 0xF5D0, 0xFEF2, - 0xEDF9, 0xF9E1, 0xE8C2, 0xFEFD, 0xFFA4, 0x1F7E, 0xFF4F, 0xEA83, - 0xF83D, 0xFD0C, 0xFCC1, 0x19DE, 0x0BCD, 0x02E2, 0x08AA, 0x1782, - 0x037B, 0x0706, 0x0063, 0xEC00, 0x0D88, 0x01F4, 0x0159, 0xE611, - 0xFAB1, 0xEA74, 0x0B36, 0x03BE, 0x13DA, 0x07F1, 0xF1B5, 0xFE4E, - 0x0300, 0xD97F, 0x2AB9, 0xF15A, 0xFAD5, 0x29BA, 0xEE72, 0xF95E, - 0xF6E3, 0xFFE6, 0x06C8, 0xFB4F, 0xFEE7, 0xF9ED, 0x0245, 0xFFCC, - 0xFB9C, 0xFBB5, 0x13B2, 0x04F9, 0x1252, 0x22F2, 0x333A, 0xFBBF, - 0xD74B, 0x0247, 0x0A4E, 0xF09B, 0x02D9, 0x0783, 0x1FB5, 0xEB82, - 0xF58A, 0x1D83, 0xB1D2, 0xFFA8, 0xD976, 0x2322, 0xFBAE, 0x048A, - 0x01B0, 0x2D45, 0x0313, 0xF095, 0xFCAD, 0xFCFA, 0xECED, 0x17F1, - 0x1EB5, 0xFD02, 0xE3EA, 0xF5D7, 0x0DCE, 0xE63B, 0xFE59, 0x0194, - 0x1004, 0x007E, 0xF080, 0x0439, 0xFD31, 0xFD0B, 0x0620, 0xFFFD, - 0x0853, 0x1744, 0x0340, 0x23B8, 0xFFE4, 0xEF34, 0x01BE, 0x1D7E, - 0xFD49, 0x0649, 0x0072, 0x2704, 0xFA1C, 0xE1C4, 0xF788, 0xAF93, - 0xEDD1, 0x0241, 0xFFFD, 0xFF7E, 0x088C, 0x0A46, 0x00F9, 0x0E55, - 0x0052, 0x12C7, 0xFE52, 0xF650, 0xF47E, 0xEB1D, 0xFDD4, 0x0F94, - 0x0ADC, 0xE520, 0xF8DE, 0xED16, 0xF1C9, 0xFF21, 0xF169, 0xFB36, - 0xFFF5, 0x0194, 0x067F, 0xFFBC, 0xC56C, 0x00CC, 0x125F, 0xF9BB, - 0xFAA6, 0xFFDA, 0x0759, 0x0B7D, 0x03B3, 0xFE20, 0x00F9, 0xF919, - 0xFF26, 0xFB6F, 0xFFFC, 0xFE30, 0xFCB7, 0x08FF, 0x0CF9, 0x0164, - 0x1500, 0x0094, 0x1152, 0x0060, 0xFEAE, 0xF237, 0x0146, 0xF90C, - 0xFB64, 0xFBF4, 0x0C68, 0x270A, 0x1A7E, 0x0897, 0xFA5D, 0xFC30, - 0xF76C, 0xFB40, 0x06E9, 0x0294, 0xEB7F, 0x0DBD, 0x08FD, 0x0208 + 0xFF40, 0x039A, 0x1342, 0xE92D, 0xF441, 0xFC47, 0x21A2, 0xF39B, + 0x0980, 0x1AFC, 0xE9B9, 0xF48E, 0x0B50, 0xFC07, 0x0105, 0x2108, + 0xF204, 0x0080, 0x03C1, 0xFD8E, 0x205D, 0xD78D, 0x29AE, 0xE4BC, + 0x061A, 0xFC1A, 0xF8D0, 0x001C, 0x009D, 0x1774, 0xDEAE, 0x01AC, + 0xF616, 0xE4CF, 0x05F7, 0x0CEB, 0x0311, 0x0150, 0x1BAB, 0xF74A, + 0x3FA6, 0x0E7D, 0xFCC4, 0x039A, 0x1DEC, 0xFFCD, 0xE1DC, 0xFE59, + 0xF3EA, 0xF272, 0x025B, 0xF40B, 0xFBD2, 0x19FB, 0x0156, 0x0353, + 0xEA60, 0xFFFB, 0xDB8D, 0xF270, 0xF0D2, 0x03CA, 0x0C28, 0x676B, + 0x00F9, 0xF3CF, 0xFAB1, 0xF8CA, 0xFE18, 0x067D, 0x226C, 0xF1B6, + 0x00CB, 0xDDE1, 0xE888, 0x10C6, 0xFDF5, 0x0159, 0x051B, 0xFEB8, + 0xEAD7, 0x30C9, 0xFFC8, 0x0612, 0x0704, 0x013E, 0xFC92, 0xF8FC, + 0x0936, 0xFC09, 0xFFA8, 0xEF23, 0xFFA5, 0x1627, 0x0246, 0xFF4E, + 0x00D4, 0xF5DB, 0xE77E, 0x0CC8, 0xFF23, 0xE4AF, 0xFDED, 0x009F, + 0x000B, 0xDF09, 0x00EB, 0x0030, 0x0521, 0xE290, 0x06CD, 0x0653, + 0xF943, 0x0F84, 0x0051, 0x0171, 0xFD4A, 0x028C, 0x0112, 0xEB73, + 0xF27C, 0xE81B, 0xFE55, 0x0128, 0x0BEB, 0xE5A5, 0xFAEF, 0xFFA8, + 0xE2DB, 0x08F4, 0x3850, 0xDB87, 0xFD5F, 0xFE85, 0xF99A, 0xDFB0, + 0x0B3D, 0x1455, 0x0754, 0xF0C5, 0x0075, 0x111D, 0x1DA3, 0x0385, + 0x1FE2, 0x00BF, 0x0F1D, 0x014C, 0xFCA4, 0xD759, 0x0897, 0x0F36, + 0xECBC, 0x00FE, 0x0057, 0x0E1F, 0x06EA, 0xECBE, 0xF5D4, 0xE31C, + 0x00D5, 0xECEB, 0x074A, 0x01FC, 0x1FB7, 0x14A1, 0xD4F7, 0x0AED, + 0x0CD4, 0x00BD, 0xBD8D, 0x0E7E, 0xFFF3, 0xFF75, 0x025E, 0x0799, + 0xFE57, 0xF8DD, 0xFE97, 0x00BD, 0xFB17, 0x2526, 0x030C, 0xF97B, + 0xF9DB, 0x1469, 0x001B, 0x154A, 0x02C0, 0xFFD6, 0x0016, 0xEED0, + 0xFCDB, 0x04F5, 0x05E3, 0x1187, 0xF0DC, 0x0B0F, 0xFA33, 0xD66F, + 0xFBBB, 0xFC0C, 0xFBBD, 0x2C7A, 0xFF8A, 0xF5B3, 0xFDC5, 0x1E56, + 0xFB08, 0x01F7, 0x1692, 0xF608, 0x142C, 0xD9C8, 0xF129, 0xE068, + 0xED03, 0x037A, 0x0002, 0x0492, 0xFE03, 0x07EC, 0x063E, 0xFFE3, + 0x2D98, 0xFD62, 0x0C7E, 0xF75C, 0x1026, 0x0DE4, 0xEE85, 0x0DB8, + 0x0064, 0xFD35, 0xFB7A, 0xFD1B, 0x0234, 0x0618, 0x0DC9, 0x1A09, + 0xFE9E, 0xF39E, 0xF980, 0xFDD2, 0xFC5F, 0xF7DA, 0xFF98, 0xCA45, + 0x0DE3, 0x0F30, 0xFFB3, 0x130A, 0xF02A, 0x248D, 0xF267, 0xFF03 }; static const q15_t ref_mult_possat[17] = { @@ -240,38 +278,38 @@ static const q15_t ref_mult_possat[17] = { }; static const q15_t ref_negate[256] = { - 0xEA89, 0x2CEE, 0xF214, 0x022C, 0xE247, 0x2284, 0x09B5, 0xFB2E, - 0xD06D, 0x22A6, 0x1223, 0x05D4, 0xF2A1, 0xBDF8, 0x0686, 0x01D4, - 0xFC19, 0xD0C1, 0xE71F, 0xE14B, 0x081D, 0x0C57, 0xAFFE, 0xFCA8, - 0xF472, 0x2124, 0x3039, 0xFE50, 0xD4D3, 0xE016, 0x6C44, 0x44C1, - 0x00F1, 0x357A, 0xDFFA, 0x8C48, 0x26FE, 0xCEB4, 0x2931, 0xFA46, - 0xE6B7, 0x194A, 0xD088, 0x1387, 0x57F1, 0x2057, 0xB886, 0x287C, - 0xEED0, 0x030A, 0xF473, 0x5295, 0x0FD1, 0x0E83, 0xC6DB, 0x13C0, - 0xDB27, 0x9F55, 0x401C, 0x037B, 0xC9A5, 0xC3C8, 0x0038, 0xD5C4, - 0xE030, 0xFECB, 0x13A7, 0xADA4, 0x240C, 0xD7CF, 0x2BE0, 0xF1CD, - 0x2F54, 0xE931, 0xBCEB, 0x101F, 0xE85F, 0x837D, 0xEC21, 0xCE4E, - 0x0AB2, 0x1D88, 0xE781, 0x321E, 0x4423, 0x07D0, 0xA661, 0xB914, - 0x0A38, 0x2370, 0xD661, 0x371E, 0xEE9A, 0xF670, 0xFBCF, 0xDB20, - 0x1E9B, 0x64ED, 0x66DF, 0x2213, 0xDD43, 0xEC93, 0xB5D5, 0x261E, - 0xD506, 0xC6E9, 0x4677, 0x2B70, 0xF0C2, 0x377C, 0xBF48, 0xE451, - 0x4B70, 0xFFBA, 0x1A5D, 0xF224, 0xFD5F, 0xF295, 0x0736, 0xFAD0, - 0x60DA, 0xED1F, 0x2B39, 0xCB2C, 0xC4AF, 0x23B6, 0x5D02, 0xF8BA, - 0x4DE2, 0x0C0A, 0x9ECC, 0xC81F, 0x0A0B, 0xE04F, 0x4213, 0xE1B0, - 0xC01C, 0x1D83, 0x8BB4, 0xEF0C, 0xC7F7, 0xD668, 0x441D, 0x14EE, - 0x02C0, 0x543B, 0xCC95, 0xDCD9, 0x1906, 0xE21C, 0xCBC3, 0x51E5, - 0x3831, 0x091F, 0xC1CE, 0xE982, 0xC6E6, 0x72C3, 0x2594, 0xF4B8, - 0x147D, 0x287E, 0x3C08, 0x106A, 0xEE25, 0x111A, 0x1614, 0x07D4, - 0xCA1D, 0x47BC, 0x163E, 0xC331, 0xFE2E, 0xDDB2, 0x267E, 0x345D, - 0x0AAC, 0x2D50, 0xFEC3, 0x9760, 0xDFCA, 0x44A1, 0xE0D5, 0x7FFF, - 0x3703, 0xF4B1, 0xFFF9, 0xD981, 0x1F62, 0xEAE5, 0xE42A, 0x14BC, - 0xFF7E, 0x3292, 0xF436, 0xB80C, 0x1F4B, 0xDBA9, 0x0716, 0x3F7A, - 0x51FA, 0xD7D5, 0xF05B, 0x2645, 0x1B7C, 0xCE63, 0xA989, 0xD48B, - 0x027F, 0x2D50, 0x29BD, 0xFCE6, 0x6191, 0xF30B, 0x25AB, 0xE685, - 0x1251, 0xFDF8, 0x1A87, 0x196B, 0xC2D4, 0xB422, 0xE07E, 0xF367, - 0xF51A, 0xE1AF, 0xFF4A, 0x3D7C, 0xEC2D, 0xCF37, 0x33BA, 0xF957, - 0x85CD, 0x05DA, 0xB8AC, 0x52E9, 0xFE19, 0xE2B6, 0xBC06, 0xCD12, - 0x18E7, 0xBD7E, 0x27B0, 0x33E9, 0xA180, 0x4213, 0xEE5A, 0xF20F, - 0x24A1, 0xD148, 0x306C, 0xDCC9, 0xCD02, 0x2C45, 0xF68B, 0x06CF + 0xF14F, 0x2826, 0x203E, 0xD226, 0x5148, 0xE574, 0xCB30, 0x36B7, + 0xE601, 0xE504, 0x2982, 0xD9C7, 0xEABA, 0x0CD3, 0xD57E, 0x4862, + 0xECE9, 0x150E, 0x3427, 0x3BAC, 0xBD03, 0x4477, 0x64B1, 0x31A4, + 0xF65F, 0x203E, 0x2880, 0xD4D4, 0xF025, 0x3964, 0xA265, 0x437E, + 0xD86C, 0x3D79, 0xEAD5, 0x2597, 0xD41F, 0x1645, 0x2A12, 0x383C, + 0x4326, 0x37D8, 0xE64F, 0xA0BF, 0xAEBA, 0xFF10, 0x210A, 0xD5BC, + 0x32F6, 0x16E8, 0x0B30, 0x279D, 0xDBE1, 0x1FD0, 0xD90D, 0xE535, + 0xDBA4, 0xFB84, 0x6BCD, 0xD40B, 0xD0F1, 0xBF1B, 0x3FF3, 0x7B64, + 0xDEA3, 0x21E5, 0xD9B6, 0xCEE3, 0xF378, 0xEFD8, 0xD271, 0x31F2, + 0xE4BD, 0xAAD7, 0xD6EC, 0x1DEB, 0xF36B, 0x08D9, 0x20DF, 0x2ED2, + 0x408C, 0x404B, 0x3B50, 0x3245, 0x1C30, 0x0507, 0xDA87, 0x160B, + 0x1FF3, 0x1C49, 0xD01B, 0x185E, 0x18D4, 0xB3EE, 0xEA92, 0xFC57, + 0x1899, 0xEB47, 0x70CA, 0xAB2D, 0x0731, 0x3A0E, 0x1C1E, 0xC115, + 0xFAB6, 0x9B7E, 0xFEC4, 0x0093, 0xF871, 0x5DF6, 0x109D, 0x3455, + 0x3DDE, 0x5699, 0xC095, 0x0502, 0xEB68, 0x062D, 0x3D3D, 0x32D4, + 0xE4C9, 0x5618, 0x075C, 0x2C5A, 0x2DC8, 0xAA14, 0x0806, 0xFF84, + 0x3E41, 0xE9E1, 0x7FFF, 0xD8C3, 0x1139, 0x0226, 0x2BE4, 0xAE3C, + 0xE969, 0xC368, 0xD19E, 0x37A3, 0xFE01, 0x3CAA, 0x433B, 0x0940, + 0x3D05, 0xE340, 0x38CA, 0x12A4, 0xE4C4, 0x3124, 0x238F, 0x2967, + 0x76A6, 0x0BB2, 0x0155, 0x4B90, 0x1E8A, 0x36EB, 0xDC53, 0x2422, + 0xDA87, 0x4FD8, 0x0D6D, 0x0E2D, 0xD417, 0xC020, 0xAEBD, 0x744B, + 0x2657, 0x3CFC, 0xA41C, 0x42C7, 0x0DB6, 0x38DF, 0x1FBC, 0x1A15, + 0xCFEB, 0xDD15, 0xF03B, 0x089A, 0x3514, 0xCA92, 0x0EFB, 0x1C0A, + 0x3965, 0x37A8, 0xE10D, 0x2D66, 0x0DE0, 0xEA95, 0xF9DB, 0x2E46, + 0xF207, 0x9580, 0x130B, 0x443C, 0x174D, 0xE243, 0xD813, 0xBC2B, + 0xC720, 0xF6BE, 0xF24D, 0x6C0C, 0x09C0, 0x43E9, 0x048B, 0x4A9B, + 0xC603, 0xFC82, 0xACC1, 0xC67F, 0xD03E, 0x5AB3, 0xD254, 0xBFC5, + 0x2E54, 0xDC69, 0xF93D, 0x22BA, 0x60B4, 0x08EA, 0x2B0E, 0x0116, + 0x31DA, 0x0E37, 0xC892, 0xD294, 0xE25F, 0xE521, 0xD247, 0xE1FE, + 0x05D0, 0xF9CD, 0xBCAA, 0xF90F, 0xF8AF, 0xD77F, 0xE2B9, 0xD274, + 0x5BD0, 0x49F2, 0x6343, 0x06DB, 0x06F4, 0xDCA6, 0x2554, 0xC4D5, + 0xEED6, 0x70F7, 0xFF47, 0x4DCC, 0x5C7A, 0x29E7, 0xDF56, 0xAF9D }; static const q15_t ref_negate_possat[17] = { @@ -281,38 +319,38 @@ static const q15_t ref_negate_possat[17] = { }; static const q15_t ref_offset[256] = { - 0x5577, 0x1312, 0x4DEC, 0x3DD4, 0x5DB9, 0x1D7C, 0x364B, 0x44D2, - 0x6F93, 0x1D5A, 0x2DDD, 0x3A2C, 0x4D5F, 0x7FFF, 0x397A, 0x3E2C, - 0x43E7, 0x6F3F, 0x58E1, 0x5EB5, 0x37E3, 0x33A9, 0x7FFF, 0x4358, - 0x4B8E, 0x1EDC, 0x0FC7, 0x41B0, 0x6B2D, 0x5FEA, 0xD3BC, 0xFB3F, - 0x3F0F, 0x0A86, 0x6006, 0x7FFF, 0x1902, 0x714C, 0x16CF, 0x45BA, - 0x5949, 0x26B6, 0x6F78, 0x2C79, 0xE80F, 0x1FA9, 0x7FFF, 0x1784, - 0x5130, 0x3CF6, 0x4B8D, 0xED6B, 0x302F, 0x317D, 0x7925, 0x2C40, - 0x64D9, 0x7FFF, 0xFFE4, 0x3C85, 0x765B, 0x7C38, 0x3FC8, 0x6A3C, - 0x5FD0, 0x4135, 0x2C59, 0x7FFF, 0x1BF4, 0x6831, 0x1420, 0x4E33, - 0x10AC, 0x56CF, 0x7FFF, 0x2FE1, 0x57A1, 0x7FFF, 0x53DF, 0x71B2, - 0x354E, 0x2278, 0x587F, 0x0DE2, 0xFBDD, 0x3830, 0x7FFF, 0x7FFF, - 0x35C8, 0x1C90, 0x699F, 0x08E2, 0x5166, 0x4990, 0x4431, 0x64E0, - 0x2165, 0xDB13, 0xD921, 0x1DED, 0x62BD, 0x536D, 0x7FFF, 0x19E2, - 0x6AFA, 0x7917, 0xF989, 0x1490, 0x4F3E, 0x0884, 0x7FFF, 0x5BAF, - 0xF490, 0x4046, 0x25A3, 0x4DDC, 0x42A1, 0x4D6B, 0x38CA, 0x4530, - 0xDF26, 0x52E1, 0x14C7, 0x74D4, 0x7B51, 0x1C4A, 0xE2FE, 0x4746, - 0xF21E, 0x33F6, 0x7FFF, 0x77E1, 0x35F5, 0x5FB1, 0xFDED, 0x5E50, - 0x7FE4, 0x227D, 0x7FFF, 0x50F4, 0x7809, 0x6998, 0xFBE3, 0x2B12, - 0x3D40, 0xEBC5, 0x736B, 0x6327, 0x26FA, 0x5DE4, 0x743D, 0xEE1B, - 0x07CF, 0x36E1, 0x7E32, 0x567E, 0x791A, 0xCD3D, 0x1A6C, 0x4B48, - 0x2B83, 0x1782, 0x03F8, 0x2F96, 0x51DB, 0x2EE6, 0x29EC, 0x382C, - 0x75E3, 0xF844, 0x29C2, 0x7CCF, 0x41D2, 0x624E, 0x1982, 0x0BA3, - 0x3554, 0x12B0, 0x413D, 0x7FFF, 0x6036, 0xFB5F, 0x5F2B, 0xC000, - 0x08FD, 0x4B4F, 0x4007, 0x667F, 0x209E, 0x551B, 0x5BD6, 0x2B44, - 0x4082, 0x0D6E, 0x4BCA, 0x7FFF, 0x20B5, 0x6457, 0x38EA, 0x0086, - 0xEE06, 0x682B, 0x4FA5, 0x19BB, 0x2484, 0x719D, 0x7FFF, 0x6B75, - 0x3D81, 0x12B0, 0x1643, 0x431A, 0xDE6F, 0x4CF5, 0x1A55, 0x597B, - 0x2DAF, 0x4208, 0x2579, 0x2695, 0x7D2C, 0x7FFF, 0x5F82, 0x4C99, - 0x4AE6, 0x5E51, 0x40B6, 0x0284, 0x53D3, 0x70C9, 0x0C46, 0x46A9, - 0x7FFF, 0x3A26, 0x7FFF, 0xED17, 0x41E7, 0x5D4A, 0x7FFF, 0x72EE, - 0x2719, 0x7FFF, 0x1850, 0x0C17, 0x7FFF, 0xFDED, 0x51A6, 0x4DF1, - 0x1B5F, 0x6EB8, 0x0F94, 0x6337, 0x72FE, 0x13BB, 0x4975, 0x3931 + 0x4EB1, 0x17DA, 0x1FC2, 0x6DDA, 0xEEB8, 0x5A8C, 0x74D0, 0x0949, + 0x59FF, 0x5AFC, 0x167E, 0x6639, 0x5546, 0x332D, 0x6A82, 0xF79E, + 0x5317, 0x2AF2, 0x0BD9, 0x0454, 0x7FFF, 0xFB89, 0xDB4F, 0x0E5C, + 0x49A1, 0x1FC2, 0x1780, 0x6B2C, 0x4FDB, 0x069C, 0x7FFF, 0xFC82, + 0x6794, 0x0287, 0x552B, 0x1A69, 0x6BE1, 0x29BB, 0x15EE, 0x07C4, + 0xFCDA, 0x0828, 0x59B1, 0x7FFF, 0x7FFF, 0x40F0, 0x1EF6, 0x6A44, + 0x0D0A, 0x2918, 0x34D0, 0x1863, 0x641F, 0x2030, 0x66F3, 0x5ACB, + 0x645C, 0x447C, 0xD433, 0x6BF5, 0x6F0F, 0x7FFF, 0x000D, 0xC49C, + 0x615D, 0x1E1B, 0x664A, 0x711D, 0x4C88, 0x5028, 0x6D8F, 0x0E0E, + 0x5B43, 0x7FFF, 0x6914, 0x2215, 0x4C95, 0x3727, 0x1F21, 0x112E, + 0xFF74, 0xFFB5, 0x04B0, 0x0DBB, 0x23D0, 0x3AF9, 0x6579, 0x29F5, + 0x200D, 0x23B7, 0x6FE5, 0x27A2, 0x272C, 0x7FFF, 0x556E, 0x43A9, + 0x2767, 0x54B9, 0xCF36, 0x7FFF, 0x38CF, 0x05F2, 0x23E2, 0x7EEB, + 0x454A, 0x7FFF, 0x413C, 0x3F6D, 0x478F, 0xE20A, 0x2F63, 0x0BAB, + 0x0222, 0xE967, 0x7F6B, 0x3AFE, 0x5498, 0x39D3, 0x02C3, 0x0D2C, + 0x5B37, 0xE9E8, 0x38A4, 0x13A6, 0x1238, 0x7FFF, 0x37FA, 0x407C, + 0x01BF, 0x561F, 0xC000, 0x673D, 0x2EC7, 0x3DDA, 0x141C, 0x7FFF, + 0x5697, 0x7C98, 0x6E62, 0x085D, 0x41FF, 0x0356, 0xFCC5, 0x36C0, + 0x02FB, 0x5CC0, 0x0736, 0x2D5C, 0x5B3C, 0x0EDC, 0x1C71, 0x1699, + 0xC95A, 0x344E, 0x3EAB, 0xF470, 0x2176, 0x0915, 0x63AD, 0x1BDE, + 0x6579, 0xF028, 0x3293, 0x31D3, 0x6BE9, 0x7FE0, 0x7FFF, 0xCBB5, + 0x19A9, 0x0304, 0x7FFF, 0xFD39, 0x324A, 0x0721, 0x2044, 0x25EB, + 0x7015, 0x62EB, 0x4FC5, 0x3766, 0x0AEC, 0x756E, 0x3105, 0x23F6, + 0x069B, 0x0858, 0x5EF3, 0x129A, 0x3220, 0x556B, 0x4625, 0x11BA, + 0x4DF9, 0x7FFF, 0x2CF5, 0xFBC4, 0x28B3, 0x5DBD, 0x67ED, 0x7FFF, + 0x78E0, 0x4942, 0x4DB3, 0xD3F4, 0x3640, 0xFC17, 0x3B75, 0xF565, + 0x79FD, 0x437E, 0x7FFF, 0x7981, 0x6FC2, 0xE54D, 0x6DAC, 0x7FFF, + 0x11AC, 0x6397, 0x46C3, 0x1D46, 0xDF4C, 0x3716, 0x14F2, 0x3EEA, + 0x0E26, 0x31C9, 0x776E, 0x6D6C, 0x5DA1, 0x5ADF, 0x6DB9, 0x5E02, + 0x3A30, 0x4633, 0x7FFF, 0x46F1, 0x4751, 0x6881, 0x5D47, 0x6D8C, + 0xE430, 0xF60E, 0xDCBD, 0x3925, 0x390C, 0x635A, 0x1AAC, 0x7B2B, + 0x512A, 0xCF09, 0x40B9, 0xF234, 0xE386, 0x1619, 0x60AA, 0x7FFF }; static const q15_t ref_offset_possat[17] = { @@ -328,38 +366,38 @@ static const q15_t ref_offset_negsat[17] = { }; static const q15_t ref_scale[256] = { - 0x0ABB, 0xE989, 0x06F6, 0xFEEA, 0x0EDD, 0xEEBE, 0xFB25, 0x0269, - 0x17C9, 0xEEAD, 0xF6EF, 0xFD16, 0x06B0, 0x2104, 0xFCBD, 0xFF16, - 0x01F4, 0x17A0, 0x0C70, 0x0F5A, 0xFBF1, 0xF9D5, 0x2801, 0x01AC, - 0x05C7, 0xEF6E, 0xE7E4, 0x00D8, 0x1597, 0x0FF5, 0xC9DE, 0xDDA0, - 0xFF88, 0xE543, 0x1003, 0x39DC, 0xEC81, 0x18A6, 0xEB68, 0x02DD, - 0x0CA4, 0xF35B, 0x17BC, 0xF63C, 0xD408, 0xEFD4, 0x23BD, 0xEBC2, - 0x0898, 0xFE7B, 0x05C6, 0xD6B6, 0xF817, 0xF8BE, 0x1C92, 0xF620, - 0x126D, 0x3056, 0xDFF2, 0xFE43, 0x1B2E, 0x1E1C, 0xFFE4, 0x151E, - 0x0FE8, 0x009B, 0xF62C, 0x292E, 0xEDFA, 0x1419, 0xEA10, 0x0719, - 0xE856, 0x0B68, 0x218A, 0xF7F1, 0x0BD0, 0x3E41, 0x09F0, 0x18D9, - 0xFAA7, 0xF13C, 0x0C40, 0xE6F1, 0xDDEE, 0xFC18, 0x2CCF, 0x2376, - 0xFAE4, 0xEE48, 0x14D0, 0xE471, 0x08B3, 0x04C8, 0x0219, 0x1270, - 0xF0B3, 0xCD8A, 0xCC91, 0xEEF6, 0x115F, 0x09B6, 0x2515, 0xECF1, - 0x157D, 0x1C8C, 0xDCC4, 0xEA48, 0x079F, 0xE442, 0x205C, 0x0DD8, - 0xDA48, 0x0023, 0xF2D1, 0x06EE, 0x0150, 0x06B5, 0xFC65, 0x0298, - 0xCF93, 0x0970, 0xEA64, 0x1A6A, 0x1DA9, 0xEE25, 0xD17F, 0x03A3, - 0xD90F, 0xF9FB, 0x309A, 0x1BF0, 0xFAFB, 0x0FD8, 0xDEF6, 0x0F28, - 0x1FF2, 0xF13E, 0x3A26, 0x087A, 0x1C05, 0x14CC, 0xDDF1, 0xF589, - 0xFEA0, 0xD5E3, 0x19B6, 0x1193, 0xF37D, 0x0EF2, 0x1A1F, 0xD70D, - 0xE3E7, 0xFB71, 0x1F19, 0x0B3F, 0x1C8D, 0xC69F, 0xED36, 0x05A4, - 0xF5C2, 0xEBC1, 0xE1FC, 0xF7CB, 0x08EE, 0xF773, 0xF4F6, 0xFC16, - 0x1AF2, 0xDC22, 0xF4E1, 0x1E67, 0x00E9, 0x1127, 0xECC1, 0xE5D2, - 0xFAAA, 0xE958, 0x009E, 0x3450, 0x101B, 0xDDAF, 0x0F96, 0xC000, - 0xE47E, 0x05A7, 0x0004, 0x133F, 0xF04F, 0x0A8E, 0x0DEB, 0xF5A2, - 0x0041, 0xE6B7, 0x05E5, 0x23FA, 0xF05A, 0x122B, 0xFC75, 0xE043, - 0xD703, 0x1415, 0x07D3, 0xECDD, 0xF242, 0x18CE, 0x2B3C, 0x15BA, - 0xFEC0, 0xE958, 0xEB22, 0x018D, 0xCF37, 0x067A, 0xED2A, 0x0CBE, - 0xF6D7, 0x0104, 0xF2BC, 0xF34A, 0x1E96, 0x25EF, 0x0FC1, 0x064C, - 0x0573, 0x0F28, 0x005B, 0xE142, 0x09EA, 0x1865, 0xE623, 0x0355, - 0x3D19, 0xFD13, 0x23AA, 0xD68B, 0x00F3, 0x0EA5, 0x21FD, 0x1977, - 0xF38C, 0x2141, 0xEC28, 0xE60B, 0x2F40, 0xDEF6, 0x08D3, 0x06F9, - 0xEDAF, 0x175C, 0xE7CA, 0x119B, 0x197F, 0xE9DE, 0x04BB, 0xFC98 + 0x0758, 0xEBED, 0xEFE1, 0x16ED, 0xD75C, 0x0D46, 0x1A68, 0xE4A4, + 0x0D00, 0x0D7E, 0xEB3F, 0x131D, 0x0AA3, 0xF996, 0x1541, 0xDBCF, + 0x098B, 0xF579, 0xE5ED, 0xE22A, 0x217E, 0xDDC5, 0xCDA7, 0xE72E, + 0x04D0, 0xEFE1, 0xEBC0, 0x1596, 0x07ED, 0xE34E, 0x2ECE, 0xDE41, + 0x13CA, 0xE144, 0x0A95, 0xED34, 0x15F1, 0xF4DD, 0xEAF7, 0xE3E2, + 0xDE6D, 0xE414, 0x0CD9, 0x2FA0, 0x28A3, 0x0078, 0xEF7B, 0x1522, + 0xE685, 0xF48C, 0xFA68, 0xEC32, 0x120F, 0xF018, 0x1379, 0x0D65, + 0x122E, 0x023E, 0xCA1A, 0x15FA, 0x1788, 0x2073, 0xE007, 0xC24E, + 0x10AF, 0xEF0D, 0x1325, 0x188F, 0x0644, 0x0814, 0x16C8, 0xE707, + 0x0DA1, 0x2A94, 0x148A, 0xF10A, 0x064B, 0xFB93, 0xEF90, 0xE897, + 0xDFBA, 0xDFDA, 0xE258, 0xE6DD, 0xF1E8, 0xFD7D, 0x12BC, 0xF4FB, + 0xF007, 0xF1DC, 0x17F2, 0xF3D1, 0xF396, 0x2609, 0x0AB7, 0x01D4, + 0xF3B4, 0x0A5C, 0xC79B, 0x2A6A, 0xFC67, 0xE2F9, 0xF1F1, 0x1F75, + 0x02A5, 0x3241, 0x009E, 0xFFB6, 0x03C8, 0xD105, 0xF7B1, 0xE5D5, + 0xE111, 0xD4B3, 0x1FB5, 0xFD7F, 0x0A4C, 0xFCEA, 0xE161, 0xE696, + 0x0D9C, 0xD4F4, 0xFC52, 0xE9D3, 0xE91C, 0x2AF6, 0xFBFD, 0x003E, + 0xE0DF, 0x0B10, 0xC000, 0x139F, 0xF763, 0xFEED, 0xEA0E, 0x28E2, + 0x0B4B, 0x1E4C, 0x1731, 0xE42E, 0x0100, 0xE1AB, 0xDE62, 0xFB60, + 0xE17E, 0x0E60, 0xE39B, 0xF6AE, 0x0D9E, 0xE76E, 0xEE38, 0xEB4C, + 0xC4AD, 0xFA27, 0xFF56, 0xDA38, 0xF0BB, 0xE48B, 0x11D7, 0xEDEF, + 0x12BD, 0xD814, 0xF949, 0xF8E9, 0x15F4, 0x1FF0, 0x28A2, 0xC5DA, + 0xECD5, 0xE182, 0x2DF2, 0xDE9D, 0xF925, 0xE390, 0xF022, 0xF2F6, + 0x180B, 0x1175, 0x07E2, 0xFBB3, 0xE576, 0x1AB7, 0xF883, 0xF1FB, + 0xE34E, 0xE42C, 0x0F7A, 0xE94D, 0xF910, 0x0AB6, 0x0313, 0xE8DD, + 0x06FD, 0x3540, 0xF67B, 0xDDE2, 0xF459, 0x0EDE, 0x13F7, 0x21EB, + 0x1C70, 0x04A1, 0x06DA, 0xC9FA, 0xFB20, 0xDE0C, 0xFDBA, 0xDAB2, + 0x1CFF, 0x01BF, 0x299F, 0x1CC0, 0x17E1, 0xD2A7, 0x16D6, 0x201D, + 0xE8D6, 0x11CC, 0x0361, 0xEEA3, 0xCFA6, 0xFB8B, 0xEA79, 0xFF75, + 0xE713, 0xF8E4, 0x1BB7, 0x16B6, 0x0ED1, 0x0D6F, 0x16DC, 0x0F01, + 0xFD18, 0x0319, 0x21AB, 0x0378, 0x03A8, 0x1441, 0x0EA4, 0x16C6, + 0xD218, 0xDB07, 0xCE5E, 0xFC93, 0xFC86, 0x11AD, 0xED56, 0x1D96, + 0x0895, 0xC784, 0x005C, 0xD91A, 0xD1C3, 0xEB0D, 0x1055, 0x2832 }; static const q15_t ref_scale_possat[17] = { @@ -369,56 +407,60 @@ static const q15_t ref_scale_possat[17] = { }; static const q63_t ref_dot_prod_3[1] = { - 0x000000000C767AAE + 0x0000000008B96063 }; static const q63_t ref_dot_prod_4[1] = { - 0x0000000004A622F0 + 0x00000000189A5933 }; static const q63_t ref_dot_prod_4n1[1] = { - 0x0000000018E0A5E8 + 0x00000000234F66AE + }; + +static const q63_t ref_dot_prod_long[1] = { + 0x000000001C245239 }; static const q15_t ref_abs[256] = { - 0x1577, 0x2CEE, 0x0DEC, 0x022C, 0x1DB9, 0x2284, 0x09B5, 0x04D2, - 0x2F93, 0x22A6, 0x1223, 0x05D4, 0x0D5F, 0x4208, 0x0686, 0x01D4, - 0x03E7, 0x2F3F, 0x18E1, 0x1EB5, 0x081D, 0x0C57, 0x5002, 0x0358, - 0x0B8E, 0x2124, 0x3039, 0x01B0, 0x2B2D, 0x1FEA, 0x6C44, 0x44C1, - 0x00F1, 0x357A, 0x2006, 0x73B8, 0x26FE, 0x314C, 0x2931, 0x05BA, - 0x1949, 0x194A, 0x2F78, 0x1387, 0x57F1, 0x2057, 0x477A, 0x287C, - 0x1130, 0x030A, 0x0B8D, 0x5295, 0x0FD1, 0x0E83, 0x3925, 0x13C0, - 0x24D9, 0x60AB, 0x401C, 0x037B, 0x365B, 0x3C38, 0x0038, 0x2A3C, - 0x1FD0, 0x0135, 0x13A7, 0x525C, 0x240C, 0x2831, 0x2BE0, 0x0E33, - 0x2F54, 0x16CF, 0x4315, 0x101F, 0x17A1, 0x7C83, 0x13DF, 0x31B2, - 0x0AB2, 0x1D88, 0x187F, 0x321E, 0x4423, 0x07D0, 0x599F, 0x46EC, - 0x0A38, 0x2370, 0x299F, 0x371E, 0x1166, 0x0990, 0x0431, 0x24E0, - 0x1E9B, 0x64ED, 0x66DF, 0x2213, 0x22BD, 0x136D, 0x4A2B, 0x261E, - 0x2AFA, 0x3917, 0x4677, 0x2B70, 0x0F3E, 0x377C, 0x40B8, 0x1BAF, - 0x4B70, 0x0046, 0x1A5D, 0x0DDC, 0x02A1, 0x0D6B, 0x0736, 0x0530, - 0x60DA, 0x12E1, 0x2B39, 0x34D4, 0x3B51, 0x23B6, 0x5D02, 0x0746, - 0x4DE2, 0x0C0A, 0x6134, 0x37E1, 0x0A0B, 0x1FB1, 0x4213, 0x1E50, - 0x3FE4, 0x1D83, 0x744C, 0x10F4, 0x3809, 0x2998, 0x441D, 0x14EE, - 0x02C0, 0x543B, 0x336B, 0x2327, 0x1906, 0x1DE4, 0x343D, 0x51E5, - 0x3831, 0x091F, 0x3E32, 0x167E, 0x391A, 0x72C3, 0x2594, 0x0B48, - 0x147D, 0x287E, 0x3C08, 0x106A, 0x11DB, 0x111A, 0x1614, 0x07D4, - 0x35E3, 0x47BC, 0x163E, 0x3CCF, 0x01D2, 0x224E, 0x267E, 0x345D, - 0x0AAC, 0x2D50, 0x013D, 0x68A0, 0x2036, 0x44A1, 0x1F2B, 0x7FFF, - 0x3703, 0x0B4F, 0x0007, 0x267F, 0x1F62, 0x151B, 0x1BD6, 0x14BC, - 0x0082, 0x3292, 0x0BCA, 0x47F4, 0x1F4B, 0x2457, 0x0716, 0x3F7A, - 0x51FA, 0x282B, 0x0FA5, 0x2645, 0x1B7C, 0x319D, 0x5677, 0x2B75, - 0x027F, 0x2D50, 0x29BD, 0x031A, 0x6191, 0x0CF5, 0x25AB, 0x197B, - 0x1251, 0x0208, 0x1A87, 0x196B, 0x3D2C, 0x4BDE, 0x1F82, 0x0C99, - 0x0AE6, 0x1E51, 0x00B6, 0x3D7C, 0x13D3, 0x30C9, 0x33BA, 0x06A9, - 0x7A33, 0x05DA, 0x4754, 0x52E9, 0x01E7, 0x1D4A, 0x43FA, 0x32EE, - 0x18E7, 0x4282, 0x27B0, 0x33E9, 0x5E80, 0x4213, 0x11A6, 0x0DF1, - 0x24A1, 0x2EB8, 0x306C, 0x2337, 0x32FE, 0x2C45, 0x0975, 0x06CF + 0x0EB1, 0x2826, 0x203E, 0x2DDA, 0x5148, 0x1A8C, 0x34D0, 0x36B7, + 0x19FF, 0x1AFC, 0x2982, 0x2639, 0x1546, 0x0CD3, 0x2A82, 0x4862, + 0x1317, 0x150E, 0x3427, 0x3BAC, 0x42FD, 0x4477, 0x64B1, 0x31A4, + 0x09A1, 0x203E, 0x2880, 0x2B2C, 0x0FDB, 0x3964, 0x5D9B, 0x437E, + 0x2794, 0x3D79, 0x152B, 0x2597, 0x2BE1, 0x1645, 0x2A12, 0x383C, + 0x4326, 0x37D8, 0x19B1, 0x5F41, 0x5146, 0x00F0, 0x210A, 0x2A44, + 0x32F6, 0x16E8, 0x0B30, 0x279D, 0x241F, 0x1FD0, 0x26F3, 0x1ACB, + 0x245C, 0x047C, 0x6BCD, 0x2BF5, 0x2F0F, 0x40E5, 0x3FF3, 0x7B64, + 0x215D, 0x21E5, 0x264A, 0x311D, 0x0C88, 0x1028, 0x2D8F, 0x31F2, + 0x1B43, 0x5529, 0x2914, 0x1DEB, 0x0C95, 0x08D9, 0x20DF, 0x2ED2, + 0x408C, 0x404B, 0x3B50, 0x3245, 0x1C30, 0x0507, 0x2579, 0x160B, + 0x1FF3, 0x1C49, 0x2FE5, 0x185E, 0x18D4, 0x4C12, 0x156E, 0x03A9, + 0x1899, 0x14B9, 0x70CA, 0x54D3, 0x0731, 0x3A0E, 0x1C1E, 0x3EEB, + 0x054A, 0x6482, 0x013C, 0x0093, 0x078F, 0x5DF6, 0x109D, 0x3455, + 0x3DDE, 0x5699, 0x3F6B, 0x0502, 0x1498, 0x062D, 0x3D3D, 0x32D4, + 0x1B37, 0x5618, 0x075C, 0x2C5A, 0x2DC8, 0x55EC, 0x0806, 0x007C, + 0x3E41, 0x161F, 0x7FFF, 0x273D, 0x1139, 0x0226, 0x2BE4, 0x51C4, + 0x1697, 0x3C98, 0x2E62, 0x37A3, 0x01FF, 0x3CAA, 0x433B, 0x0940, + 0x3D05, 0x1CC0, 0x38CA, 0x12A4, 0x1B3C, 0x3124, 0x238F, 0x2967, + 0x76A6, 0x0BB2, 0x0155, 0x4B90, 0x1E8A, 0x36EB, 0x23AD, 0x2422, + 0x2579, 0x4FD8, 0x0D6D, 0x0E2D, 0x2BE9, 0x3FE0, 0x5143, 0x744B, + 0x2657, 0x3CFC, 0x5BE4, 0x42C7, 0x0DB6, 0x38DF, 0x1FBC, 0x1A15, + 0x3015, 0x22EB, 0x0FC5, 0x089A, 0x3514, 0x356E, 0x0EFB, 0x1C0A, + 0x3965, 0x37A8, 0x1EF3, 0x2D66, 0x0DE0, 0x156B, 0x0625, 0x2E46, + 0x0DF9, 0x6A80, 0x130B, 0x443C, 0x174D, 0x1DBD, 0x27ED, 0x43D5, + 0x38E0, 0x0942, 0x0DB3, 0x6C0C, 0x09C0, 0x43E9, 0x048B, 0x4A9B, + 0x39FD, 0x037E, 0x533F, 0x3981, 0x2FC2, 0x5AB3, 0x2DAC, 0x403B, + 0x2E54, 0x2397, 0x06C3, 0x22BA, 0x60B4, 0x08EA, 0x2B0E, 0x0116, + 0x31DA, 0x0E37, 0x376E, 0x2D6C, 0x1DA1, 0x1ADF, 0x2DB9, 0x1E02, + 0x05D0, 0x0633, 0x4356, 0x06F1, 0x0751, 0x2881, 0x1D47, 0x2D8C, + 0x5BD0, 0x49F2, 0x6343, 0x06DB, 0x06F4, 0x235A, 0x2554, 0x3B2B, + 0x112A, 0x70F7, 0x00B9, 0x4DCC, 0x5C7A, 0x29E7, 0x20AA, 0x5063 }; static const q15_t ref_shift[17] = { - 0xEA43, 0xEB5F, 0x329A, 0x0BF8, 0x06C5, 0x31A9, 0x0B9A, 0x11FB, - 0xC4E0, 0x0D07, 0xF6A1, 0xF6A1, 0xAAAB, 0xF8AB, 0xE95E, 0x4406, - 0x435B + 0x4E37, 0xB463, 0x268F, 0xE5F5, 0x5555, 0x0235, 0x097C, 0xDB43, + 0xF056, 0xEBD9, 0x4034, 0xCADC, 0xD16D, 0x1367, 0x3113, 0x2BC3, + 0x01E6 }; static const q15_t ref_shift_possat[17] = { @@ -434,26 +476,137 @@ static const q15_t ref_shift_negsat[17] = { }; static const uint16_t ref_and[23] = { - 0x628A, 0x903A, 0x4220, 0x5A01, 0x4000, 0x0308, 0x0010, 0x2AA2, - 0x0148, 0x1510, 0x0108, 0x0182, 0x2A32, 0x0213, 0x2732, 0x8A50, - 0x3408, 0xACD0, 0x0910, 0x04E0, 0x40D0, 0x2014, 0x2410 + 0xA959, 0x1218, 0x481C, 0x9004, 0x80C8, 0x80A0, 0x820C, 0x2210, + 0x40C4, 0x0010, 0x7C12, 0x0844, 0x0288, 0x0420, 0x2001, 0x4012, + 0x0A85, 0xB854, 0x0423, 0xE841, 0x0A40, 0xA9A0, 0x7CE6 }; static const uint16_t ref_or[23] = { - 0xFFBF, 0xDC7F, 0xD33C, 0xDFB7, 0xDE5F, 0xB3AC, 0x2BFE, 0xEAF3, - 0x4D6B, 0xF57F, 0x77FE, 0xDDFF, 0x7BFB, 0xD7BF, 0xFFF6, 0xDAFF, - 0x3FEF, 0xEDFF, 0xBB3D, 0xE7F3, 0xDAFF, 0xF754, 0x7DFD + 0xFBFF, 0xFEFF, 0xFD7F, 0xF0CE, 0x9ECF, 0xE3BB, 0xCFFF, 0xEFF0, + 0xEFC6, 0xFBB6, 0x7F7E, 0x7CFF, 0xBFCE, 0xBFAD, 0xF665, 0xD7FB, + 0xFBF7, 0xF8DF, 0x7FA3, 0xFDDD, 0xCBC6, 0xB9A3, 0x7FFF }; static const uint16_t ref_not[23] = { - 0x1845, 0x67C5, 0xADCB, 0xA07E, 0xBDB2, 0x4C73, 0xDEEB, 0xD51D, - 0xFA97, 0x2A88, 0xDA87, 0x7258, 0x8585, 0xF8EC, 0x988D, 0x352E, - 0xC0F2, 0x130F, 0x54CE, 0x7B1E, 0x3709, 0x8BAB, 0x9A86 + 0x0682, 0x8167, 0x17C1, 0x6FF9, 0x7130, 0x7D4D, 0x78C3, 0x192F, + 0xBD39, 0x5EEF, 0x82E1, 0xF323, 0x4933, 0x4A5A, 0x4DBA, 0x3E65, + 0x846A, 0x47A8, 0xC1DC, 0x133E, 0x753B, 0x565F, 0x8300 }; static const uint16_t ref_xor[23] = { - 0x9D35, 0x4C45, 0x911C, 0x85B6, 0x9E5F, 0xB0A4, 0x2BEE, 0xC051, - 0x4C23, 0xE06F, 0x76F6, 0xDC7D, 0x51C9, 0xD5AC, 0xD8C4, 0x50AF, - 0x0BE7, 0x412F, 0xB22D, 0xE313, 0x9A2F, 0xD740, 0x59ED + 0x52A6, 0xECE7, 0xB563, 0x60CA, 0x1E07, 0x631B, 0x4DF3, 0xCDE0, + 0xAF02, 0xFBA6, 0x036C, 0x74BB, 0xBD46, 0xBB8D, 0xD664, 0x97E9, + 0xF172, 0x408B, 0x7B80, 0x159C, 0xC186, 0x1003, 0x0319 + }; + +static const q15_t ref_clip1[263] = { + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC02F, 0xC103, + 0xC1D7, 0xC2AC, 0xC380, 0xC454, 0xC528, 0xC5FC, 0xC6D0, 0xC7A5, + 0xC879, 0xC94D, 0xCA21, 0xCAF5, 0xCBC9, 0xCC9E, 0xCD72, 0xCE46, + 0xCF1A, 0xCFEE, 0xD0C2, 0xD197, 0xD26B, 0xD33F, 0xD413, 0xD4E7, + 0xD5BB, 0xD690, 0xD764, 0xD838, 0xD90C, 0xD9E0, 0xDAB4, 0xDB89, + 0xDC5D, 0xDD31, 0xDE05, 0xDED9, 0xDFAD, 0xE082, 0xE156, 0xE22A, + 0xE2FE, 0xE3D2, 0xE4A6, 0xE57B, 0xE64F, 0xE723, 0xE7F7, 0xE8CB, + 0xE99F, 0xEA74, 0xEB48, 0xEC1C, 0xECF0, 0xEDC4, 0xEE98, 0xEF6D, + 0xF041, 0xF115, 0xF1E9, 0xF2BD, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, + 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333, 0xF333 + }; + +static const q15_t ref_clip2[272] = { + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, + 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC000, 0xC02F, 0xC103, + 0xC1D7, 0xC2AC, 0xC380, 0xC454, 0xC528, 0xC5FC, 0xC6D0, 0xC7A5, + 0xC879, 0xC94D, 0xCA21, 0xCAF5, 0xCBC9, 0xCC9E, 0xCD72, 0xCE46, + 0xCF1A, 0xCFEE, 0xD0C2, 0xD197, 0xD26B, 0xD33F, 0xD413, 0xD4E7, + 0xD5BB, 0xD690, 0xD764, 0xD838, 0xD90C, 0xD9E0, 0xDAB4, 0xDB89, + 0xDC5D, 0xDD31, 0xDE05, 0xDED9, 0xDFAD, 0xE082, 0xE156, 0xE22A, + 0xE2FE, 0xE3D2, 0xE4A6, 0xE57B, 0xE64F, 0xE723, 0xE7F7, 0xE8CB, + 0xE99F, 0xEA74, 0xEB48, 0xEC1C, 0xECF0, 0xEDC4, 0xEE98, 0xEF6D, + 0xF041, 0xF115, 0xF1E9, 0xF2BD, 0xF391, 0xF466, 0xF53A, 0xF60E, + 0xF6E2, 0xF7B6, 0xF88A, 0xF95F, 0xFA33, 0xFB07, 0xFBDB, 0xFCAF, + 0xFD83, 0xFE58, 0xFF2C, 0x0000, 0x00D4, 0x01A8, 0x027D, 0x0351, + 0x0425, 0x04F9, 0x05CD, 0x06A1, 0x0776, 0x084A, 0x091E, 0x09F2, + 0x0AC6, 0x0B9A, 0x0C6F, 0x0D43, 0x0E17, 0x0EEB, 0x0FBF, 0x1093, + 0x1168, 0x123C, 0x1310, 0x13E4, 0x14B8, 0x158C, 0x1661, 0x1735, + 0x1809, 0x18DD, 0x19B1, 0x1A85, 0x1B5A, 0x1C2E, 0x1D02, 0x1DD6, + 0x1EAA, 0x1F7E, 0x2053, 0x2127, 0x21FB, 0x22CF, 0x23A3, 0x2477, + 0x254C, 0x2620, 0x26F4, 0x27C8, 0x289C, 0x2970, 0x2A45, 0x2B19, + 0x2BED, 0x2CC1, 0x2D95, 0x2E69, 0x2F3E, 0x3012, 0x30E6, 0x31BA, + 0x328E, 0x3362, 0x3437, 0x350B, 0x35DF, 0x36B3, 0x3787, 0x385B, + 0x3930, 0x3A04, 0x3AD8, 0x3BAC, 0x3C80, 0x3D54, 0x3E29, 0x3EFD, + 0x3FD1, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000 + }; + +static const q15_t ref_clip3[279] = { + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, 0x0CCD, + 0x0CCD, 0x0CCD, 0x0CCD, 0x0D43, 0x0E17, 0x0EEB, 0x0FBF, 0x1093, + 0x1168, 0x123C, 0x1310, 0x13E4, 0x14B8, 0x158C, 0x1661, 0x1735, + 0x1809, 0x18DD, 0x19B1, 0x1A85, 0x1B5A, 0x1C2E, 0x1D02, 0x1DD6, + 0x1EAA, 0x1F7E, 0x2053, 0x2127, 0x21FB, 0x22CF, 0x23A3, 0x2477, + 0x254C, 0x2620, 0x26F4, 0x27C8, 0x289C, 0x2970, 0x2A45, 0x2B19, + 0x2BED, 0x2CC1, 0x2D95, 0x2E69, 0x2F3E, 0x3012, 0x30E6, 0x31BA, + 0x328E, 0x3362, 0x3437, 0x350B, 0x35DF, 0x36B3, 0x3787, 0x385B, + 0x3930, 0x3A04, 0x3AD8, 0x3BAC, 0x3C80, 0x3D54, 0x3E29, 0x3EFD, + 0x3FD1, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, + 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000 };