2
! Author: Pearu Peterson, August 2002
7
subroutine zfft(x,n,direction,howmany,normalize)
8
! y = fft(x[,n,direction,normalize,overwrite_x])
10
complex*16 intent(c,in,out,copy,out=y) :: x(*)
11
integer optional,depend(x),intent(c,in) :: n=size(x)
13
integer depend(x,n),intent(c,hide) :: howmany = size(x)/n
14
check(n*howmany==size(x)) howmany
15
integer optional,intent(c,in) :: direction = 1
16
integer optional,intent(c,in),depend(direction) &
17
:: normalize = (direction<0)
20
subroutine drfft(x,n,direction,howmany,normalize)
21
! y = drfft(x[,n,direction,normalize,overwrite_x])
23
real*8 intent(c,in,out,copy,out=y) :: x(*)
24
integer optional,depend(x),intent(c,in) :: n=size(x)
25
check(n>0&&n<=size(x)) n
26
integer depend(x,n),intent(c,hide) :: howmany = size(x)/n
27
check(n*howmany==size(x)) howmany
28
integer optional,intent(c,in) :: direction = 1
29
integer optional,intent(c,in),depend(direction) &
30
:: normalize = (direction<0)
33
subroutine zrfft(x,n,direction,howmany,normalize)
34
! y = zrfft(x[,n,direction,normalize,overwrite_x])
36
complex*16 intent(c,in,out,overwrite,out=y) :: x(*)
37
integer optional,depend(x),intent(c,in) :: n=size(x)
38
check(n>0&&n<=size(x)) n
39
integer depend(x,n),intent(c,hide) :: howmany = size(x)/n
40
check(n*howmany==size(x)) howmany
41
integer optional,intent(c,in) :: direction = 1
42
integer optional,intent(c,in),depend(direction) &
43
:: normalize = (direction<0)
46
subroutine zfftnd(x,r,s,direction,howmany,normalize,j)
47
! y = zfftnd(x[,s,direction,normalize,overwrite_x])
49
complex*16 intent(c,in,out,copy,out=y) :: x(*)
50
integer intent(c,hide),depend(x) :: r=old_rank(x)
51
integer intent(c,hide) :: j=0
52
integer optional,depend(r),dimension(r),intent(c,in) &
55
integer intent(c,hide) :: howmany = 1
56
integer optional,intent(c,in) :: direction = 1
57
integer optional,intent(c,in),depend(direction) :: &
58
normalize = (direction<0)
59
callprotoargument complex_double*,int,int*,int,int,int
61
int i,sz=1,xsz=size(x); &
62
for (i=0;i<r;++i) sz *= s[i]; &
64
if (sz*howmany==xsz) &
65
(*f2py_func)(x,r,s,direction,howmany,normalize); &
68
PyErr_SetString(_fftpack_error, &
69
"inconsistency in x.shape and s argument"); &
74
subroutine destroy_zfft_cache()
75
intent(c) destroy_zfft_cache
76
end subroutine destroy_zfft_cache
78
subroutine destroy_zfftnd_cache()
79
intent(c) destroy_zfftnd_cache
80
end subroutine destroy_zfftnd_cache
82
subroutine destroy_drfft_cache()
83
intent(c) destroy_drfft_cache
84
end subroutine destroy_drfft_cache
87
end python module _fftpack
89
! See http://cens.ioc.ee/projects/f2py2e/