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
passb3.f
Go to the documentation of this file.
1  subroutine passb3 (ido,l1,cc,ch,wa1,wa2)
2  dimension cc(ido,3,l1) ,ch(ido,l1,3) ,
3  1 wa1(1) ,wa2(1)
4  data taur,taui /-.5,.866025403784439/
5  if (ido .ne. 2) go to 102
6  do 101 k=1,l1
7  tr2 = cc(1,2,k)+cc(1,3,k)
8  cr2 = cc(1,1,k)+taur*tr2
9  ch(1,k,1) = cc(1,1,k)+tr2
10  ti2 = cc(2,2,k)+cc(2,3,k)
11  ci2 = cc(2,1,k)+taur*ti2
12  ch(2,k,1) = cc(2,1,k)+ti2
13  cr3 = taui*(cc(1,2,k)-cc(1,3,k))
14  ci3 = taui*(cc(2,2,k)-cc(2,3,k))
15  ch(1,k,2) = cr2-ci3
16  ch(1,k,3) = cr2+ci3
17  ch(2,k,2) = ci2+cr3
18  ch(2,k,3) = ci2-cr3
19  101 continue
20  return
21  102 do 104 k=1,l1
22  do 103 i=2,ido,2
23  tr2 = cc(i-1,2,k)+cc(i-1,3,k)
24  cr2 = cc(i-1,1,k)+taur*tr2
25  ch(i-1,k,1) = cc(i-1,1,k)+tr2
26  ti2 = cc(i,2,k)+cc(i,3,k)
27  ci2 = cc(i,1,k)+taur*ti2
28  ch(i,k,1) = cc(i,1,k)+ti2
29  cr3 = taui*(cc(i-1,2,k)-cc(i-1,3,k))
30  ci3 = taui*(cc(i,2,k)-cc(i,3,k))
31  dr2 = cr2-ci3
32  dr3 = cr2+ci3
33  di2 = ci2+cr3
34  di3 = ci2-cr3
35  ch(i,k,2) = wa1(i-1)*di2+wa1(i)*dr2
36  ch(i-1,k,2) = wa1(i-1)*dr2-wa1(i)*di2
37  ch(i,k,3) = wa2(i-1)*di3+wa2(i)*dr3
38  ch(i-1,k,3) = wa2(i-1)*dr3-wa2(i)*di3
39  103 continue
40  104 continue
41  return
42  end