GNU Octave  4.0.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
zfftb1.f
Go to the documentation of this file.
1  subroutine zfftb1 (n,c,ch,wa,ifac)
2  implicit double precision (a-h,o-z)
3  dimension ch(*) ,c(*) ,wa(*) ,ifac(*)
4  nf = ifac(2)
5  na = 0
6  l1 = 1
7  iw = 1
8  do 116 k1=1,nf
9  ip = ifac(k1+2)
10  l2 = ip*l1
11  ido = n/l2
12  idot = ido+ido
13  idl1 = idot*l1
14  if (ip .ne. 4) go to 103
15  ix2 = iw+idot
16  ix3 = ix2+idot
17  if (na .ne. 0) go to 101
18  call zpassb4(idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
19  go to 102
20  101 call zpassb4(idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
21  102 na = 1-na
22  go to 115
23  103 if (ip .ne. 2) go to 106
24  if (na .ne. 0) go to 104
25  call zpassb2(idot,l1,c,ch,wa(iw))
26  go to 105
27  104 call zpassb2(idot,l1,ch,c,wa(iw))
28  105 na = 1-na
29  go to 115
30  106 if (ip .ne. 3) go to 109
31  ix2 = iw+idot
32  if (na .ne. 0) go to 107
33  call zpassb3(idot,l1,c,ch,wa(iw),wa(ix2))
34  go to 108
35  107 call zpassb3(idot,l1,ch,c,wa(iw),wa(ix2))
36  108 na = 1-na
37  go to 115
38  109 if (ip .ne. 5) go to 112
39  ix2 = iw+idot
40  ix3 = ix2+idot
41  ix4 = ix3+idot
42  if (na .ne. 0) go to 110
43  call zpassb5(idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
44  go to 111
45  110 call zpassb5(idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
46  111 na = 1-na
47  go to 115
48  112 if (na .ne. 0) go to 113
49  call zpassb(nac,idot,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
50  go to 114
51  113 call zpassb(nac,idot,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
52  114 if (nac .ne. 0) na = 1-na
53  115 l1 = l2
54  iw = iw+(ip-1)*idot
55  116 continue
56  if (na .eq. 0) return
57  n2 = n+n
58  do 117 i=1,n2
59  c(i) = ch(i)
60  117 continue
61  return
62  end
subroutine zpassb3(ido, l1, cc, ch, wa1, wa2)
Definition: zpassb3.f:1
subroutine zpassb2(ido, l1, cc, ch, wa1)
Definition: zpassb2.f:1
subroutine zpassb(nac, ido, ip, l1, idl1, cc, c1, c2, ch, ch2, wa)
Definition: zpassb.f:1
subroutine zpassb5(ido, l1, cc, ch, wa1, wa2, wa3, wa4)
Definition: zpassb5.f:1
std::string dimension(void) const
subroutine zpassb4(ido, l1, cc, ch, wa1, wa2, wa3)
Definition: zpassb4.f:1
subroutine zfftb1(n, c, ch, wa, ifac)
Definition: zfftb1.f:1