aboutsummaryrefslogtreecommitdiff
path: root/test_pffastconv.c
diff options
context:
space:
mode:
authorhayati ayguen <h_ayguen@web.de>2020-02-28 19:57:30 +0100
committerhayati ayguen <h_ayguen@web.de>2020-02-29 08:49:58 +0100
commite6cffc91b0a454507277d44a853c013ee9854fb2 (patch)
tree8bb3c7b12ab9fb0434013d64566a9fd13ba9a23c /test_pffastconv.c
parent3dab35c0c95c7279b29b58d04f6e144fd880dca2 (diff)
downloadpffft-e6cffc91b0a454507277d44a853c013ee9854fb2.tar.gz
minor additions and bugfix convolution benchmark
* added pffft_zconvolve_no_accu() * added pffft_min_fft_size() * pffft_next_power_of_two(), pffft_is_power_of_two() * added option PFFASTCONV_CORRELATION * fixed calculation of procSmpPerSec[] in test_pffastconv.c * minor test additions Signed-off-by: hayati ayguen <h_ayguen@web.de>
Diffstat (limited to 'test_pffastconv.c')
-rw-r--r--test_pffastconv.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/test_pffastconv.c b/test_pffastconv.c
index 58d1f8c..5de9336 100644
--- a/test_pffastconv.c
+++ b/test_pffastconv.c
@@ -96,21 +96,6 @@
-
-unsigned nextPowerOfTwo(unsigned v) {
- /* https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 */
- /* compute the next highest power of 2 of 32-bit v */
- v--;
- v |= v >> 1;
- v |= v >> 2;
- v |= v >> 4;
- v |= v >> 8;
- v |= v >> 16;
- v++;
- return v;
-}
-
-
typedef int (*pfnConvolution) (void * setup, const float * X, int len, float *Y, const float *Yref, int applyFlush);
typedef void* (*pfnConvSetup) (float *Hfwd, int Nf, int * BlkLen, int flags);
typedef pfnConvolution (*pfnGetConvFnPtr) (void * setup);
@@ -697,6 +682,7 @@ int test(int FILTERLEN, int convFlags, const int testOutLen, int printDbg, int p
else
Y[i] = Y[1];
+ Y[i][0] = 123.F; /* test for pffft_zconvolve_no_accu() */
aSpeedFactor[i] = -1.0;
aDuration[i] = -1.0;
procSmpPerSec[i] = -1.0;
@@ -813,7 +799,7 @@ int test(int FILTERLEN, int convFlags, const int testOutLen, int printDbg, int p
} while ( t1 < tstop );
outN[yi] += offC;
td = t1 - t0;
- procSmpPerSec[yi] = cplxFactor * (double)offC / td;
+ procSmpPerSec[yi] = cplxFactor * (double)outN[yi] / td;
}
}
else
@@ -914,8 +900,8 @@ int test(int FILTERLEN, int convFlags, const int testOutLen, int printDbg, int p
{
if (!aRunAlgo[yc] || procSmpPerSec[yc] <= 0.0)
continue;
- printf("algo '%s':\t%.2f MSmp\tin\t%.1f ms\t= %g SmpPerSec\n",
- convText[yc], (double)outN[yc]/(1000.0 * 1000.0), 1000.0 * aDuration[yc], procSmpPerSec[yc] );
+ printf("algo '%s':\t%.2f MSmp\tin\t%.1f ms\t= %g kSmpPerSec\n",
+ convText[yc], (double)outN[yc]/(1000.0 * 1000.0), 1000.0 * aDuration[yc], procSmpPerSec[yc] * 0.001 );
}
}