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
zpassb4.f
Go to the documentation of this file.
1  subroutine zpassb4 (ido,l1,cc,ch,wa1,wa2,wa3)
2  implicit double precision (a-h,o-z)
3  dimension cc(ido,4,l1) ,ch(ido,l1,4) ,
4  1 wa1(1) ,wa2(1) ,wa3(1)
5  if (ido .ne. 2) go to 102
6  do 101 k=1,l1
7  ti1 = cc(2,1,k)-cc(2,3,k)
8  ti2 = cc(2,1,k)+cc(2,3,k)
9  tr4 = cc(2,4,k)-cc(2,2,k)
10  ti3 = cc(2,2,k)+cc(2,4,k)
11  tr1 = cc(1,1,k)-cc(1,3,k)
12  tr2 = cc(1,1,k)+cc(1,3,k)
13  ti4 = cc(1,2,k)-cc(1,4,k)
14  tr3 = cc(1,2,k)+cc(1,4,k)
15  ch(1,k,1) = tr2+tr3
16  ch(1,k,3) = tr2-tr3
17  ch(2,k,1) = ti2+ti3
18  ch(2,k,3) = ti2-ti3
19  ch(1,k,2) = tr1+tr4
20  ch(1,k,4) = tr1-tr4
21  ch(2,k,2) = ti1+ti4
22  ch(2,k,4) = ti1-ti4
23  101 continue
24  return
25  102 do 104 k=1,l1
26  do 103 i=2,ido,2
27  ti1 = cc(i,1,k)-cc(i,3,k)
28  ti2 = cc(i,1,k)+cc(i,3,k)
29  ti3 = cc(i,2,k)+cc(i,4,k)
30  tr4 = cc(i,4,k)-cc(i,2,k)
31  tr1 = cc(i-1,1,k)-cc(i-1,3,k)
32  tr2 = cc(i-1,1,k)+cc(i-1,3,k)
33  ti4 = cc(i-1,2,k)-cc(i-1,4,k)
34  tr3 = cc(i-1,2,k)+cc(i-1,4,k)
35  ch(i-1,k,1) = tr2+tr3
36  cr3 = tr2-tr3
37  ch(i,k,1) = ti2+ti3
38  ci3 = ti2-ti3
39  cr2 = tr1+tr4
40  cr4 = tr1-tr4
41  ci2 = ti1+ti4
42  ci4 = ti1-ti4
43  ch(i-1,k,2) = wa1(i-1)*cr2-wa1(i)*ci2
44  ch(i,k,2) = wa1(i-1)*ci2+wa1(i)*cr2
45  ch(i-1,k,3) = wa2(i-1)*cr3-wa2(i)*ci3
46  ch(i,k,3) = wa2(i-1)*ci3+wa2(i)*cr3
47  ch(i-1,k,4) = wa3(i-1)*cr4-wa3(i)*ci4
48  ch(i,k,4) = wa3(i-1)*ci4+wa3(i)*cr4
49  103 continue
50  104 continue
51  return
52  end