vcfftf
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
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
#include <sunperf.h>
void vcfftf(int m, int n, complex *x, complex *xt, int mdimx, char rowcol, complex *wsave);
void vcfftf_64(long m, long n, complex *x, complex *xt, long mdimx, char rowcol, complex *wsave);
-
* 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)
-
On entry, if ROWCOL = 'R' or 'r' X(MDIMX,N) is an array whose first M rows
contain the sequences to be transformed. Otherwise, X(MDIMX,N) contains data
sequences of length M stored in N columns of X.
-
* XT (input)
-
A work array. The size of this workspace depends on the number of threads
that are used to execute this routine. There are various functions
that can be used to determine the number 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
statically, then the size of XT should be
(length of data sequences * number of sequences).
-
* MDIMX (input)
-
Leading dimension of the arrays X. 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/output)
-
On entry, an array of dimension (L2+15) or greater, where L2 = 2*M if
ROWCOL = ('R' or 'r'). Otherwise, L2 = 2*N. WSAVE is initialized by VCFFTI.