From 633b5284212e4e5dd5adb1e97039d1a8185a7eaa Mon Sep 17 00:00:00 2001 From: Christophe Favergeon Date: Wed, 28 Sep 2022 07:50:26 +0200 Subject: [PATCH] Corrected issue #49 Incorrect out of bounds value for linear interpolation (float). --- .../arm_linear_interp_f16.c | 2 +- .../arm_linear_interp_f32.c | 2 +- Testing/PatternGeneration/Interpolate.py | 17 +- .../InterpolationF16/Input1_f16.txt | 166 +++++++++--------- .../InterpolationF16/Reference1_f16.txt | 164 ++++++++--------- .../InterpolationF32/Input1_f32.txt | 166 +++++++++--------- .../InterpolationF32/Reference1_f32.txt | 166 +++++++++--------- .../InterpolationQ15/Input1_q31.txt | 166 +++++++++--------- .../InterpolationQ15/Reference1_q15.txt | 166 +++++++++--------- .../InterpolationQ31/Input1_q31.txt | 166 +++++++++--------- .../InterpolationQ31/Reference1_q31.txt | 166 +++++++++--------- .../InterpolationQ7/Input1_q31.txt | 166 +++++++++--------- .../InterpolationQ7/Reference1_q7.txt | 160 +++++++++-------- .../Source/Tests/InterpolationTestsF16.cpp | 6 +- .../Source/Tests/InterpolationTestsF32.cpp | 2 +- 15 files changed, 865 insertions(+), 816 deletions(-) diff --git a/Source/InterpolationFunctions/arm_linear_interp_f16.c b/Source/InterpolationFunctions/arm_linear_interp_f16.c index 804eec2b..ab0c68de 100755 --- a/Source/InterpolationFunctions/arm_linear_interp_f16.c +++ b/Source/InterpolationFunctions/arm_linear_interp_f16.c @@ -62,7 +62,7 @@ /* Calculation of index */ i = (int32_t) (((_Float16)x - (_Float16)S->x1) / (_Float16)xSpacing); - if (i < 0) + if (((_Float16)x < (_Float16)S->x1)) { /* Iniatilize output for below specified range as least output value of table */ y = pYData[0]; diff --git a/Source/InterpolationFunctions/arm_linear_interp_f32.c b/Source/InterpolationFunctions/arm_linear_interp_f32.c index fc60bec4..a73db171 100755 --- a/Source/InterpolationFunctions/arm_linear_interp_f32.c +++ b/Source/InterpolationFunctions/arm_linear_interp_f32.c @@ -90,7 +90,7 @@ /* Calculation of index */ i = (int32_t) ((x - S->x1) / xSpacing); - if (i < 0) + if (x < S->x1) { /* Iniatilize output for below specified range as least output value of table */ y = pYData[0]; diff --git a/Testing/PatternGeneration/Interpolate.py b/Testing/PatternGeneration/Interpolate.py index 2c092bad..40c91aee 100755 --- a/Testing/PatternGeneration/Interpolate.py +++ b/Testing/PatternGeneration/Interpolate.py @@ -17,11 +17,12 @@ def writeTests(config,format): x = np.linspace(0, NBSAMPLES, num=NBSAMPLES+1, endpoint=True) y = np.cos(-x**2/(NBSAMPLES - 1)) - f = interp1d(x, y) - data=x+0.5 - data=data[:-1] + f = interp1d(x, y,bounds_error=False,fill_value=(y[0],y[-1])) + data=x-0.9 + data=np.hstack((data,np.array(data[-1]+1.5))) z = f(data) + config.setOverwrite(True) if format != 0 and format != 16: data = data / 2.0**11 if format != 0 and format != 16: @@ -33,6 +34,8 @@ def writeTests(config,format): ref = z config.writeReference(1, ref) + config.setOverwrite(False) + # Bilinear interpolation test x = np.arange(-3.14, 3.14, 1.0) y = np.arange(-3.14, 3.14, 0.8) @@ -54,7 +57,7 @@ def writeTests(config,format): # Now we generate other points. The points where we want to evaluate # the function. - # In Python they must be rescale between -3.14 and tghe max x or max y defined above. + # In Python they must be rescale between -3.14 and the max x or max y defined above. # In CMSIS they will be between 1 and numRow-1 or numCols-1. # Since we add 0.5 to be sure we are between grid point, we use # numCols-2 as bound to be sured we are <= numCols-1 @@ -135,6 +138,12 @@ def generatePatterns(): configq15=Tools.Config(PATTERNDIR,PARAMDIR,"q15") configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7") + configf32.setOverwrite(False) + configf16.setOverwrite(False) + configq31.setOverwrite(False) + configq15.setOverwrite(False) + configq7.setOverwrite(False) + writeTests(configf32,0) writeTests(configf16,16) writeTests(configq31,31) diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt b/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt index d3c792e8..bc40be24 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationF16/Input1_f16.txt @@ -1,82 +1,86 @@ H -40 -// 0.500000 -0x3800 -// 1.500000 -0x3e00 -// 2.500000 -0x4100 -// 3.500000 -0x4300 -// 4.500000 -0x4480 -// 5.500000 -0x4580 -// 6.500000 -0x4680 -// 7.500000 -0x4780 -// 8.500000 -0x4840 -// 9.500000 -0x48c0 -// 10.500000 -0x4940 -// 11.500000 -0x49c0 -// 12.500000 -0x4a40 -// 13.500000 -0x4ac0 -// 14.500000 -0x4b40 -// 15.500000 -0x4bc0 -// 16.500000 -0x4c20 -// 17.500000 -0x4c60 -// 18.500000 -0x4ca0 -// 19.500000 -0x4ce0 -// 20.500000 -0x4d20 -// 21.500000 -0x4d60 -// 22.500000 -0x4da0 -// 23.500000 -0x4de0 -// 24.500000 -0x4e20 -// 25.500000 -0x4e60 -// 26.500000 -0x4ea0 -// 27.500000 -0x4ee0 -// 28.500000 -0x4f20 -// 29.500000 -0x4f60 -// 30.500000 -0x4fa0 -// 31.500000 -0x4fe0 -// 32.500000 -0x5010 -// 33.500000 -0x5030 -// 34.500000 -0x5050 -// 35.500000 -0x5070 -// 36.500000 -0x5090 -// 37.500000 -0x50b0 -// 38.500000 -0x50d0 -// 39.500000 -0x50f0 +42 +// -0.900000 +0xbb33 +// 0.100000 +0x2e66 +// 1.100000 +0x3c66 +// 2.100000 +0x4033 +// 3.100000 +0x4233 +// 4.100000 +0x441a +// 5.100000 +0x451a +// 6.100000 +0x461a +// 7.100000 +0x471a +// 8.100000 +0x480d +// 9.100000 +0x488d +// 10.100000 +0x490d +// 11.100000 +0x498d +// 12.100000 +0x4a0d +// 13.100000 +0x4a8d +// 14.100000 +0x4b0d +// 15.100000 +0x4b8d +// 16.100000 +0x4c06 +// 17.100000 +0x4c46 +// 18.100000 +0x4c86 +// 19.100000 +0x4cc6 +// 20.100000 +0x4d06 +// 21.100000 +0x4d46 +// 22.100000 +0x4d86 +// 23.100000 +0x4dc6 +// 24.100000 +0x4e06 +// 25.100000 +0x4e46 +// 26.100000 +0x4e86 +// 27.100000 +0x4ec6 +// 28.100000 +0x4f06 +// 29.100000 +0x4f46 +// 30.100000 +0x4f86 +// 31.100000 +0x4fc6 +// 32.100000 +0x5003 +// 33.100000 +0x5023 +// 34.100000 +0x5043 +// 35.100000 +0x5063 +// 36.100000 +0x5083 +// 37.100000 +0x50a3 +// 38.100000 +0x50c3 +// 39.100000 +0x50e3 +// 40.600000 +0x5113 diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt b/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt index 353af9a7..05f68eb7 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationF16/Reference1_f16.txt @@ -1,82 +1,86 @@ H -40 -// 0.999836 +42 +// 1.000000 0x3c00 -// 0.997208 -0x3bfa -// 0.984118 -0x3bdf -// 0.945255 -0x3b90 -// 0.859251 -0x3ae0 -// 0.702426 -0x399f -// 0.456301 -0x374d -// 0.119531 -0x2fa6 -// -0.277482 -0xb471 -// -0.661314 -0xb94a -// -0.918537 -0xbb59 -// -0.925695 -0xbb68 -// -0.611097 -0xb8e4 -// -0.030945 -0xa7ec -// 0.589481 -0x38b7 -// 0.915804 -0x3b54 -// 0.695054 -0x398f -// -0.004498 -0x9c9b -// -0.712082 -0xb9b2 -// -0.829765 -0xbaa3 -// -0.183298 -0xb1de -// 0.647457 -0x392e -// 0.765024 -0x3a1f -// -0.024301 -0xa639 -// -0.770387 -0xba2a -// -0.447708 -0xb72a -// 0.521104 -0x382b -// 0.650064 -0x3933 -// -0.298863 -0xb4c8 -// -0.688210 -0xb981 -// 0.207648 -0x32a5 -// 0.656951 -0x3941 -// -0.253282 -0xb40d -// -0.570816 -0xb891 -// 0.398647 -0x3661 -// 0.379176 -0x3611 -// -0.548368 -0xb863 -// -0.036721 -0xa8b3 -// 0.524152 -0x3831 -// -0.358152 -0xb5bb +// 0.999967 +0x3c00 +// 0.999179 +0x3bfe +// 0.992619 +0x3bf1 +// 0.967844 +0x3bbe +// 0.905465 +0x3b3e +// 0.781671 +0x3a41 +// 0.573956 +0x3897 +// 0.271292 +0x3457 +// -0.111634 +0xaf25 +// -0.520097 +0xb829 +// -0.853976 +0xbad5 +// -0.984530 +0xbbe0 +// -0.803940 +0xba6e +// -0.302224 +0xb4d6 +// 0.364419 +0x35d5 +// 0.879807 +0x3b0a +// 0.907652 +0x3b43 +// 0.342546 +0x357b +// -0.493059 +0xb7e4 +// -0.954641 +0xbba3 +// -0.575596 +0xb89b +// 0.375151 +0x3601 +// 0.943276 +0x3b8c +// 0.428907 +0x36dd +// -0.626726 +0xb904 +// -0.849512 +0xbacc +// 0.147858 +0x30bb +// 0.920142 +0x3b5c +// 0.190200 +0x3216 +// -0.865797 +0xbaed +// -0.331452 +0xb54e +// 0.836609 +0x3ab1 +// 0.295245 +0x34b9 +// -0.865316 +0xbaec +// -0.082423 +0xad46 +// 0.875822 +0x3b02 +// -0.302978 +0xb4d9 +// -0.691427 +0xb988 +// 0.730160 +0x39d7 +// 0.141684 +0x3089 +// -0.982948 +0xbbdd diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationF32/Input1_f32.txt b/Testing/Patterns/DSP/Interpolation/InterpolationF32/Input1_f32.txt index f18898b5..f546d5d5 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationF32/Input1_f32.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationF32/Input1_f32.txt @@ -1,82 +1,86 @@ W -40 -// 0.500000 -0x3f000000 -// 1.500000 -0x3fc00000 -// 2.500000 -0x40200000 -// 3.500000 -0x40600000 -// 4.500000 -0x40900000 -// 5.500000 -0x40b00000 -// 6.500000 -0x40d00000 -// 7.500000 -0x40f00000 -// 8.500000 -0x41080000 -// 9.500000 -0x41180000 -// 10.500000 -0x41280000 -// 11.500000 -0x41380000 -// 12.500000 -0x41480000 -// 13.500000 -0x41580000 -// 14.500000 -0x41680000 -// 15.500000 -0x41780000 -// 16.500000 -0x41840000 -// 17.500000 -0x418c0000 -// 18.500000 -0x41940000 -// 19.500000 -0x419c0000 -// 20.500000 -0x41a40000 -// 21.500000 -0x41ac0000 -// 22.500000 -0x41b40000 -// 23.500000 -0x41bc0000 -// 24.500000 -0x41c40000 -// 25.500000 -0x41cc0000 -// 26.500000 -0x41d40000 -// 27.500000 -0x41dc0000 -// 28.500000 -0x41e40000 -// 29.500000 -0x41ec0000 -// 30.500000 -0x41f40000 -// 31.500000 -0x41fc0000 -// 32.500000 -0x42020000 -// 33.500000 -0x42060000 -// 34.500000 -0x420a0000 -// 35.500000 -0x420e0000 -// 36.500000 -0x42120000 -// 37.500000 -0x42160000 -// 38.500000 -0x421a0000 -// 39.500000 -0x421e0000 +42 +// -0.900000 +0xbf666666 +// 0.100000 +0x3dcccccd +// 1.100000 +0x3f8ccccd +// 2.100000 +0x40066666 +// 3.100000 +0x40466666 +// 4.100000 +0x40833333 +// 5.100000 +0x40a33333 +// 6.100000 +0x40c33333 +// 7.100000 +0x40e33333 +// 8.100000 +0x4101999a +// 9.100000 +0x4111999a +// 10.100000 +0x4121999a +// 11.100000 +0x4131999a +// 12.100000 +0x4141999a +// 13.100000 +0x4151999a +// 14.100000 +0x4161999a +// 15.100000 +0x4171999a +// 16.100000 +0x4180cccd +// 17.100000 +0x4188cccd +// 18.100000 +0x4190cccd +// 19.100000 +0x4198cccd +// 20.100000 +0x41a0cccd +// 21.100000 +0x41a8cccd +// 22.100000 +0x41b0cccd +// 23.100000 +0x41b8cccd +// 24.100000 +0x41c0cccd +// 25.100000 +0x41c8cccd +// 26.100000 +0x41d0cccd +// 27.100000 +0x41d8cccd +// 28.100000 +0x41e0cccd +// 29.100000 +0x41e8cccd +// 30.100000 +0x41f0cccd +// 31.100000 +0x41f8cccd +// 32.100000 +0x42006666 +// 33.100000 +0x42046666 +// 34.100000 +0x42086666 +// 35.100000 +0x420c6666 +// 36.100000 +0x42106666 +// 37.100000 +0x42146666 +// 38.100000 +0x42186666 +// 39.100000 +0x421c6666 +// 40.600000 +0x42226666 diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationF32/Reference1_f32.txt b/Testing/Patterns/DSP/Interpolation/InterpolationF32/Reference1_f32.txt index e0f98ec8..2852218d 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationF32/Reference1_f32.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationF32/Reference1_f32.txt @@ -1,82 +1,86 @@ W -40 -// 0.999836 -0x3f7ff53b -// 0.997208 -0x3f7f4908 -// 0.984118 -0x3f7bef25 -// 0.945255 -0x3f71fc36 -// 0.859251 -0x3f5bf7db -// 0.702426 -0x3f33d232 -// 0.456301 -0x3ee9a049 -// 0.119531 -0x3df4cc6e -// -0.277482 -0xbe8e122d -// -0.661314 -0xbf294be6 -// -0.918537 -0xbf6b253e -// -0.925695 -0xbf6cfa51 -// -0.611097 -0xbf1c70d9 -// -0.030945 -0xbcfd7f9a -// 0.589481 -0x3f16e834 -// 0.915804 -0x3f6a7228 -// 0.695054 -0x3f31ef13 -// -0.004498 -0xbb9367b4 -// -0.712082 -0xbf364afd -// -0.829765 -0xbf546b7a -// -0.183298 -0xbe3bb262 -// 0.647457 -0x3f25bfbd -// 0.765024 -0x3f43d8a0 -// -0.024301 -0xbcc71299 -// -0.770387 -0xbf453819 -// -0.447708 -0xbee53a07 -// 0.521104 -0x3f056717 -// 0.650064 -0x3f266a9a -// -0.298863 -0xbe9904a3 -// -0.688210 -0xbf302e8f -// 0.207648 -0x3e54a1be -// 0.656951 -0x3f282dea -// -0.253282 -0xbe81ae2d -// -0.570816 -0xbf1220fa -// 0.398647 -0x3ecc1b6e -// 0.379176 -0x3ec2236a -// -0.548368 -0xbf0c61d1 -// -0.036721 -0xbd1668f6 -// 0.524152 -0x3f062ed8 -// -0.358152 -0xbeb75fc4 +42 +// 1.000000 +0x3f800000 +// 0.999967 +0x3f7ffdd9 +// 0.999179 +0x3f7fca2c +// 0.992619 +0x3f7e1c50 +// 0.967844 +0x3f77c498 +// 0.905465 +0x3f67cc8e +// 0.781671 +0x3f481b9f +// 0.573956 +0x3f12eec2 +// 0.271292 +0x3e8ae6d2 +// -0.111634 +0xbde4a03e +// -0.520097 +0xbf05251b +// -0.853976 +0xbf5a9e28 +// -0.984530 +0xbf7c0a23 +// -0.803940 +0xbf4dcf00 +// -0.302224 +0xbe9abd0d +// 0.364419 +0x3eba952d +// 0.879807 +0x3f613b02 +// 0.907652 +0x3f685be3 +// 0.342546 +0x3eaf622b +// -0.493059 +0xbefc7247 +// -0.954641 +0xbf746355 +// -0.575596 +0xbf135a3f +// 0.375151 +0x3ec013d8 +// 0.943276 +0x3f717a88 +// 0.428907 +0x3edb99bf +// -0.626726 +0xbf207123 +// -0.849512 +0xbf5979a4 +// 0.147858 +0x3e176823 +// 0.920142 +0x3f6b8e73 +// 0.190200 +0x3e42c3dd +// -0.865797 +0xbf5da4da +// -0.331452 +0xbea9b424 +// 0.836609 +0x3f562c09 +// 0.295245 +0x3e972a62 +// -0.865316 +0xbf5d8558 +// -0.082423 +0xbda8cd5f +// 0.875822 +0x3f6035e6 +// -0.302978 +0xbe9b1ffb +// -0.691427 +0xbf310164 +// 0.730160 +0x3f3aebc0 +// 0.141684 +0x3e111592 +// -0.982948 +0xbf7ba27a diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Input1_q31.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Input1_q31.txt index 0ab532f7..19944c6d 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Input1_q31.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Input1_q31.txt @@ -1,82 +1,86 @@ W -40 -// 0.000244 -0x00080000 -// 0.000732 -0x00180000 -// 0.001221 -0x00280000 -// 0.001709 -0x00380000 -// 0.002197 -0x00480000 -// 0.002686 -0x00580000 -// 0.003174 -0x00680000 -// 0.003662 -0x00780000 -// 0.004150 -0x00880000 -// 0.004639 -0x00980000 -// 0.005127 -0x00A80000 -// 0.005615 -0x00B80000 -// 0.006104 -0x00C80000 -// 0.006592 -0x00D80000 -// 0.007080 -0x00E80000 -// 0.007568 -0x00F80000 -// 0.008057 -0x01080000 -// 0.008545 -0x01180000 -// 0.009033 -0x01280000 -// 0.009521 -0x01380000 -// 0.010010 -0x01480000 -// 0.010498 -0x01580000 -// 0.010986 -0x01680000 -// 0.011475 -0x01780000 -// 0.011963 -0x01880000 -// 0.012451 -0x01980000 -// 0.012939 -0x01A80000 -// 0.013428 -0x01B80000 -// 0.013916 -0x01C80000 -// 0.014404 -0x01D80000 -// 0.014893 -0x01E80000 -// 0.015381 -0x01F80000 -// 0.015869 -0x02080000 -// 0.016357 -0x02180000 -// 0.016846 -0x02280000 -// 0.017334 -0x02380000 -// 0.017822 -0x02480000 -// 0.018311 -0x02580000 -// 0.018799 -0x02680000 -// 0.019287 -0x02780000 +42 +// -0.000439 +0xFFF1999A +// 0.000049 +0x0001999A +// 0.000537 +0x0011999A +// 0.001025 +0x0021999A +// 0.001514 +0x0031999A +// 0.002002 +0x0041999A +// 0.002490 +0x0051999A +// 0.002979 +0x0061999A +// 0.003467 +0x0071999A +// 0.003955 +0x0081999A +// 0.004443 +0x0091999A +// 0.004932 +0x00A1999A +// 0.005420 +0x00B1999A +// 0.005908 +0x00C1999A +// 0.006396 +0x00D1999A +// 0.006885 +0x00E1999A +// 0.007373 +0x00F1999A +// 0.007861 +0x0101999A +// 0.008350 +0x0111999A +// 0.008838 +0x0121999A +// 0.009326 +0x0131999A +// 0.009814 +0x0141999A +// 0.010303 +0x0151999A +// 0.010791 +0x0161999A +// 0.011279 +0x0171999A +// 0.011768 +0x0181999A +// 0.012256 +0x0191999A +// 0.012744 +0x01A1999A +// 0.013232 +0x01B1999A +// 0.013721 +0x01C1999A +// 0.014209 +0x01D1999A +// 0.014697 +0x01E1999A +// 0.015186 +0x01F1999A +// 0.015674 +0x0201999A +// 0.016162 +0x0211999A +// 0.016650 +0x0221999A +// 0.017139 +0x0231999A +// 0.017627 +0x0241999A +// 0.018115 +0x0251999A +// 0.018604 +0x0261999A +// 0.019092 +0x0271999A +// 0.019824 +0x0289999A diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Reference1_q15.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Reference1_q15.txt index 991ee8b9..bc34fa71 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Reference1_q15.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ15/Reference1_q15.txt @@ -1,82 +1,86 @@ H -40 -// 0.999836 -0x7FFB -// 0.997208 -0x7FA5 -// 0.984118 -0x7DF8 -// 0.945255 -0x78FE -// 0.859251 -0x6DFC -// 0.702426 -0x59E9 -// 0.456301 -0x3A68 -// 0.119531 -0x0F4D -// -0.277482 -0xDC7B -// -0.661314 -0xAB5A -// -0.918537 -0x8A6D -// -0.925695 -0x8983 -// -0.611097 -0xB1C8 -// -0.030945 -0xFC0A -// 0.589481 -0x4B74 -// 0.915804 -0x7539 -// 0.695054 -0x58F8 -// -0.004498 -0xFF6D -// -0.712082 -0xA4DB -// -0.829765 -0x95CA -// -0.183298 -0xE88A -// 0.647457 -0x52E0 -// 0.765024 -0x61EC -// -0.024301 -0xFCE4 -// -0.770387 -0x9D64 -// -0.447708 -0xC6B1 -// 0.521104 -0x42B4 -// 0.650064 -0x5335 -// -0.298863 -0xD9BF -// -0.688210 -0xA7E9 -// 0.207648 -0x1A94 -// 0.656951 -0x5417 -// -0.253282 -0xDF94 -// -0.570816 -0xB6F0 -// 0.398647 -0x3307 -// 0.379176 -0x3089 -// -0.548368 -0xB9CF -// -0.036721 -0xFB4D -// 0.524152 -0x4317 -// -0.358152 -0xD228 +42 +// 1.000000 +0x7FFF +// 0.999967 +0x7FFF +// 0.999179 +0x7FE5 +// 0.992619 +0x7F0E +// 0.967844 +0x7BE2 +// 0.905465 +0x73E6 +// 0.781671 +0x640E +// 0.573956 +0x4977 +// 0.271292 +0x22BA +// -0.111634 +0xF1B6 +// -0.520097 +0xBD6D +// -0.853976 +0x92B1 +// -0.984530 +0x81FB +// -0.803940 +0x9918 +// -0.302224 +0xD951 +// 0.364419 +0x2EA5 +// 0.879807 +0x709E +// 0.907652 +0x742E +// 0.342546 +0x2BD9 +// -0.493059 +0xC0E3 +// -0.954641 +0x85CE +// -0.575596 +0xB653 +// 0.375151 +0x3005 +// 0.943276 +0x78BD +// 0.428907 +0x36E6 +// -0.626726 +0xAFC7 +// -0.849512 +0x9343 +// 0.147858 +0x12ED +// 0.920142 +0x75C7 +// 0.190200 +0x1858 +// -0.865797 +0x912E +// -0.331452 +0xD593 +// 0.836609 +0x6B16 +// 0.295245 +0x25CB +// -0.865316 +0x913D +// -0.082423 +0xF573 +// 0.875822 +0x701B +// -0.302978 +0xD938 +// -0.691427 +0xA77F +// 0.730160 +0x5D76 +// 0.141684 +0x1223 +// -0.982948 +0x822F diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Input1_q31.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Input1_q31.txt index 0ab532f7..19944c6d 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Input1_q31.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Input1_q31.txt @@ -1,82 +1,86 @@ W -40 -// 0.000244 -0x00080000 -// 0.000732 -0x00180000 -// 0.001221 -0x00280000 -// 0.001709 -0x00380000 -// 0.002197 -0x00480000 -// 0.002686 -0x00580000 -// 0.003174 -0x00680000 -// 0.003662 -0x00780000 -// 0.004150 -0x00880000 -// 0.004639 -0x00980000 -// 0.005127 -0x00A80000 -// 0.005615 -0x00B80000 -// 0.006104 -0x00C80000 -// 0.006592 -0x00D80000 -// 0.007080 -0x00E80000 -// 0.007568 -0x00F80000 -// 0.008057 -0x01080000 -// 0.008545 -0x01180000 -// 0.009033 -0x01280000 -// 0.009521 -0x01380000 -// 0.010010 -0x01480000 -// 0.010498 -0x01580000 -// 0.010986 -0x01680000 -// 0.011475 -0x01780000 -// 0.011963 -0x01880000 -// 0.012451 -0x01980000 -// 0.012939 -0x01A80000 -// 0.013428 -0x01B80000 -// 0.013916 -0x01C80000 -// 0.014404 -0x01D80000 -// 0.014893 -0x01E80000 -// 0.015381 -0x01F80000 -// 0.015869 -0x02080000 -// 0.016357 -0x02180000 -// 0.016846 -0x02280000 -// 0.017334 -0x02380000 -// 0.017822 -0x02480000 -// 0.018311 -0x02580000 -// 0.018799 -0x02680000 -// 0.019287 -0x02780000 +42 +// -0.000439 +0xFFF1999A +// 0.000049 +0x0001999A +// 0.000537 +0x0011999A +// 0.001025 +0x0021999A +// 0.001514 +0x0031999A +// 0.002002 +0x0041999A +// 0.002490 +0x0051999A +// 0.002979 +0x0061999A +// 0.003467 +0x0071999A +// 0.003955 +0x0081999A +// 0.004443 +0x0091999A +// 0.004932 +0x00A1999A +// 0.005420 +0x00B1999A +// 0.005908 +0x00C1999A +// 0.006396 +0x00D1999A +// 0.006885 +0x00E1999A +// 0.007373 +0x00F1999A +// 0.007861 +0x0101999A +// 0.008350 +0x0111999A +// 0.008838 +0x0121999A +// 0.009326 +0x0131999A +// 0.009814 +0x0141999A +// 0.010303 +0x0151999A +// 0.010791 +0x0161999A +// 0.011279 +0x0171999A +// 0.011768 +0x0181999A +// 0.012256 +0x0191999A +// 0.012744 +0x01A1999A +// 0.013232 +0x01B1999A +// 0.013721 +0x01C1999A +// 0.014209 +0x01D1999A +// 0.014697 +0x01E1999A +// 0.015186 +0x01F1999A +// 0.015674 +0x0201999A +// 0.016162 +0x0211999A +// 0.016650 +0x0221999A +// 0.017139 +0x0231999A +// 0.017627 +0x0241999A +// 0.018115 +0x0251999A +// 0.018604 +0x0261999A +// 0.019092 +0x0271999A +// 0.019824 +0x0289999A diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Reference1_q31.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Reference1_q31.txt index 503602f1..717aa634 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Reference1_q31.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ31/Reference1_q31.txt @@ -1,82 +1,86 @@ W -40 -// 0.999836 -0x7FFA9D47 -// 0.997208 -0x7FA483D7 -// 0.984118 -0x7DF792AA -// 0.945255 -0x78FE1AD3 -// 0.859251 -0x6DFBED5A -// 0.702426 -0x59E918D9 -// 0.456301 -0x3A681221 -// 0.119531 -0x0F4CC6E6 -// -0.277482 -0xDC7B74C7 -// -0.661314 -0xAB5A0CFB -// -0.918537 -0x8A6D613A -// -0.925695 -0x8982D786 -// -0.611097 -0xB1C79353 -// -0.030945 -0xFC0A0199 -// 0.589481 -0x4B7419C6 -// 0.915804 -0x753913C6 -// 0.695054 -0x58F7896E -// -0.004498 -0xFF6C984C -// -0.712082 -0xA4DA81BA -// -0.829765 -0x95CA42E6 -// -0.183298 -0xE889B3C1 -// 0.647457 -0x52DFDEA1 -// 0.765024 -0x61EC4FCA -// -0.024301 -0xFCE3B59E -// -0.770387 -0x9D63F365 -// -0.447708 -0xC6B17E22 -// 0.521104 -0x42B38BB9 -// 0.650064 -0x53354CCE -// -0.298863 -0xD9BED74A -// -0.688210 -0xA7E8B864 -// 0.207648 -0x1A9437BE -// 0.656951 -0x5416F502 -// -0.253282 -0xDF9474DD -// -0.570816 -0xB6EF8307 -// 0.398647 -0x3306DB70 -// 0.379176 -0x3088DA74 -// -0.548368 -0xB9CF17B9 -// -0.036721 -0xFB4CB84E -// 0.524152 -0x43176BFA -// -0.358152 -0xD2280F1C +42 +// 1.000000 +0x7FFFFFFF +// 0.999967 +0x7FFEEC41 +// 0.999179 +0x7FE51603 +// 0.992619 +0x7F0E27D5 +// 0.967844 +0x7BE24BEE +// 0.905465 +0x73E64706 +// 0.781671 +0x640DCF94 +// 0.573956 +0x497760C6 +// 0.271292 +0x22B9B470 +// -0.111634 +0xF1B5FC22 +// -0.520097 +0xBD6D7243 +// -0.853976 +0x92B0EBC0 +// -0.984530 +0x81FAEE5C +// -0.803940 +0x99187FD8 +// -0.302224 +0xD950BCDB +// 0.364419 +0x2EA54B2D +// 0.879807 +0x709D80C5 +// 0.907652 +0x742DF182 +// 0.342546 +0x2BD88AB9 +// -0.493059 +0xC0E36E27 +// -0.954641 +0x85CE5589 +// -0.575596 +0xB652E06F +// 0.375151 +0x3004F60D +// 0.943276 +0x78BD443E +// 0.428907 +0x36E66FB3 +// -0.626726 +0xAFC76E4A +// -0.849512 +0x93432DD9 +// 0.147858 +0x12ED0456 +// 0.920142 +0x75C739B9 +// 0.190200 +0x18587B95 +// -0.865797 +0x912D9338 +// -0.331452 +0xD592F709 +// 0.836609 +0x6B1604B4 +// 0.295245 +0x25CA987D +// -0.865316 +0x913D5412 +// -0.082423 +0xF5732A11 +// 0.875822 +0x701AF303 +// -0.302978 +0xD9380158 +// -0.691427 +0xA77F4E37 +// 0.730160 +0x5D75DFEE +// 0.141684 +0x1222B240 +// -0.982948 +0x822EC32F diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Input1_q31.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Input1_q31.txt index 0ab532f7..19944c6d 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Input1_q31.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Input1_q31.txt @@ -1,82 +1,86 @@ W -40 -// 0.000244 -0x00080000 -// 0.000732 -0x00180000 -// 0.001221 -0x00280000 -// 0.001709 -0x00380000 -// 0.002197 -0x00480000 -// 0.002686 -0x00580000 -// 0.003174 -0x00680000 -// 0.003662 -0x00780000 -// 0.004150 -0x00880000 -// 0.004639 -0x00980000 -// 0.005127 -0x00A80000 -// 0.005615 -0x00B80000 -// 0.006104 -0x00C80000 -// 0.006592 -0x00D80000 -// 0.007080 -0x00E80000 -// 0.007568 -0x00F80000 -// 0.008057 -0x01080000 -// 0.008545 -0x01180000 -// 0.009033 -0x01280000 -// 0.009521 -0x01380000 -// 0.010010 -0x01480000 -// 0.010498 -0x01580000 -// 0.010986 -0x01680000 -// 0.011475 -0x01780000 -// 0.011963 -0x01880000 -// 0.012451 -0x01980000 -// 0.012939 -0x01A80000 -// 0.013428 -0x01B80000 -// 0.013916 -0x01C80000 -// 0.014404 -0x01D80000 -// 0.014893 -0x01E80000 -// 0.015381 -0x01F80000 -// 0.015869 -0x02080000 -// 0.016357 -0x02180000 -// 0.016846 -0x02280000 -// 0.017334 -0x02380000 -// 0.017822 -0x02480000 -// 0.018311 -0x02580000 -// 0.018799 -0x02680000 -// 0.019287 -0x02780000 +42 +// -0.000439 +0xFFF1999A +// 0.000049 +0x0001999A +// 0.000537 +0x0011999A +// 0.001025 +0x0021999A +// 0.001514 +0x0031999A +// 0.002002 +0x0041999A +// 0.002490 +0x0051999A +// 0.002979 +0x0061999A +// 0.003467 +0x0071999A +// 0.003955 +0x0081999A +// 0.004443 +0x0091999A +// 0.004932 +0x00A1999A +// 0.005420 +0x00B1999A +// 0.005908 +0x00C1999A +// 0.006396 +0x00D1999A +// 0.006885 +0x00E1999A +// 0.007373 +0x00F1999A +// 0.007861 +0x0101999A +// 0.008350 +0x0111999A +// 0.008838 +0x0121999A +// 0.009326 +0x0131999A +// 0.009814 +0x0141999A +// 0.010303 +0x0151999A +// 0.010791 +0x0161999A +// 0.011279 +0x0171999A +// 0.011768 +0x0181999A +// 0.012256 +0x0191999A +// 0.012744 +0x01A1999A +// 0.013232 +0x01B1999A +// 0.013721 +0x01C1999A +// 0.014209 +0x01D1999A +// 0.014697 +0x01E1999A +// 0.015186 +0x01F1999A +// 0.015674 +0x0201999A +// 0.016162 +0x0211999A +// 0.016650 +0x0221999A +// 0.017139 +0x0231999A +// 0.017627 +0x0241999A +// 0.018115 +0x0251999A +// 0.018604 +0x0261999A +// 0.019092 +0x0271999A +// 0.019824 +0x0289999A diff --git a/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Reference1_q7.txt b/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Reference1_q7.txt index 036d961d..1d394113 100755 --- a/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Reference1_q7.txt +++ b/Testing/Patterns/DSP/Interpolation/InterpolationQ7/Reference1_q7.txt @@ -1,82 +1,86 @@ B -40 -// 0.999836 +42 +// 1.000000 0x7F -// 0.997208 +// 0.999967 0x7F -// 0.984118 -0x7E -// 0.945255 +// 0.999179 +0x7F +// 0.992619 +0x7F +// 0.967844 +0x7C +// 0.905465 +0x74 +// 0.781671 +0x64 +// 0.573956 +0x49 +// 0.271292 +0x23 +// -0.111634 +0xF2 +// -0.520097 +0xBD +// -0.853976 +0x93 +// -0.984530 +0x82 +// -0.803940 +0x99 +// -0.302224 +0xD9 +// 0.364419 +0x2F +// 0.879807 +0x71 +// 0.907652 +0x74 +// 0.342546 +0x2C +// -0.493059 +0xC1 +// -0.954641 +0x86 +// -0.575596 +0xB6 +// 0.375151 +0x30 +// 0.943276 0x79 -// 0.859251 -0x6E -// 0.702426 -0x5A -// 0.456301 -0x3A -// 0.119531 -0x0F -// -0.277482 -0xDC -// -0.661314 -0xAB -// -0.918537 -0x8A -// -0.925695 -0x8A -// -0.611097 -0xB2 -// -0.030945 -0xFC -// 0.589481 -0x4B -// 0.915804 -0x75 -// 0.695054 -0x59 -// -0.004498 -0xFF -// -0.712082 -0xA5 -// -0.829765 -0x96 -// -0.183298 -0xE9 -// 0.647457 -0x53 -// 0.765024 -0x62 -// -0.024301 -0xFD -// -0.770387 -0x9D -// -0.447708 -0xC7 -// 0.521104 -0x43 -// 0.650064 -0x53 -// -0.298863 -0xDA -// -0.688210 -0xA8 -// 0.207648 -0x1B -// 0.656951 -0x54 -// -0.253282 -0xE0 -// -0.570816 -0xB7 -// 0.398647 -0x33 -// 0.379176 -0x31 -// -0.548368 -0xBA -// -0.036721 -0xFB -// 0.524152 -0x43 -// -0.358152 -0xD2 +// 0.428907 +0x37 +// -0.626726 +0xB0 +// -0.849512 +0x93 +// 0.147858 +0x13 +// 0.920142 +0x76 +// 0.190200 +0x18 +// -0.865797 +0x91 +// -0.331452 +0xD6 +// 0.836609 +0x6B +// 0.295245 +0x26 +// -0.865316 +0x91 +// -0.082423 +0xF5 +// 0.875822 +0x70 +// -0.302978 +0xD9 +// -0.691427 +0xA7 +// 0.730160 +0x5D +// 0.141684 +0x12 +// -0.982948 +0x82 diff --git a/Testing/Source/Tests/InterpolationTestsF16.cpp b/Testing/Source/Tests/InterpolationTestsF16.cpp index 088260d1..ac305144 100755 --- a/Testing/Source/Tests/InterpolationTestsF16.cpp +++ b/Testing/Source/Tests/InterpolationTestsF16.cpp @@ -2,7 +2,7 @@ #include #include "Error.h" -#define SNR_THRESHOLD 55 +#define SNR_THRESHOLD 44 /* @@ -11,8 +11,8 @@ a double precision computation. */ -#define REL_ERROR (5.0e-3) -#define ABS_ERROR (5.0e-3) +#define REL_ERROR (6.0e-3) +#define ABS_ERROR (7.0e-3) diff --git a/Testing/Source/Tests/InterpolationTestsF32.cpp b/Testing/Source/Tests/InterpolationTestsF32.cpp index 42a3c8f9..790ce940 100755 --- a/Testing/Source/Tests/InterpolationTestsF32.cpp +++ b/Testing/Source/Tests/InterpolationTestsF32.cpp @@ -2,7 +2,7 @@ #include #include "Error.h" -#define SNR_THRESHOLD 120 +#define SNR_THRESHOLD 119 /*