[Scipy-svn] r5490 - trunk/scipy/fftpack
scipy-svn at scipy.org
scipy-svn at scipy.org
Sun Jan 18 06:26:53 EST 2009
Author: cdavid
Date: 2009-01-18 05:26:47 -0600 (Sun, 18 Jan 2009)
New Revision: 5490
Modified:
trunk/scipy/fftpack/fftpack.pyf
trunk/scipy/fftpack/realtransforms.py
Log:
Handle single precision DCT.
Modified: trunk/scipy/fftpack/fftpack.pyf
===================================================================
--- trunk/scipy/fftpack/fftpack.pyf 2009-01-18 11:26:28 UTC (rev 5489)
+++ trunk/scipy/fftpack/fftpack.pyf 2009-01-18 11:26:47 UTC (rev 5490)
@@ -196,6 +196,28 @@
integer optional,intent(c,in) :: normalize = 0
end subroutine ddct3
+ subroutine dct2(x,n,howmany,normalize)
+ ! y = dct2(x[,n,normalize,overwrite_x])
+ intent(c) dct2
+ real*4 intent(c,in,out,copy,out=y) :: x(*)
+ integer optional,depend(x),intent(c,in) :: n=size(x)
+ check(n>0&&n<=size(x)) n
+ integer depend(x,n),intent(c,hide) :: howmany = size(x)/n
+ check(n*howmany==size(x)) howmany
+ integer optional,intent(c,in) :: normalize = 0
+ end subroutine dct2
+
+ subroutine dct3(x,n,howmany,normalize)
+ ! y = dct3(x[,n,normalize,overwrite_x])
+ intent(c) dct3
+ real*4 intent(c,in,out,copy,out=y) :: x(*)
+ integer optional,depend(x),intent(c,in) :: n=size(x)
+ check(n>0&&n<=size(x)) n
+ integer depend(x,n),intent(c,hide) :: howmany = size(x)/n
+ check(n*howmany==size(x)) howmany
+ integer optional,intent(c,in) :: normalize = 0
+ end subroutine dct3
+
subroutine destroy_ddct2_cache()
intent(c) destroy_ddct2_cache
end subroutine destroy_ddct2_cache
@@ -204,6 +226,14 @@
intent(c) destroy_ddct1_cache
end subroutine destroy_ddct1_cache
+ subroutine destroy_dct2_cache()
+ intent(c) destroy_dct2_cache
+ end subroutine destroy_dct2_cache
+
+ subroutine destroy_dct1_cache()
+ intent(c) destroy_dct1_cache
+ end subroutine destroy_dct1_cache
+
end interface
end python module _fftpack
Modified: trunk/scipy/fftpack/realtransforms.py
===================================================================
--- trunk/scipy/fftpack/realtransforms.py 2009-01-18 11:26:28 UTC (rev 5489)
+++ trunk/scipy/fftpack/realtransforms.py 2009-01-18 11:26:47 UTC (rev 5490)
@@ -155,14 +155,26 @@
else:
raise NotImplemented("Padding/truncating not yet implemented")
- if type == 1:
- f = _fftpack.ddct1
- elif type == 2:
- f = _fftpack.ddct2
- elif type == 3:
- f = _fftpack.ddct3
+ if tmp.dtype == np.double:
+ if type == 1:
+ f = _fftpack.ddct1
+ elif type == 2:
+ f = _fftpack.ddct2
+ elif type == 3:
+ f = _fftpack.ddct3
+ else:
+ raise ValueError("Type %d not understood" % type)
+ elif tmp.dtype == np.float32:
+ if type == 1:
+ f = _fftpack.dct1
+ elif type == 2:
+ f = _fftpack.dct2
+ elif type == 3:
+ f = _fftpack.dct3
+ else:
+ raise ValueError("Type %d not understood" % type)
else:
- raise ValueError("Type %d not understood" % type)
+ raise ValueError("dtype %s not supported" % tmp.dtype)
if normalize:
if normalize == "ortho":
More information about the Scipy-svn
mailing list