]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ep-processor-libraries/dsplib.git/commitdiff
Fixed following bugs:
authorJianzhong Xu <xuj@ti.com>
Fri, 8 Mar 2019 21:22:42 +0000 (16:22 -0500)
committerJianzhong 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>
ti/dsplib/docs/bundle/DSPLIB_C66x_TestReport.html
ti/dsplib/docs/bundle/doxygen/release.h.xdt
ti/dsplib/docs/manifest/manifest.xml
ti/dsplib/examples/fft_sp_ex/fft_example_sp.c
ti/dsplib/package.bld
ti/dsplib/src/DSPF_sp_fftSPxSP_r2c/c66/DSPF_sp_fftSPxSP_r2c_d.c
ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc.c
ti/dsplib/src/DSPF_sp_fircirc/c66/DSPF_sp_fircirc_d.c
ti/dsplib/src/DSPF_sp_fircirc/c674/DSPF_sp_fircirc_d.c

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>
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)
@@ -57,7 +57,7 @@
         -->
        <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>
@@ -71,7 +71,7 @@
         -->
        <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>
index 457a25de1501dbf3e229adf22d8db14f952bbd27..0646512e92b4893f327192be9e949b8934b7f1c8 100644 (file)
@@ -151,30 +151,27 @@ seperateRealImg () {
 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;
         }
     }
index f26e9d2ebd19a15ea2ba37fcbbdd8b5271131e00..a218f2cab011895cbb05f57702efb753dc6a64fc 100644 (file)
@@ -965,7 +965,7 @@ Package.archiveFiles["CommonArchiveFiles"] = {
 
     /* 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();
 
index 592733959b23b6393357460174dcb50b7e42fb13..cbdde6900cd66318dcda6a70afc1e7e9276b953e 100644 (file)
@@ -180,7 +180,7 @@ int main ()
         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);
index a734ebabec5b2d87c6142ccf2e368f68c3098b94..e0656585f23cecd5b0147ef292aeffd9e494baad 100644 (file)
@@ -51,7 +51,6 @@ void DSPF_sp_fircirc(const float *x, float *h, float *restrict y,
     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;
 
@@ -71,15 +70,15 @@ void DSPF_sp_fircirc(const float *x, float *h, float *restrict y,
         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));
@@ -102,7 +101,6 @@ void DSPF_sp_fircirc(const float *x, float *h, float *restrict y,
     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;
 
@@ -122,15 +120,15 @@ void DSPF_sp_fircirc(const float *x, float *h, float *restrict y,
         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));
@@ -153,4 +151,3 @@ void DSPF_sp_fircirc(const float *x, float *h, float *restrict y,
 /*            Copyright (c) 2011 Texas Instruments, Incorporated.          */
 /*                           All Rights Reserved.                          */
 /* ======================================================================= */
-
index 155abb4f5db8fceb21469841be923d91ff2ab627..c259ee48af505ef3900f8c6957fa3089a3bc3200 100644 (file)
@@ -156,7 +156,7 @@ void main()
         /* --------------------------------------------------------------- */
         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;
index 97537dd13daac3fa58917d92a8de18ead578a36f..dc043aecba2dee7a49aef16c79452036fd1614f1 100644 (file)
@@ -156,7 +156,7 @@ void main()
         /* --------------------------------------------------------------- */
         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;