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-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |