[Scipy-svn] r5485 - trunk/scipy/fftpack/src
scipy-svn at scipy.org
scipy-svn at scipy.org
Sun Jan 18 06:25:24 EST 2009
Author: cdavid
Date: 2009-01-18 05:25:15 -0600 (Sun, 18 Jan 2009)
New Revision: 5485
Modified:
trunk/scipy/fftpack/src/dct.c.src
Log:
Support normalization for dct type III.
Modified: trunk/scipy/fftpack/src/dct.c.src
===================================================================
--- trunk/scipy/fftpack/src/dct.c.src 2009-01-18 11:24:57 UTC (rev 5484)
+++ trunk/scipy/fftpack/src/dct.c.src 2009-01-18 11:25:15 UTC (rev 5485)
@@ -113,24 +113,37 @@
void @pref at dct3(@type@ * inout, int n, int howmany, int normalize)
{
- int i;
+ int i, j;
@type@ *ptr = inout;
@type@ *wsave = NULL;
+ @type@ n1, n2;
wsave = caches_ at pref@dct2[get_cache_id_ at pref@dct2(n)].wsave;
- for (i = 0; i < howmany; ++i, ptr += n) {
- @pref at cosqf_(&n, ptr, wsave);
-
- }
-
switch (normalize) {
case DCT_NORMALIZE_NO:
break;
+ case DCT_NORMALIZE_ORTHONORMAL:
+ n1 = sqrt(1./n);
+ n2 = sqrt(0.5/n);
+ for (i = 0; i < howmany; ++i, ptr+=n) {
+ ptr[0] *= n1;
+ for (j = 1; j < n; ++j) {
+ ptr[j] *= n2;
+ }
+ }
+ break;
default:
fprintf(stderr, "dct3: normalize not yet supported=%d\n",
normalize);
break;
}
+
+ ptr = inout;
+ for (i = 0; i < howmany; ++i, ptr += n) {
+ @pref at cosqf_(&n, ptr, wsave);
+
+ }
+
}
/**end repeat**/
More information about the Scipy-svn
mailing list