~ubuntu-branches/ubuntu/wily/julia/wily

« back to all changes in this revision

Viewing changes to deps/openlibm/slatec/passf3.f

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot
  • Date: 2013-01-16 12:29:42 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130116122942-x86e42akjq31repw
Tags: 0.0.0+20130107.gitd9656f41-1
* New upstream snashot
* No longer try to rebuild helpdb.jl.
   + debian/rules: remove helpdb.jl from build-arch rule
   + debian/control: move back python-sphinx to Build-Depends-Indep
* debian/copyright: reflect upstream changes
* Add Build-Conflicts on libatlas3-base (makes linalg tests fail)
* debian/rules: replace obsolete USE_DEBIAN makeflag by a list of
  USE_SYSTEM_* flags
* debian/rules: on non-x86 systems, use libm instead of openlibm
* dpkg-buildflags.patch: remove patch, applied upstream
* Refreshed other patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
*DECK PASSF3
 
2
      SUBROUTINE PASSF3 (IDO, L1, CC, CH, WA1, WA2)
 
3
C***BEGIN PROLOGUE  PASSF3
 
4
C***SUBSIDIARY
 
5
C***PURPOSE  Calculate the fast Fourier transform of subvectors of
 
6
C            length three.
 
7
C***LIBRARY   SLATEC (FFTPACK)
 
8
C***TYPE      SINGLE PRECISION (PASSF3-S)
 
9
C***AUTHOR  Swarztrauber, P. N., (NCAR)
 
10
C***ROUTINES CALLED  (NONE)
 
11
C***REVISION HISTORY  (YYMMDD)
 
12
C   790601  DATE WRITTEN
 
13
C   830401  Modified to use SLATEC library source file format.
 
14
C   860115  Modified by Ron Boisvert to adhere to Fortran 77 by
 
15
C           (a) changing dummy array size declarations (1) to (*),
 
16
C           (b) changing definition of variable TAUI by using
 
17
C               FORTRAN intrinsic function SQRT instead of a DATA
 
18
C               statement.
 
19
C   881128  Modified by Dick Valent to meet prologue standards.
 
20
C   890831  Modified array declarations.  (WRB)
 
21
C   891214  Prologue converted to Version 4.0 format.  (BAB)
 
22
C   900402  Added TYPE section.  (WRB)
 
23
C***END PROLOGUE  PASSF3
 
24
      DIMENSION CC(IDO,3,*), CH(IDO,L1,3), WA1(*), WA2(*)
 
25
C***FIRST EXECUTABLE STATEMENT  PASSF3
 
26
      TAUR = -.5
 
27
      TAUI = -.5*SQRT(3.)
 
28
      IF (IDO .NE. 2) GO TO 102
 
29
      DO 101 K=1,L1
 
30
         TR2 = CC(1,2,K)+CC(1,3,K)
 
31
         CR2 = CC(1,1,K)+TAUR*TR2
 
32
         CH(1,K,1) = CC(1,1,K)+TR2
 
33
         TI2 = CC(2,2,K)+CC(2,3,K)
 
34
         CI2 = CC(2,1,K)+TAUR*TI2
 
35
         CH(2,K,1) = CC(2,1,K)+TI2
 
36
         CR3 = TAUI*(CC(1,2,K)-CC(1,3,K))
 
37
         CI3 = TAUI*(CC(2,2,K)-CC(2,3,K))
 
38
         CH(1,K,2) = CR2-CI3
 
39
         CH(1,K,3) = CR2+CI3
 
40
         CH(2,K,2) = CI2+CR3
 
41
         CH(2,K,3) = CI2-CR3
 
42
  101 CONTINUE
 
43
      RETURN
 
44
  102 IF(IDO/2.LT.L1) GO TO 105
 
45
      DO 104 K=1,L1
 
46
CDIR$ IVDEP
 
47
         DO 103 I=2,IDO,2
 
48
            TR2 = CC(I-1,2,K)+CC(I-1,3,K)
 
49
            CR2 = CC(I-1,1,K)+TAUR*TR2
 
50
            CH(I-1,K,1) = CC(I-1,1,K)+TR2
 
51
            TI2 = CC(I,2,K)+CC(I,3,K)
 
52
            CI2 = CC(I,1,K)+TAUR*TI2
 
53
            CH(I,K,1) = CC(I,1,K)+TI2
 
54
            CR3 = TAUI*(CC(I-1,2,K)-CC(I-1,3,K))
 
55
            CI3 = TAUI*(CC(I,2,K)-CC(I,3,K))
 
56
            DR2 = CR2-CI3
 
57
            DR3 = CR2+CI3
 
58
            DI2 = CI2+CR3
 
59
            DI3 = CI2-CR3
 
60
            CH(I,K,2) = WA1(I-1)*DI2-WA1(I)*DR2
 
61
            CH(I-1,K,2) = WA1(I-1)*DR2+WA1(I)*DI2
 
62
            CH(I,K,3) = WA2(I-1)*DI3-WA2(I)*DR3
 
63
            CH(I-1,K,3) = WA2(I-1)*DR3+WA2(I)*DI3
 
64
  103    CONTINUE
 
65
  104 CONTINUE
 
66
      RETURN
 
67
  105 DO 107 I=2,IDO,2
 
68
CDIR$ IVDEP
 
69
         DO 106 K=1,L1
 
70
            TR2 = CC(I-1,2,K)+CC(I-1,3,K)
 
71
            CR2 = CC(I-1,1,K)+TAUR*TR2
 
72
            CH(I-1,K,1) = CC(I-1,1,K)+TR2
 
73
            TI2 = CC(I,2,K)+CC(I,3,K)
 
74
            CI2 = CC(I,1,K)+TAUR*TI2
 
75
            CH(I,K,1) = CC(I,1,K)+TI2
 
76
            CR3 = TAUI*(CC(I-1,2,K)-CC(I-1,3,K))
 
77
            CI3 = TAUI*(CC(I,2,K)-CC(I,3,K))
 
78
            DR2 = CR2-CI3
 
79
            DR3 = CR2+CI3
 
80
            DI2 = CI2+CR3
 
81
            DI3 = CI2-CR3
 
82
            CH(I,K,2) = WA1(I-1)*DI2-WA1(I)*DR2
 
83
            CH(I-1,K,2) = WA1(I-1)*DR2+WA1(I)*DI2
 
84
            CH(I,K,3) = WA2(I-1)*DI3-WA2(I)*DR3
 
85
            CH(I-1,K,3) = WA2(I-1)*DR3+WA2(I)*DI3
 
86
  106    CONTINUE
 
87
  107 CONTINUE
 
88
      RETURN
 
89
      END