Contents
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 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.