GNU Octave  4.2.1 A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
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
subroutine passb3(ido, l1, cc, ch, wa1, wa2)
Definition: passb3.f:1
may be zero for pure relative error test tem the relative tolerance must be greater than or equal to