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
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |