Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

dfft2i(3P)

NAME

dfft2i - initialize the array xWSAVE, which is used in both xFFT2F and xFFT2B. 

SYNOPSIS

SUBROUTINE RFFT2I(M, N, RWSAVE)

SUBROUTINE DFFT2I(M, N, DWSAVE)

SUBROUTINE CFFT2I(M, N, RWSAVE)

SUBROUTINE ZFFT2I(M, N, DWSAVE)

 

#include <sunperf.h>

void rfft2i(int m, int n, float ∗wsave) ;

void dfft2i(int m, int n, double ∗wsave) ;

void cfft2i(int m, int n, complex ∗wsave) ;

void zfft2i(int m, int n, doublecomplex ∗wsave) ;

ARGUMENTS

M Number of rows to be transformed.  M >= 0. 

N Number of columns to be transformed.  N >= 0. 

xWSAVE On entry, an array with dimension of at least (M + N + MAX(M,N) + 40) for real inputs or (2 ∗ (M + N + MAX(M,N)) + 40) for complex inputs.  The same work array can be used for both xFFTF and xFFTB as long as N remains unchanged.  Different xWSAVE arrays are required for different values of N.  This initialization does not have to be repeated between calls to xFFTF or xFFTB as long as N and xWSAVE remain unchanged, thus subsequent transforms can be obtained faster than the first. 

SAMPLE PROGRAM

 
      PROGRAM TEST
      IMPLICIT NONE
C
      INTEGER           M, N
      PARAMETER        (M = 2)
      PARAMETER        (N = 4)
C
      INTEGER           I, J
      REAL              PI, WSAVE(4 ∗ (M + N + N) + 40)
      REAL              X, Y
      COMPLEX           C(M,N)
C
      EXTERNAL          CFFT2B, CFFT2F, CFFT2I
      INTRINSIC         ACOS, CMPLX, COS, SIN
C
C     Initialize the array C to a complex sequence.
C
      PI = ACOS (-1.0)
      DO 110, J = 1, N
        DO 100, I = 1, M
          X = SIN ((I - 1.0) ∗ 2.0 ∗ PI / N)
          Y = COS ((J - 1.0) ∗ 2.0 ∗ PI / M)
          C(I,J) = CMPLX (X, Y)
  100   CONTINUE
  110 CONTINUE
C
      PRINT 1000
      DO 200, I = 1, M
        PRINT 1010, (C(I,J), J = 1, N)
  200 CONTINUE
      CALL CFFT2I (M, N, WSAVE)
      CALL CFFT2F (M, N, C, M, WSAVE)
      PRINT 1020
      DO 300, I = 1, M
        PRINT 1010, (C(I,J), J = 1, N)
  300 CONTINUE
      CALL CFFT2B (M, N, C, M, WSAVE)
      PRINT 1030
      DO 400, I = 1, M
        PRINT 1010, (C(I,J), J = 1, N)
  400 CONTINUE
C
 1000 FORMAT (1X, ’Original Sequences:’)
 1010 FORMAT (1X, 100(F4.1’ +’,F4.1,’i  ’))
 1020 FORMAT (1X, ’Transformed Sequences:’)
 1030 FORMAT (1X, ’Recovered Sequences:’)
C
      END

SAMPLE OUTPUT

 
  0.0 + 1.0i   0.0 +-1.0i   0.0 + 1.0i   0.0 +-1.0i
  1.0 + 1.0i   1.0 +-1.0i   1.0 + 1.0i   1.0 +-1.0i
 Transformed Sequences:
  4.0 + 0.0i   0.0 + 0.0i   0.0 + 8.0i   0.0 + 0.0i
 -4.0 + 0.0i   0.0 + 0.0i   0.0 + 0.0i   0.0 + 0.0i
 Recovered Sequences:
  0.0 + 8.0i   0.0 +-8.0i   0.0 + 8.0i   0.0 +-8.0i
  8.0 + 8.0i   8.0 +-8.0i   8.0 + 8.0i   8.0 +-8.0i

SunOS WorkShop_5.0  —  Last change: 10 Dec 1998

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026