GNU Octave
3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
liboctave
cruft
fftpack
cffti1.f
Go to the documentation of this file.
1
subroutine
cffti1
(n,wa,ifac)
2
dimension
wa(*) ,ifac(*) ,ntryh(4)
3
data
ntryh(1),ntryh(2),ntryh(3),ntryh(4)/3,4,2,5/
4
nl = n
5
nf = 0
6
j = 0
7
101 j = j+1
8
if
(j-4) 102,102,103
9
102 ntry = ntryh(j)
10
go to 104
11
103 ntry = ntry+2
12
104 nq = nl/ntry
13
nr = nl-ntry*nq
14
if
(nr) 101,105,101
15
105 nf = nf+1
16
ifac(nf+2) = ntry
17
nl = nq
18
if
(ntry .ne. 2) go to 107
19
if
(nf .eq. 1) go to 107
20
do
106 i=2,nf
21
ib = nf-i+2
22
ifac(ib+2) = ifac(ib+1)
23
106
continue
24
ifac(3) = 2
25
107
if
(nl .ne. 1) go to 104
26
ifac(1) = n
27
ifac(2) = nf
28
tpi = 6.28318530717959
29
argh = tpi/dble(n)
30
i = 2
31
l1 = 1
32
do
110 k1=1,nf
33
ip = ifac(k1+2)
34
ld = 0
35
l2 = l1*ip
36
ido = n/l2
37
idot = ido+ido+2
38
ipm = ip-1
39
do
109 j=1,ipm
40
i1 = i
41
wa(i-1) = 1.
42
wa(i) = 0.
43
ld = ld+l1
44
fi
= 0.
45
argld = dble(ld)*argh
46
do
108 ii=4,idot,2
47
i = i+2
48
fi
=
fi
+1.
49
arg
=
fi
*argld
50
wa(i-1) =
cos
(
arg
)
51
wa(i) =
sin
(
arg
)
52
108
continue
53
if
(ip .le. 5) go to 109
54
wa(i1-1) = wa(i-1)
55
wa(i1) = wa(i)
56
109
continue
57
l1 = l2
58
110
continue
59
return
60
end
Generated on Mon Dec 30 2013 03:04:46 for GNU Octave by
1.8.1.2