vcfftb - compute a periodic sequence from its Fourier coefficients. The VCFFT operations are normalized, so a call of VCFFTF followed by a call of
VCFFTB will return the original sequence.
SUBROUTINE VCFFTB( M, N, X, XT, MDIMX, ROWCOL, WSAVE)
CHARACTER * 1 ROWCOL
COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*)
INTEGER M, N, MDIMX
SUBROUTINE VCFFTB_64( M, N, X, XT, MDIMX, ROWCOL, WSAVE)
CHARACTER * 1 ROWCOL
COMPLEX X(MDIMX,*), XT(MDIMX,*), WSAVE(*)
INTEGER*8 M, N, MDIMX
SUBROUTINE FFTB( [M], [N], X, XT, [MDIMX], ROWCOL, WSAVE)
CHARACTER(LEN=1) :: ROWCOL
COMPLEX, DIMENSION(:) :: WSAVE
COMPLEX, DIMENSION(:,:) :: X, XT
INTEGER :: M, N, MDIMX
SUBROUTINE FFTB_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 vcfftb(int m, int n, complex *x, complex *xt, int mdimx, char rowcol, complex *wsave);
void vcfftb_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/output)
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 and XT as
specified in a dimension or type statement.
MDIMX > = M.
- ROWCOL (input)
Indicates whether to transform rows ('R'
or 'r') or columns ('C' or 'c').
- WSAVE (input)
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.