~gabriel1984sibiu/octave/octave

« back to all changes in this revision

Viewing changes to liboctave/cruft/fftpack/passf5.f

  • Committer: Grevutiu Gabriel
  • Date: 2014-01-02 13:05:54 UTC
  • Revision ID: gabriel1984sibiu@gmail.com-20140102130554-3r7ivdjln1ni6kcg
New version (3.8.0) from upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine passf5 (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