~ubuntu-branches/ubuntu/oneiric/python-scipy/oneiric-proposed

« back to all changes in this revision

Viewing changes to Lib/fftpack/dfftpack/dcosqb.f

  • Committer: Bazaar Package Importer
  • Author(s): Ondrej Certik
  • Date: 2008-06-16 22:58:01 UTC
  • mfrom: (2.1.24 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080616225801-irdhrpcwiocfbcmt
Tags: 0.6.0-12
* The description updated to match the current SciPy (Closes: #489149).
* Standards-Version bumped to 3.8.0 (no action needed)
* Build-Depends: netcdf-dev changed to libnetcdf-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
      SUBROUTINE DCOSQB (N,X,WSAVE)
2
 
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3
 
      DIMENSION       X(*)       ,WSAVE(*)
4
 
      DATA TSQRT2 /2.82842712474619009760D0/
5
 
      IF (N.lt.2) GO TO 101
6
 
      IF (N.eq.2) GO TO 102
7
 
      GO TO 103
8
 
  101 X(1) = 4.0D0*X(1)
9
 
      RETURN
10
 
  102 X1 = 4.0D0*(X(1)+X(2))
11
 
      X(2) = TSQRT2*(X(1)-X(2))
12
 
      X(1) = X1
13
 
      RETURN
14
 
  103 CALL DCOSQB1 (N,X,WSAVE,WSAVE(N+1))
15
 
      RETURN
16
 
      END
17
 
 
18
 
      SUBROUTINE DCOSQB1 (N,X,W,XH)
19
 
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20
 
      DIMENSION       X(1)       ,W(1)       ,XH(1)
21
 
      NS2 = (N+1)/2
22
 
      NP2 = N+2
23
 
      DO 101 I=3,N,2
24
 
         XIM1 = X(I-1)+X(I)
25
 
         X(I) = X(I)-X(I-1)
26
 
         X(I-1) = XIM1
27
 
  101 CONTINUE
28
 
      X(1) = X(1)+X(1)
29
 
      MODN = MOD(N,2)
30
 
      IF (MODN .EQ. 0) X(N) = X(N)+X(N)
31
 
      CALL DFFTB (N,X,XH)
32
 
      DO 102 K=2,NS2
33
 
         KC = NP2-K
34
 
         XH(K) = W(K-1)*X(KC)+W(KC-1)*X(K)
35
 
         XH(KC) = W(K-1)*X(K)-W(KC-1)*X(KC)
36
 
  102 CONTINUE
37
 
      IF (MODN .EQ. 0) X(NS2+1) = W(NS2)*(X(NS2+1)+X(NS2+1))
38
 
      DO 103 K=2,NS2
39
 
         KC = NP2-K
40
 
         X(K) = XH(K)+XH(KC)
41
 
         X(KC) = XH(K)-XH(KC)
42
 
  103 CONTINUE
43
 
      X(1) = X(1)+X(1)
44
 
      RETURN
45
 
      END