GNU Octave  3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
cfftf1.f
Go to the documentation of this file.
1  subroutine cfftf1 (n,c,ch,wa,ifac)
2  dimension ch(*) ,c(*) ,wa(*) ,ifac(*)
3  nf = ifac(2)
4  na = 0
5  l1 = 1
6  iw = 1
7  do 116 k1=1,nf
8  ip = ifac(k1+2)
9  l2 = ip*l1
10  ido = n/l2
11  idot = ido+ido
12  idl1 = idot*l1
13  if (ip .ne. 4) go to 103
14  ix2 = iw+idot
15  ix3 = ix2+idot
16  if (na .ne. 0) go to 101
17  call passf4(idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
18  go to 102
19  101 call passf4(idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
20  102 na = 1-na
21  go to 115
22  103 if (ip .ne. 2) go to 106
23  if (na .ne. 0) go to 104
24  call passf2(idot,l1,c,ch,wa(iw))
25  go to 105
26  104 call passf2(idot,l1,ch,c,wa(iw))
27  105 na = 1-na
28  go to 115
29  106 if (ip .ne. 3) go to 109
30  ix2 = iw+idot
31  if (na .ne. 0) go to 107
32  call passf3(idot,l1,c,ch,wa(iw),wa(ix2))
33  go to 108
34  107 call passf3(idot,l1,ch,c,wa(iw),wa(ix2))
35  108 na = 1-na
36  go to 115
37  109 if (ip .ne. 5) go to 112
38  ix2 = iw+idot
39  ix3 = ix2+idot
40  ix4 = ix3+idot
41  if (na .ne. 0) go to 110
42  call passf5(idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
43  go to 111
44  110 call passf5(idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
45  111 na = 1-na
46  go to 115
47  112 if (na .ne. 0) go to 113
48  call passf(nac,idot,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
49  go to 114
50  113 call passf(nac,idot,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
51  114 if (nac .ne. 0) na = 1-na
52  115 l1 = l2
53  iw = iw+(ip-1)*idot
54  116 continue
55  if (na .eq. 0) return
56  n2 = n+n
57  do 117 i=1,n2
58  c(i) = ch(i)
59  117 continue
60  return
61  end