vcfftf - compute the Fourier coefficients of a periodic sequence. The VCFFT operations are normalized, so a call of VCFFTF followed by a call of VCFFTB will return the original sequence.
SUBROUTINE VCFFTF(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER*1 ROWCOL COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*) INTEGER M, N, MDIMX SUBROUTINE VCFFTF_64(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER*1 ROWCOL COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*) INTEGER*8 M, N, MDIMX F95 INTERFACE SUBROUTINE FFTF(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER(LEN=1) :: ROWCOL COMPLEX, DIMENSION(:) :: WSAVE COMPLEX, DIMENSION(:,:) :: X, XT INTEGER :: M, N, MDIMX SUBROUTINE FFTF_64(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER(LEN=1) :: ROWCOL COMPLEX, DIMENSION(:) :: WSAVE COMPLEX, DIMENSION(:,:) :: X, XT INTEGER(8) :: M, N, MDIMX C INTERFACE #include <sunperf.h> void vcfftf(int m, int n, complex *x, complex *xt, int mdimx, char row- col, complex *wsave); void vcfftf_64(long m, long n, complex *x, complex *xt, long mdimx, char rowcol, complex *wsave);
Oracle Solaris Studio Performance Library vcfftf(3P) NAME vcfftf - compute the Fourier coefficients of a periodic sequence. The VCFFT operations are normalized, so a call of VCFFTF followed by a call of VCFFTB will return the original sequence. SYNOPSIS SUBROUTINE VCFFTF(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER*1 ROWCOL COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*) INTEGER M, N, MDIMX SUBROUTINE VCFFTF_64(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER*1 ROWCOL COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*) INTEGER*8 M, N, MDIMX F95 INTERFACE SUBROUTINE FFTF(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER(LEN=1) :: ROWCOL COMPLEX, DIMENSION(:) :: WSAVE COMPLEX, DIMENSION(:,:) :: X, XT INTEGER :: M, N, MDIMX SUBROUTINE FFTF_64(M, N, X, XT, MDIMX, ROWCOL, WSAVE) CHARACTER(LEN=1) :: ROWCOL COMPLEX, DIMENSION(:) :: WSAVE COMPLEX, DIMENSION(:,:) :: X, XT INTEGER(8) :: M, N, MDIMX C INTERFACE #include <sunperf.h> void vcfftf(int m, int n, complex *x, complex *xt, int mdimx, char row- col, complex *wsave); void vcfftf_64(long m, long n, complex *x, complex *xt, long mdimx, char rowcol, complex *wsave); ARGUMENTS M (input) If ROWCOL = 'R' or 'r', M is the number of sequences to be transformed. Otherwise, M is the length of the sequences to be transformed. M >= 0. N (input) If ROWCOL = 'R' or 'r', N is the length of the sequences to be transformed. Otherwise, N is the number of sequences to be transformed. N >= 0. X (input/output) On entry, if ROWCOL = 'R' or 'r' X(MDIMX,N) is an array whose first M rows contain the sequences to be transformed. Other- wise, X(MDIMX,N) contains data sequences of length M stored in N columns of X. XT (workspace) A work array. The size of this workspace depends on the num- ber of threads that are used to execute this routine. There are various functions that can be used to determine the num- ber of threads available (get_env, available_threads, etc). The appropriate amount, which is (number of threads * length of data sequences), can then be dynamically allocated for XT from the driver routine. If XT can only be allocated stati- cally, then the size of XT should be (length of data sequences * number of sequences). MDIMX (input) Leading dimension of the arrays X and XT as specified in a dimension or type statement. MDIMX >= M. ROWCOL (input) Indicates whether data sequences in X are stored row-wise ('R' or 'r') or column-wise ('C' or 'c'). WSAVE (input) On entry, an array of dimension (K+15) or greater, where K = M if ROWCOL = ('R' or 'r'). Otherwise, K = N. WSAVE is ini- tialized by VCFFTI. 7 Nov 2015 vcfftf(3P)