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
passb5.f
Go to the documentation of this file.
1  subroutine passb5 (ido,l1,cc,ch,wa1,wa2,wa3,wa4)
2  dimension cc(ido,5,l1) ,ch(ido,l1,5) ,
3  1 wa1(1) ,wa2(1) ,wa3(1) ,wa4(1)
4  data tr11,ti11,tr12,ti12 /.309016994374947,.951056516295154,
5  1-.809016994374947,.587785252292473/
6  if (ido .ne. 2) go to 102
7  do 101 k=1,l1
8  ti5 = cc(2,2,k)-cc(2,5,k)
9  ti2 = cc(2,2,k)+cc(2,5,k)
10  ti4 = cc(2,3,k)-cc(2,4,k)
11  ti3 = cc(2,3,k)+cc(2,4,k)
12  tr5 = cc(1,2,k)-cc(1,5,k)
13  tr2 = cc(1,2,k)+cc(1,5,k)
14  tr4 = cc(1,3,k)-cc(1,4,k)
15  tr3 = cc(1,3,k)+cc(1,4,k)
16  ch(1,k,1) = cc(1,1,k)+tr2+tr3
17  ch(2,k,1) = cc(2,1,k)+ti2+ti3
18  cr2 = cc(1,1,k)+tr11*tr2+tr12*tr3
19  ci2 = cc(2,1,k)+tr11*ti2+tr12*ti3
20  cr3 = cc(1,1,k)+tr12*tr2+tr11*tr3
21  ci3 = cc(2,1,k)+tr12*ti2+tr11*ti3
22  cr5 = ti11*tr5+ti12*tr4
23  ci5 = ti11*ti5+ti12*ti4
24  cr4 = ti12*tr5-ti11*tr4
25  ci4 = ti12*ti5-ti11*ti4
26  ch(1,k,2) = cr2-ci5
27  ch(1,k,5) = cr2+ci5
28  ch(2,k,2) = ci2+cr5
29  ch(2,k,3) = ci3+cr4
30  ch(1,k,3) = cr3-ci4
31  ch(1,k,4) = cr3+ci4
32  ch(2,k,4) = ci3-cr4
33  ch(2,k,5) = ci2-cr5
34  101 continue
35  return
36  102 do 104 k=1,l1
37  do 103 i=2,ido,2
38  ti5 = cc(i,2,k)-cc(i,5,k)
39  ti2 = cc(i,2,k)+cc(i,5,k)
40  ti4 = cc(i,3,k)-cc(i,4,k)
41  ti3 = cc(i,3,k)+cc(i,4,k)
42  tr5 = cc(i-1,2,k)-cc(i-1,5,k)
43  tr2 = cc(i-1,2,k)+cc(i-1,5,k)
44  tr4 = cc(i-1,3,k)-cc(i-1,4,k)
45  tr3 = cc(i-1,3,k)+cc(i-1,4,k)
46  ch(i-1,k,1) = cc(i-1,1,k)+tr2+tr3
47  ch(i,k,1) = cc(i,1,k)+ti2+ti3
48  cr2 = cc(i-1,1,k)+tr11*tr2+tr12*tr3
49  ci2 = cc(i,1,k)+tr11*ti2+tr12*ti3
50  cr3 = cc(i-1,1,k)+tr12*tr2+tr11*tr3
51  ci3 = cc(i,1,k)+tr12*ti2+tr11*ti3
52  cr5 = ti11*tr5+ti12*tr4
53  ci5 = ti11*ti5+ti12*ti4
54  cr4 = ti12*tr5-ti11*tr4
55  ci4 = ti12*ti5-ti11*ti4
56  dr3 = cr3-ci4
57  dr4 = cr3+ci4
58  di3 = ci3+cr4
59  di4 = ci3-cr4
60  dr5 = cr2+ci5
61  dr2 = cr2-ci5
62  di5 = ci2-cr5
63  di2 = ci2+cr5
64  ch(i-1,k,2) = wa1(i-1)*dr2-wa1(i)*di2
65  ch(i,k,2) = wa1(i-1)*di2+wa1(i)*dr2
66  ch(i-1,k,3) = wa2(i-1)*dr3-wa2(i)*di3
67  ch(i,k,3) = wa2(i-1)*di3+wa2(i)*dr3
68  ch(i-1,k,4) = wa3(i-1)*dr4-wa3(i)*di4
69  ch(i,k,4) = wa3(i-1)*di4+wa3(i)*dr4
70  ch(i-1,k,5) = wa4(i-1)*dr5-wa4(i)*di5
71  ch(i,k,5) = wa4(i-1)*di5+wa4(i)*dr5
72  103 continue
73  104 continue
74  return
75  end
std::string dimension(void) const
subroutine passb5(ido, l1, cc, ch, wa1, wa2, wa3, wa4)
Definition: passb5.f:1