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 F95 INTERFACE 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 C INTERFACE #include <sunperf.h> void vcfftb(int m, int n, complex *x, complex *xt, int mdimx, char row- col, complex *wsave); void vcfftb_64(long m, long n, complex *x, complex *xt, long mdimx, char rowcol, complex *wsave);
Oracle Solaris Studio Performance Library vcfftb(3P)
NAME
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.
SYNOPSIS
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
F95 INTERFACE
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
C INTERFACE
#include <sunperf.h>
void vcfftb(int m, int n, complex *x, complex *xt, int mdimx, char row-
col, complex *wsave);
void vcfftb_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 vcfftb(3P)