summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 52adc98)
raw | patch | inline | side by side (parent: 52adc98)
author | Jianzhong Xu <xuj@ti.com> | |
Fri, 8 Mar 2019 21:22:42 +0000 (16:22 -0500) | ||
committer | Jianzhong Xu <xuj@ti.com> | |
Fri, 8 Mar 2019 21:22:42 +0000 (16:22 -0500) |
- PROC_LIBS-282: Incorrect indexing in the DSPF_sp_fircirc
- PROC_LIBS-222: Example fft_sp_ex in dsplib_c66x_3_4_0_0 does not give correct results
- PRSDK-5250: Missing DSPF_sp_fftSPxSP_r2c result in DSPLIB test report
Signed-off-by: Jianzhong Xu <xuj@ti.com>
- PROC_LIBS-222: Example fft_sp_ex in dsplib_c66x_3_4_0_0 does not give correct results
- PRSDK-5250: Missing DSPF_sp_fftSPxSP_r2c result in DSPLIB test report
Signed-off-by: Jianzhong Xu <xuj@ti.com>
diff --git a/ti/dsplib/docs/bundle/DSPLIB_C66x_TestReport.html b/ti/dsplib/docs/bundle/DSPLIB_C66x_TestReport.html
index af8019dd2263f7fc838dc6a16f18192fe9759ca6..62d54bfacd47499443001c02d8ab9760cd6a19dc 100644 (file)
</tr>
<tr align="center">
- <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP</td>
+ <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP_r2c</td>
<td bgcolor="#66CC66">Passed</td>
<td align="right" bgcolor="#ffffff"> 579 (N=128) 1136 (N=256)</td>
<td align="left">N/A</td>
</tr>
<tr align="center">
- <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP</td>
+ <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP_r2c</td>
<td bgcolor="#66CC66">Passed</td>
<td align="right" bgcolor="#ffffff"> 579 (N=128) 1136 (N=256)</td>
<td align="left">N/A</td>
</tr>
<tr align="center">
- <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP</td>
+ <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP_r2c</td>
<td bgcolor="#66CC66">Passed</td>
<td align="right" bgcolor="#ffffff"> 590 (N=128) 1144 (N=256)</td>
<td align="left">N/A</td>
</tr>
<tr align="center">
- <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP</td>
+ <td align="left" bgcolor="#ffffff">DSPF_sp_fftSPxSP_r2c</td>
<td bgcolor="#66CC66">Passed</td>
<td align="right" bgcolor="#ffffff"> 590 (N=128) 1144 (N=256)</td>
<td align="left">N/A</td>
diff --git a/ti/dsplib/docs/bundle/doxygen/release.h.xdt b/ti/dsplib/docs/bundle/doxygen/release.h.xdt
index a51781a268c3e28e9220648a2f7cabc595536d15..3bf72eac1f88f71702797f0625b5cdf6d8d11e8a 100644 (file)
* <hr size="2" width="50%" align="left">
*
* <h2><a name="Bugs_Fixed">Fixed Bugs</a></h2>
- * No bugs were fixed in this release.
+ * <ul>
+ * <li> PROC_LIBS-282: Incorrect indexing in the DSPF_sp_fircirc
+ * <li> PROC_LIBS-222: Example fft_sp_ex in dsplib_c66x_3_4_0_0 does not give correct results
+ * <li> PRSDK-5250: Missing DSPF_sp_fftSPxSP_r2c result in DSPLIB test report
+ * </ul>
*
*
* <hr size="2" width="50%" align="left">
index 20fbe148f10952042be9c0ac98e814b4795844b2..fc9a500a04cc785eb89e3074fb7f7f8e51af5e30 100644 (file)
-->
<product>
<name>DSPLIB Package</name>
- <version>3.4.0.2</version>
+ <version>3.4.0.3</version>
<eccn_software>Publicly Available</eccn_software>
<eccn_technology>Publicly Available</eccn_technology>
<description>The TI C6000 DSPLIB is an optimized DSP Function Library for C programmers</description>
-->
<package>
<name>Digital Signal Processing library</name>
- <version>3.4.0.2</version>
+ <version>3.4.0.3</version>
<license>TI BSD</license>
<format>Source</format>
<modified>N/A</modified>
diff --git a/ti/dsplib/examples/fft_sp_ex/fft_example_sp.c b/ti/dsplib/examples/fft_sp_ex/fft_example_sp.c
index 457a25de1501dbf3e229adf22d8db14f952bbd27..0646512e92b4893f327192be9e949b8934b7f1c8 100644 (file)
void gen_twiddle_fft_sp (float *w, int n)
{
int i, j, k;
- double x_t, y_t, theta1, theta2, theta3;
const double PI = 3.141592654;
for (j = 1, k = 0; j <= n >> 2; j = j << 2)
{
for (i = 0; i < n >> 2; i += j)
{
- theta1 = 2 * PI * i / n;
- x_t = cos (theta1);
- y_t = sin (theta1);
- w[k] = (float) x_t;
- w[k + 1] = (float) y_t;
-
- theta2 = 4 * PI * i / n;
- x_t = cos (theta2);
- y_t = sin (theta2);
- w[k + 2] = (float) x_t;
- w[k + 3] = (float) y_t;
-
- theta3 = 6 * PI * i / n;
- x_t = cos (theta3);
- y_t = sin (theta3);
- w[k + 4] = (float) x_t;
- w[k + 5] = (float) y_t;
+#ifdef _LITTLE_ENDIAN
+ w[k] = (float) sin (2 * PI * i / n);
+ w[k + 1] = (float) cos (2 * PI * i / n);
+ w[k + 2] = (float) sin (4 * PI * i / n);
+ w[k + 3] = (float) cos (4 * PI * i / n);
+ w[k + 4] = (float) sin (6 * PI * i / n);
+ w[k + 5] = (float) cos (6 * PI * i / n);
+#else
+ w[k] = (float) cos (2 * PI * i / n);
+ w[k + 1] = (float) -sin (2 * PI * i / n);
+ w[k + 2] = (float) cos (4 * PI * i / n);
+ w[k + 3] = (float) -sin (4 * PI * i / n);
+ w[k + 4] = (float) cos (6 * PI * i / n);
+ w[k + 5] = (float) -sin (6 * PI * i / n);
+#endif
k += 6;
}
}
diff --git a/ti/dsplib/package.bld b/ti/dsplib/package.bld
index f26e9d2ebd19a15ea2ba37fcbbdd8b5271131e00..a218f2cab011895cbb05f57702efb753dc6a64fc 100644 (file)
--- a/ti/dsplib/package.bld
+++ b/ti/dsplib/package.bld
/* Set up version number for the package */
Package.pkgStdVer = "2.0";
- Package.version = [3, 4, 0, 2, 3, 0];
+ Package.version = [3, 4, 0, 3, 3, 0];
Package.createVersion();
diff --git a/ti/dsplib/src/DSPF_sp_fftSPxSP_r2c/c66/DSPF_sp_fftSPxSP_r2c_d.c b/ti/dsplib/src/DSPF_sp_fftSPxSP_r2c/c66/DSPF_sp_fftSPxSP_r2c_d.c
index 592733959b23b6393357460174dcb50b7e42fb13..cbdde6900cd66318dcda6a70afc1e7e9276b953e 100644 (file)
tw_gen (ptr_w_i, N);
tw_gen_cn (ptr_w_cn, N);
- printf("DSPF_sp_fftSPxSP\tIter#: %d\t", k);
+ printf("DSPF_sp_fftSPxSP_r2c\tIter#: %d\t", k);
t_start = _itoll(TSCH, TSCL);
DSPF_sp_fftSPxSP_r2c_cn (N, &ptr_x_cn[0], &ptr_w_cn[0], ptr_y_cn, brev, rad_cn, 0, N);
t_stop = _itoll(TSCH, TSCL);
diff --git a/ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc.c b/ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc.c
index a734ebabec5b2d87c6142ccf2e368f68c3098b94..e0656585f23cecd5b0147ef292aeffd9e494baad 100644 (file)
int i, j;
/* Circular Buffer block size = ((2^(csize + 1)) / 4) floating point numbers */
int mod = (1 << (csize - 1)) - 1;
- float *x_ptr = (float*)&x[index];
__float2_t x_10, x_21, x_32, x_43, x_54, h_10;
__float2_t sum1, sum2, sum3, sum4;
sum3 = 0;
sum4 = 0;
- x_10 = _amem8_f2_const(&x_ptr[(i) & (mod)]);
- x_32 = _amem8_f2_const(&x_ptr[(i+2) & (mod)]);
+ x_10 = _amem8_f2_const(&x[(j+index) & (mod)]);
+ x_32 = _amem8_f2_const(&x[(j+2+index) & (mod)]);
x_21 = _ftof2(_lof2(x_32), _hif2(x_10));
/* note: h coeffs given in reverse order: { h[nh-1], h[nh-2], ..., h[0] } */
#pragma MUST_ITERATE(1,,)
for(i = 0; i < nh; i+=2) {
h_10 = _amem8_f2_const(&h[i]);
- x_54 = _amem8_f2_const(&x_ptr[(i+4) & (mod)]);
+ x_54 = _amem8_f2_const(&x[(j+i+4+index) & (mod)]);
x_43 = _ftof2(_lof2(x_54), _hif2(x_32));
sum1 = _daddsp(sum1, _dmpysp(x_10, h_10));
int i, j;
/* Circular Buffer block size = ((2^(csize + 1)) / 4) floating point numbers */
int mod = (1 << (csize - 1)) - 1;
- float *x_ptr = (float*)&x[index];
__float2_t x_01, x_12, x_23, x_34, x_45, h_01;
__float2_t sum1, sum2, sum3, sum4;
sum3 = 0;
sum4 = 0;
- x_01 = _amem8_f2_const(&x_ptr[(i) & (mod)]);
- x_23 = _amem8_f2_const(&x_ptr[(i+2) & (mod)]);
+ x_01 = _amem8_f2_const(&x[(j+index) & (mod)]);
+ x_23 = _amem8_f2_const(&x[(j+2+index) & (mod)]);
x_12 = _ftof2(_lof2(x_01), _hif2(x_23));
/* note: h coeffs given in reverse order: { h[nh-1], h[nh-2], ..., h[0] } */
#pragma MUST_ITERATE(1,,)
for(i = 0; i < nh; i+=2) {
h_01 = _amem8_f2_const(&h[i]);
- x_45 = _amem8_f2_const(&x_ptr[(i+4) & (mod)]);
+ x_45 = _amem8_f2_const(&x[(j+i+4+index) & (mod)]);
x_34 = _ftof2(_lof2(x_23), _hif2(x_45));
sum1 = _daddsp(sum1, _dmpysp(x_01, h_01));
/* Copyright (c) 2011 Texas Instruments, Incorporated. */
/* All Rights Reserved. */
/* ======================================================================= */
-
diff --git a/ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc_d.c b/ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc_d.c
index 155abb4f5db8fceb21469841be923d91ff2ab627..c259ee48af505ef3900f8c6957fa3089a3bc3200 100644 (file)
/* --------------------------------------------------------------- */
for(i=0; i< ny; i++) {
pct_diff = 0;
- if (abs((ptr_y_i[i]) > FLT_THRES) || (abs(ptr_y_cn[i]) > FLT_THRES))
+ if ((abs(ptr_y_i[i]) > FLT_THRES) || (abs(ptr_y_cn[i]) > FLT_THRES))
pct_diff = (ptr_y_cn[i] - ptr_y_i[i]) / ptr_y_cn[i] * 100.0;
if (pct_diff < 0) pct_diff *= -1;
if (pct_diff > max_pct_diff) max_pct_diff = pct_diff;
diff --git a/ti/dsplib/src/DSPF_sp_fircirc/c674/DSPF_sp_fircirc_d.c b/ti/dsplib/src/DSPF_sp_fircirc/c674/DSPF_sp_fircirc_d.c
index 97537dd13daac3fa58917d92a8de18ead578a36f..dc043aecba2dee7a49aef16c79452036fd1614f1 100644 (file)
/* --------------------------------------------------------------- */
for(i=0; i< ny; i++) {
pct_diff = 0;
- if (abs((ptr_y_i[i]) > FLT_THRES) || (abs(ptr_y_cn[i]) > FLT_THRES))
+ if ((abs(ptr_y_i[i]) > FLT_THRES) || (abs(ptr_y_cn[i]) > FLT_THRES))
pct_diff = (ptr_y_cn[i] - ptr_y_i[i]) / ptr_y_cn[i] * 100.0;
if (pct_diff < 0) pct_diff *= -1;
if (pct_diff > max_pct_diff) max_pct_diff = pct_diff;